电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Mybatis 逆向工程的三種方法詳解

瀏覽:134日期:2023-10-22 08:53:57

Mybatis 逆向工程

  逆向工程通常包括由數據庫的表生成 Java 代碼 和 通過 Java 代碼生成數據庫表。而Mybatis 逆向工程是指由數據庫表生成 Java 代碼。  Mybaits 需要程序員自己編寫 SQL 語句,但是 Mybatis 官方提供逆向工程可以針對單表自動生成 Mybaits 執行所需要的代碼,包括 POJO、Mapper.java、Mapper.xml …。

一、通過 Eclipse 插件完成 Mybatis 逆向工程

1. 在線安裝 Eclipse 插件

  操作步驟:打開Eclipse => Help => Eclipse Marketplace => 搜索 Mybatis Generator => 選擇 Mybatis Generator 的版本 => Install => 重啟。

Mybatis 逆向工程的三種方法詳解

2. 新建一個 Java Project 項目

  新建一個叫 mybatisGenerator 的 Java 項目,導入 MySQL 的驅動包,如果是 Oracle 數據庫就導入 Oracle 的驅動包,我這里是 MySQL 數據庫,所以導入的是 MySQL 的。

Mybatis 逆向工程的三種方法詳解

3. 編寫配置文件

  逆向工程需要用到 xml 配置文件,編寫配置文件(generatorConfig.xml)如下:

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration><context targetRuntime='MyBatis3'><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name='suppressAllComments' value='false' /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/mybatis' userId='root'password='123456'></jdbcConnection><!-- <jdbcConnection driverClass='oracle.jdbc.OracleDriver'connectionURL='jdbc:oracle:thin:@localhost:1521:mybatis' userId=''password=''></jdbcConnection> --><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name='forceBigDecimals' value='false' /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage='com.ssm.po'targetProject='mybatisGenerator'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /></javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage='com.ssm.mapper' targetProject='mybatisGenerator'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type='XMLMAPPER'targetPackage='com.ssm.mapper' targetProject='mybatisGenerator'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></javaClientGenerator><!-- 指定數據庫表 --><!-- tableName:要生成的表名 domainObjectName:生成后的實例名 enableCountByExample:Count語句中加入where條件查詢,默認true開啟 enableUpdateByExample:Update語句中加入where條件查詢,默認true開啟 enableDeleteByExample:Delete語句中加入where條件查詢,默認true開啟 enableSelectByExample:Select多條語句中加入where條件查詢,默認true開啟 selectByExampleQueryId:Select單個對象語句中加入where條件查詢,默認true開啟 --><table tableName='items'><!-- 常用:property:將所有字段逆向生成為類屬性,默認全部ignoreColumn:生成時忽略列字段 --></table><table tableName='orders'></table><table tableName='orderdetail'></table><table tableName='user'></table></context></generatorConfiguration>

注意:targetProject='mybatisGenerator'

4. 使用插件運行

  操作步驟:右擊 generatorConfig.xml 文件 => Run as => Run Mybatis Generator => 刷新工程。

Mybatis 逆向工程的三種方法詳解

  有報錯是因為沒有導入 Mybatis 相關的包。最后將生成的文件拷入相關的工程當中。

二、通過 Java 代碼完成 Mybatis 逆向工程

1. 新建一個 Java Project 項目

  新建一個 Java 項目,導入Mybatis逆向工程包mybatis-generator-core-1.3.2.jar和數據庫驅動包mysql-connector-java-5.1.39-bin.jar。

Mybatis 逆向工程的三種方法詳解

2. 編寫配置文件

  編寫配置文件,和前一種方法的配置文件差不多,區別在于這里的 targetProject 不一樣,這種方式的是targetProject='./src',生成的文件也會在這個下面。

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration><context targetRuntime='MyBatis3'><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name='suppressAllComments' value='false' /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/mybatis' userId='root'password='123456'></jdbcConnection><!-- <jdbcConnection driverClass='oracle.jdbc.OracleDriver'connectionURL='jdbc:oracle:thin:@localhost:1521:mybatis' userId=''password=''></jdbcConnection> --><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name='forceBigDecimals' value='false' /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage='com.ssm.po'targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /></javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type='XMLMAPPER'targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></javaClientGenerator><!-- 指定數據庫表 --><!-- tableName:要生成的表名 domainObjectName:生成后的實例名 enableCountByExample:Count語句中加入where條件查詢,默認true開啟 enableUpdateByExample:Update語句中加入where條件查詢,默認true開啟 enableDeleteByExample:Delete語句中加入where條件查詢,默認true開啟 enableSelectByExample:Select多條語句中加入where條件查詢,默認true開啟 selectByExampleQueryId:Select單個對象語句中加入where條件查詢,默認true開啟 --><table tableName='items'><!-- 常用:property:將所有字段逆向生成為類屬性,默認全部ignoreColumn:生成時忽略列字段 --></table><table tableName='orders'></table><table tableName='orderdetail'></table><table tableName='user'></table></context></generatorConfiguration>

3. 編寫生成代碼程序

  最后編寫一個簡單的 Java 運行程序,運行后刷新工程就可以了。

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration><context targetRuntime='MyBatis3'><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name='suppressAllComments' value='false' /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/mybatis' userId='root'password='123456'></jdbcConnection><!-- <jdbcConnection driverClass='oracle.jdbc.OracleDriver'connectionURL='jdbc:oracle:thin:@localhost:1521:mybatis' userId=''password=''></jdbcConnection> --><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name='forceBigDecimals' value='false' /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage='com.ssm.po'targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /></javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type='XMLMAPPER'targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></javaClientGenerator><!-- 指定數據庫表 --><!-- tableName:要生成的表名 domainObjectName:生成后的實例名 enableCountByExample:Count語句中加入where條件查詢,默認true開啟 enableUpdateByExample:Update語句中加入where條件查詢,默認true開啟 enableDeleteByExample:Delete語句中加入where條件查詢,默認true開啟 enableSelectByExample:Select多條語句中加入where條件查詢,默認true開啟 selectByExampleQueryId:Select單個對象語句中加入where條件查詢,默認true開啟 --><table tableName='items'><!-- 常用:property:將所有字段逆向生成為類屬性,默認全部ignoreColumn:生成時忽略列字段 --></table><table tableName='orders'></table><table tableName='orderdetail'></table><table tableName='user'></table></context></generatorConfiguration>

Mybatis 逆向工程的三種方法詳解  

建議在這個項目中加入日志,這樣能直觀得看出其運行過程。加入日志配置文件log4j.properties。

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

運行 GeneratorFromXML.java 時產生的日志記錄:

DEBUG [main] - Retrieving column information for table 'items'DEBUG [main] - Found column 'id', data type 4, in table 'mybatis..items'DEBUG [main] - Found column 'name', data type 12, in table 'mybatis..items'DEBUG [main] - Found column 'price', data type 7, in table 'mybatis..items'DEBUG [main] - Found column 'detail', data type -1, in table 'mybatis..items'DEBUG [main] - Found column 'pic', data type 12, in table 'mybatis..items'DEBUG [main] - Found column 'createtime', data type 93, in table 'mybatis..items'DEBUG [main] - Retrieving column information for table 'orders'DEBUG [main] - Found column 'id', data type 4, in table 'mybatis..orders'DEBUG [main] - Found column 'user_id', data type 4, in table 'mybatis..orders'DEBUG [main] - Found column 'number', data type 12, in table 'mybatis..orders'DEBUG [main] - Found column 'createtime', data type 93, in table 'mybatis..orders'DEBUG [main] - Found column 'note', data type 12, in table 'mybatis..orders'DEBUG [main] - Retrieving column information for table 'orderdetail'DEBUG [main] - Found column 'id', data type 4, in table 'mybatis..orderdetail'DEBUG [main] - Found column 'orders_id', data type 4, in table 'mybatis..orderdetail'DEBUG [main] - Found column 'items_id', data type 4, in table 'mybatis..orderdetail'DEBUG [main] - Found column 'items_num', data type 4, in table 'mybatis..orderdetail'DEBUG [main] - Retrieving column information for table 'user'DEBUG [main] - Found column 'ID', data type 4, in table 'mybatis..user'DEBUG [main] - Found column 'USERNAME', data type 12, in table 'mybatis..user'DEBUG [main] - Found column 'SEX', data type 12, in table 'mybatis..user'DEBUG [main] - Found column 'birthday', data type 91, in table 'mybatis..user'DEBUG [main] - Found column 'address', data type 12, in table 'mybatis..user'

三、通過 Maven 完成 Mybatis 逆向工程

1. 新建一個 Maven Project 項目

  新建一個 Maven 項目,然后新建文件夾 /mybatis-maven/src/main/resources,在文件夾下新建文件 generatorConfig.xml。

Mybatis 逆向工程的三種方法詳解

2. 配置 pom.xml 文件

  配置 pom.xml 文件,在 pom.xml 文件的 project 標簽里加入代碼:

<build><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><dependencies><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency></dependencies><configuration><overwrite>true</overwrite></configuration></plugin></plugins></build>

  配置插件 generator 版本是 1.3.2 并配置 Mysql 驅動是 5.1.38。

3. 配置文件 generatorConfig.xml

  generatorConfig.xml 是在目錄 src 下的 main 下的 resources 下。注意這里的targetProject='./src' 生成的文件也會在這個下面。

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration><context targetRuntime='MyBatis3'><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name='suppressAllComments' value='false' /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/mybatis' userId='root'password='123456'></jdbcConnection><!-- <jdbcConnection driverClass='oracle.jdbc.OracleDriver'connectionURL='jdbc:oracle:thin:@localhost:1521:mybatis' userId=''password=''></jdbcConnection> --><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name='forceBigDecimals' value='false' /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage='com.ssm.po'targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /></javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type='XMLMAPPER'targetPackage='com.ssm.mapper' targetProject='./src'><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name='enableSubPackages' value='false' /></javaClientGenerator><!-- 指定數據庫表 --><!-- tableName:要生成的表名 domainObjectName:生成后的實例名 enableCountByExample:Count語句中加入where條件查詢,默認true開啟 enableUpdateByExample:Update語句中加入where條件查詢,默認true開啟 enableDeleteByExample:Delete語句中加入where條件查詢,默認true開啟 enableSelectByExample:Select多條語句中加入where條件查詢,默認true開啟 selectByExampleQueryId:Select單個對象語句中加入where條件查詢,默認true開啟 --><table tableName='items'><!-- 常用:property:將所有字段逆向生成為類屬性,默認全部ignoreColumn:生成時忽略列字段 --></table><table tableName='orders'></table><table tableName='orderdetail'></table><table tableName='user'></table></context></generatorConfiguration>

4. 運行 Maven

  運行命令mybatis-generator:generate。  操作步驟:選中項目右擊 => Run As => Maven build… =>在 Goals 中輸入mybatis-generator:generate => Run =>刷新工程。

Mybatis 逆向工程的三種方法詳解

到此這篇關于Mybatis 逆向工程的三種方法詳解的文章就介紹到這了,更多相關Mybatis 逆向工程內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 苏商学院官网 - 江苏地区唯一一家企业家自办的前瞻型、实操型商学院 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 短信群发平台_群发短信软件_短信营销-讯鸽科技 | 煤机配件厂家_刮板机配件_链轮轴组_河南双志机械设备有限公司 | 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 扬州汇丰仪表有限公司| 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 重庆中专|职高|技校招生-重庆中专招生网 | 中矗模型-深圳中矗模型设计有限公司 | 120kv/2mA直流高压发生器-60kv/2mA-30kva/50kv工频耐压试验装置-旭明电工 | 山东成考网-山东成人高考网 | 深圳市人通智能科技有限公司| 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 大鼠骨髓内皮祖细胞-小鼠神经元-无锡欣润生物科技有限公司 |