SpringBoot - 第十七章 | Mybatis Generator 工具
在前面的文章中 第十六章 - SpringBoot MyBatis整合 (XML方式) 介紹如何使用MyBatis的透過XML的方式基本訪問資料庫。
然後專案的過程中,不可能是一張表一張表去建置的,往往都是一開始就已經把基礎的架構都設計的差不多。所以在開發的過程中無法一張表一張表去產生Entity、Dao、Mapper…等等。這時候我們可以透過「Mybatis Generator」工具來協助產生。
下面將會介紹 Eclipse 使用 Mybatis Generator 程式碼生成。
使用範例
安裝MyBatis Generator (1.3.7)
- 開啟 Eclipse -> Help -> Eclipse Marketplace
- 搜尋 MyBatis -> MyBatis Generator -> Install
因為作者這邊已經安裝過了,網路上也有很多其他大大所寫的安裝教學,就不特別示範安裝過程。
資料庫範例
這邊用Customer來做範例
1 2 3 4 5 6 7 8 9 10 11
| DROP TABLE IF EXISTS `customer`; CREATE TABLE `customer` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` varchar(64) DEFAULT NULL COMMENT '姓名', `age` smallint(3) DEFAULT NULL COMMENT '年齡', `create_by` varchar(50) NOT NULL COMMENT '建立人員', `create_dt` datetime NOT NULL COMMENT '建立時間', `modify_by` varchar(50) DEFAULT NULL COMMENT '修改人員', `modify_dt` datetime DEFAULT NULL COMMENT '修改時間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
建立Package
1 2 3
| com.jj.learning.springboot.chapter17.domain com.jj.learning.springboot.chapter17.dao resources.mapper
|
這邊為了突顯可以指定自己要產生的位置,故把Entity和Dao做拆分,Package基本上照開發習慣或是個人習慣或是參照其他我路大大的去做一些幾本規範來做區分即可。
MyBatis Generate Configuration File
產生 generatorConfig.xml 檔案
產生後的 generatorConfig.xml 預設內容
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?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 id="context1"> <jdbcConnection connectionURL="???" driverClass="???" password="???" userId="???" /> <javaModelGenerator targetPackage="???" targetProject="???" /> <sqlMapGenerator targetPackage="???" targetProject="???" /> <javaClientGenerator targetPackage="???" targetProject="???" type="XMLMAPPER" /> <table schema="???" tableName="???"> <columnOverride column="???" property="???" /> </table> </context> </generatorConfiguration>
|
編輯 generatorConfig.xml
以下做一個最簡單的設定示範,當然還有更多的參數可以做配置,例如commentGenerator這就是我特別加上的,不然產出來的類會有很多的註解。詳細介紹
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?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 id="context1"> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/test" driverClass="com.mysql.jdbc.Driver" password="root" userId="root" /> <javaModelGenerator targetPackage="com.jj.learning.springboot.chapter17.domain" targetProject="chapter-17/src/main/java" /> <sqlMapGenerator targetPackage="mapper" targetProject="chapter-17/src/main/resources" /> <javaClientGenerator targetPackage="com.jj.learning.springboot.chapter17.dao" targetProject="chapter-17/src/main/java" type="XMLMAPPER" /> <table tableName="customer"> </table> </context> </generatorConfiguration>
|
執行 generatorConfig.xml
generatorConfig.xml -> Run As -> Run Mybatis Generator
產生後的檔案如下
1 2 3 4 5 6
| /chapter-17/src/main/java/com/jj/learning/springboot/chapter17/domain/Customer.java /chapter-17/src/main/java/com/jj/learning/springboot/chapter17/domain/CustomerExample.java
/chapter-17/src/main/java/com/jj/learning/springboot/chapter17/dao/CustomerMapper.java
/chapter-17/src/main/resources/mapper/CustomerMapper.xml
|
結構圖
注:透過「Mybatis Generator」產生的Dao並沒有加上@Mapper的註解,建議透過@MapperScan來做注入。
這邊只是簡單介紹了Mybatis Generator的使用方式,更詳細的使用方式建議參考官方的 詳細介紹 。 而生產出來的程式碼,這邊也沒有特別寫出來,請到我的 Github 上面找 chapter-17 ,就有所有範例及程式碼了。