MyBatis逆向工程自动生成代码(附数据库表结构)
一、逆向工程介紹
逆向工程是一個專門為 MyBatis 框架使用者設計的代碼生成器,可以根據數據庫中的表字段名,自動生成 POJO 類,mapper 接口與 SQL 映射文件。支持基本的增刪改查功能,以及自定義條件的查詢。但是不支持復雜 SQL 與存儲過程。
二、環境準備:
數據庫結構文件 (拷貝直接執行即可):
t_employee表結構:
DROP TABLE IF EXISTS `t_employee`; CREATE TABLE `t_employee` (`id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,`username` varchar(30) DEFAULT NULL,`gender` char(1) DEFAULT NULL,`email` varchar(20) DEFAULT NULL,`d_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;t_dept表結構:
DROP TABLE IF EXISTS `t_dept`; CREATE TABLE `t_dept` (`id` int(11) NOT NULL AUTO_INCREMENT,`dept_name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;在pom.xml中添加對應的依賴 (如果不是 Maven 項目,可以點擊上面的 GitHub 地址下載 jar 包):
<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator</artifactId><version>1.3.6</version></dependency>創建目錄,用于指定代碼生成的位置:
三、代碼生成過程
逆向工程配置文件mybatis-generator.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- context 元素用于指定生成一組對象的環境。targetRuntime:MyBatis3Simple 只生成提供簡單增刪改查的代碼--><context id="testTables" targetRuntime="MyBatis3Simple"><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!-- 數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/mybatis-study" userId="root"password="1234"></jdbcConnection><!-- 默認 false,把 JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true 時把 JDBC DECIMAL 和 NUMERIC 類型解析為 java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetPackage:指定 POJO 類生成后所在的包的位置targetProject:指定生成 POJO 類的位置 --><javaModelGenerator targetPackage="com.jas.mybatis.bean"targetProject=".\src\main\java"><!-- enableSubPackages:是否讓 schema 作為包的后綴 --><property name="enableSubPackages" value="false" /><!-- 從數據庫返回的值被清理前后的空格 --><property name="trimStrings" value="false" /></javaModelGenerator><!-- targetPackage:指定生成的 SQL 映射文件所在的位置--><sqlMapGenerator targetPackage="mapper-config"targetProject=".\src\main\resources/"><!-- enableSubPackages:是否讓 schema 作為包的后綴 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:指定 mapper 接口生成包的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.jas.mybatis.mapper"targetProject=".\src\main\java"><!-- enableSubPackages:是否讓 schema 作為包的后綴 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定數據庫表tableName:指定表名domainObjectName:指定生成的 POJO 的類名--><table tableName="t_employee" domainObjectName="Employee"/><table tableName="t_dept" domainObjectName="Department"/></context> </generatorConfiguration>將配置文件放在工程下:
執行生成代碼的方式有很多,比如使用 Maven 插件,XML 配置文件等,這里我們通過代碼的方式一鍵執行。
執行結果:
下面是 mapper 接口中自動生成的方法,只生成了五個基本的增改查方法。這幾個方法能不能使用呢?下面就來測試一下。
測試:
測試結果:
四、總結
這篇博客主要介紹了 MyBatis 中關于逆向工程的使用,逆向工程的使用可以簡化我們的開發過程,提高開發效率。MyBatis 還支持其他幾種生成代碼的方式,只需要在<context>標簽中設置targetRuntime屬性即可。
上面我們設置的值是 MyBatis3Simple,這種方式在生成代碼的時候只會生成最基本的增刪代碼;還可以設置為MyBatis3,這種方式生成的代碼支持多條件查詢語句,還有其他的值可以設置,這里就不再多解釋了。
一般情況下我們只用來生成最基本的代碼,復雜的 SQL 語句還是由開發人員自己定義比較好。最后希望這篇博文能夠為你提供幫助。
總結
以上是生活随笔為你收集整理的MyBatis逆向工程自动生成代码(附数据库表结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么移动电脑桌面图标 移动电脑桌面图标的
- 下一篇: 微星bios怎么开启网卡 微星bios如