一、逆向工程的作用 簡單來說,就是替我們生成Java代碼。 之前使用Mybatis的Mapper代理方法開發,還需要自己創建實體類,而且屬性還得和資料庫中的欄位對應。這著實是機械化的而且比較麻煩的事,而機械化的事情正是代碼所擅長的,於是Mybatis官方就提供了MyBatis Generator , ...
一、逆向工程的作用
簡單來說,就是替我們生成Java代碼。
之前使用Mybatis的Mapper代理方法開發,還需要自己創建實體類,而且屬性還得和資料庫中的欄位對應。這著實是機械化的而且比較麻煩的事,而機械化的事情正是代碼所擅長的,於是Mybatis官方就提供了MyBatis Generator ,可以通過簡單的配置替我們針對單表自動生成mapper介面,mapper.xml,以及實體類。
二、使用
1. 導包
就需要添加一個jar包
當然,mybatis核心包以及資料庫驅動包還是和之前使用Mybatis的時候一樣。
2.創建配置文件
名稱、位置隨意。
配置文件里的內容在MyBatis Generator官網上可以直接複製。官網網址:http://www.mybatis.org/generator/running/runningWithJava.html
進去之後點擊XML Configuration Reference 把右側的代碼複製。
這裡我貼一份我自己的配置文件,我也是官網複製的,只是添加了一些註釋。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 8 <context id="DB2Tables" targetRuntime="MyBatis3"> 9 <commentGenerator> 10 <!-- 是否去除自動生成的註釋 true:是;false:否 --> 11 <property name="suppressAllComments" value="true"/> 12 </commentGenerator> 13 <!-- 資料庫連接的信息:驅動類,連接地址,用戶名,密碼 --> 14 <jdbcConnection driverClass="com.mysql.jdbc.Driver" 15 connectionURL="jdbc:mysql://localhost:3306/xtkj" 16 userId="root" 17 password="root"> 18 </jdbcConnection> 19 20 <!-- 預設為false,把JDBC DECIMAL 和 NUMERIC 類型解析為Integer,為true時把 把JDBC DECIMAL 和 21 NUMERIC 類型解析為java.math.BigDecimal--> 22 <javaTypeResolver > 23 <property name="forceBigDecimals" value="false" /> 24 </javaTypeResolver> 25 26 <!-- 生成po類的位置 --> 27 <javaModelGenerator targetPackage="com.xtkj.ssm.pojo" targetProject=".\src"> 28 <!-- enableSubPackages:是否讓schema作為包的尾碼 --> 29 <property name="enableSubPackages" value="false" /> 30 <!-- 從資料庫返回的值清理前後的空格 --> 31 <property name="trimStrings" value="true" /> 32 </javaModelGenerator> 33 <!--mapper映射文件 生成的位置--> 34 <sqlMapGenerator targetPackage="com.xtkj.ssm.mapper" targetProject=".\src"> 35 <!-- enableSubPackages:是否讓schema作為包的尾碼 --> 36 <property name="enableSubPackages" value="false" /> 37 </sqlMapGenerator> 38 <!-- mapper介面生成的位置 --> 39 <javaClientGenerator type="XMLMAPPER" targetPackage="com.xtkj.ssm.mapper" targetProject=".\src"> 40 <!-- enableSubPackages:是否讓schema作為包的尾碼 --> 41 <property name="enableSubPackages" value="false" /> 42 </javaClientGenerator> 43 44 <!-- 指定資料庫表 --> 45 <table tableName="tb_user"></table> 46 47 </context> 48 </generatorConfiguration>View Code
需要改動的就是資料庫連接信息(我用的是Mysql)、實體類和mepper映射文件生成的位置、以及對應的資料庫中的數據表名
3. 執行生成程式
同樣是可以在官網複製,放在main方法或測試方法中執行就可以了,只需要改動對應的配置文件名。這裡註意路徑要寫對,我的就是config/generatorConfig.xml,如果直接放在了src目錄下就寫 src/generatorConfig.xml。(Mybatis逆向工程為我們提供了多種使用方式,這裡我推薦使用xml配置,用Java代碼生成)
到這裡,逆向工程的初步使用就完成了,以下是我執行後的目錄結構。執行完記得刷新一下。
可以看到mapper包和pojo包下的文件以及其中的內容都自動生成了。比之前方便多了,我就指定了一張表,所以只有一個 mapper.java 和一個 mapper.xml,當然在配置文件里也可以指定多張表。這裡值得一說的是相比之前自己寫,逆向工程pojo包下多了一個*Example.java文件,這個類是用來自定義條件查詢的。具體的使用可以去看我的下一篇博客。