MyBatis-Generator 用法介紹
”工欲善其事,必先利其器“,古人說的很對,雖然不能做一個單純的”工具帝“,但是自己有合適的工具集真的很關鍵。以前認識一個做逆向工程的高手,有自己的”反馬套裝“,其實不外乎就是 OD 、 IDA 、SysinternalsSuite 等之類的工具組合,當然還有一些自己寫的小工具。對於高手就是這樣,有自己的工具,對於新手而言,也是要嘗試和搜集各種適合自己在項目中可以快速完成工作的工具。泥瓦工、木匠有自己的貼身的工具,遊戲高手也有自己專用的鼠標、鍵盤、顯示器和鼠標墊,作為程序員(我是初級的)沒有自己合適工具說的過去?
MyBatis-Generator 是一款 MyBatis 代碼生成的工具,它一共有2個文件,一個是 mybatis-generator-core-1.3.2.jar 代碼生成的 JAR 文件,另外一個是用於配置代碼生成的 generator.xml 的 XML 文件。
配置說明
在進行代碼生成之前,需要先對 generator.xml 文件進行配置,該文件的代碼如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 3 <generatorConfiguration> 4 <!--數據庫驅動包位置 --> 5 <classPathEntry location="D:\generator\mysql-connector-java-5.1.18-bin.jar" /> 6 <context id="DB2Tables" targetRuntime="MyBatis3"> 7 <commentGenerator> 8 <property name="suppressAllComments" value="true" /> 9 </commentGenerator> 10 <!-- 數據庫鏈接URL、用戶名、密碼 --> 11 <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_name" userId="root" password="123456"> 12 </jdbcConnection> 13 <javaTypeResolver> 14 <property name="forceBigDecimals" value="false" /> 15 </javaTypeResolver> 16 <!-- 生成模型的包名和位置 --> 17 <javaModelGenerator targetPackage="package_name" targetProject="D:\generator\src"> 18 <property name="enableSubPackages" value="true" /> 19 <property name="trimStrings" value="true" /> 20 </javaModelGenerator> 21 <!-- 生成的映射文件包名和位置 --> 22 <sqlMapGenerator targetPackage="package_name" targetProject="D:\generator\src"> 23 <property name="enableSubPackages" value="true" /> 24 </sqlMapGenerator> 25 <!-- 生成DAO的包名和位置 --> 26 <javaClientGenerator type="XMLMAPPER" targetPackage="package_name" targetProject="D:\generator\src"> 27 <property name="enableSubPackages" value="true" /> 28 </javaClientGenerator> 29 <!-- 要生成那些表(更改tableName和domainObjectName就可以) --> 30 <table tableName="table1" domainObjectName="Table1" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> 31 <table tableName="table2" domainObjectName="Table2" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> 32 <table tableName="table3" domainObjectName="Table3" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> 33 </context> 34 </generatorConfiguration>
上面的 XML 就是完整的 generitor.xml 文件的內容,需要修改的部分已經用註釋進行了標註。
第4行的註釋可以看出,第5行的配置用於指定操作數據庫的 JAR 包在本地的位置。
第11行指定操作數據庫的類名,數據庫的地址、庫名、數據庫的賬號和密碼。
第17行的 targetPackage 鍵指定生成實體類的包名,比如 org.test.model ,targetProject 指定生成的代碼的路徑。
第22行的 targetPackage 鍵指定生成映射文件的包名,比如 org.test.mapper。
第26行的 targetPackage 鍵指定生成數據訪問接口的包名,比如 org.test.dao。
第30行開始則是要進行代碼生成的表名和實體類之間的對應關系,比如 tableName 鍵用於指定數據庫中指定的表名, domainObjectName 用於指定數據庫指定表名所對應的實體類(領域對象)。數據表和實體類映射後有一些相應的參數,比如 enableCountByExample 等會生成一些例子代碼,這塊省略。
代碼生成
將前面的配置文件配置完成後,使用命令即可將根據配置生成代碼,命令如下:
1 java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
執行上述命令後會根據配置生成相應的目錄和文件。
生成的目錄如下:
src\org\test\model 、 src\org\test\mapper 等目錄。
生成的文件如下:
Table1.java 、 Table2.java 等實體類文件。
Table1Mapper.xml 、 Table2Mapper.xml 等 XML 文件。
Table1Mapper.java 、 Table2Mapper.java 等接口文件。
生成的具體代碼在這裏就不具體的列舉了。
有了 MyBatis-Generator 這個工具感覺自己又朝著初級程序員邁進了一步!!
MyBatis-Generator 用法介紹