使用mybatis 程式碼生成器生成基礎的mapper ,model
阿新 • • 發佈:2018-11-19
程式碼生成器是由mybatis團隊開發提供的, 程式碼生產器通過配置可以生成不同型別的程式碼,程式碼包含了資料庫表對應的實體類,Mapper 介面類 ,mapper xml 檔案和example物件等,這些程式碼檔案幾乎包含了全部的單表操作。 當然對於聯表操作,還是需要自己書寫SQL 的
mybatis 程式碼生成器主要在於XML 的配置,下面是關於XML 配置的詳解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 通過屬性location 指定資料庫驅動的路徑--> <classPathEntry location="D:/manualJar/ojdbc7.jar"/> <!--context 標籤用於指定生成一組物件的環境,例如指定要連線的資料庫,要生產物件的型別和要處理的資料庫中的表 ,具體屬性如下 id 是必填屬性 ,並且是唯一的 targetRuntime 屬性則是用於指定生產的程式碼的執行時環境 支援以下可選值 MyBatis3 預設值 MyBatis3Simple 該方式不會生成於Example相關的方法 --> <context id="testTables" targetRuntime="MyBatis3"> <!-- commentGenerator 標籤主要用來配置如何生成註釋資訊 可以通過property屬性進行配置 suppressAllComments :阻止生成註釋,預設為false suppressDate : 阻止生成的註釋包含時間戳 預設為false addRemarkComments 註釋是否新增資料庫表的備註資訊,預設為false 一般情況下,由於生成的註釋沒有任何價值,而時間戳每次生成都會不一樣,所以推薦遮蔽註釋資訊 當然也可以自己實現註釋形式 通過繼承DefaultCommentGenerator 實現自定義的註釋格式 通過 <commentGenerator type="">引入自定義的註釋生成類 --> <commentGenerator> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--用於只當需要連線的資料庫資訊,該標籤必選,並且只能有一個 資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 --> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@//127.0.0.1:1521/orclpdb" userId="user" password="password"> </jdbcConnection> <!--javaTypeResolver 標籤用來配置JDBC 型別和Java 型別的轉換 forceBigDecimals 預設false,該property主要用來把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL NUMERIC 型別解析為java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- javaModelGenerator 用來控制生成的實體類 targetPackage 生成實體類存放的包名 targetProject:指定目標專案路徑 可以使用相對路徑或絕對路徑 --> <javaModelGenerator targetPackage="com.commons.model" targetProject="src\main\java"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false"/> <!-- 判斷是否對資料庫查詢結果進行trim 判斷 如果為true 從資料庫返回的值被清理前後的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- sqlMapGenerator 標籤用於配置SQL 對映生成器(mapper.xml) 的屬性 targetPackage 生成sql對映檔案存放的包名。 targetProject:指定目標專案路徑 可以使用相對路徑或絕對路徑 --> <sqlMapGenerator targetPackage="resources\mapper" targetProject="src\main"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- javaClientGenerator 用於配置Java客戶端生成器(mapper 介面)的屬性 該標籤有三個屬性 type: 用於選擇客戶端程式碼生成器 預設提供了以下幾種方式 ANNOTATENMAPPER :基於註解的Mapper 介面,不會有對應的XML 對映檔案 MIXEDMAPPER:XML 和註解的混合形式 XMLMAPPER :所有的方法都在XML 中,介面的呼叫依賴XML檔案 (推薦使用該方式) targetPackage:mapper介面存放的包名 targetProject:指定目標專案路徑 可以使用相對路徑或絕對路徑 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.vclog.persistence.mapper" targetProject="src\main\java"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!-- table 標籤是最重要的一個標籤,該標籤用於配置需要通過內省資料庫的表,只有在table 中配置過的表,才能經過上述其他配置生成最終的程式碼 其中 tableName 是一個必選的屬性, 該屬性指定要生成的表明,可以使用SQL 萬用字元匹配多個表 ( 例如 <table tableName="%"></table>) table 標籤中的屬性 domainObjectName : 指定生成物件的基本名稱,如果沒有指定,則自動根據表明生成 --> <table tableName="T_Table_Name" domainObjectName="Name"></table> </context> </generatorConfiguration>
使用maven plugin 執行生成 程式碼
1.新增依賴
2. 對pom.xml 進行外掛配置
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <!-- <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.5</version> </dependency> </dependencies>--> </plugin> </plugins> </build>
需要說明的一點,由於在配置檔案中已經指定了本地的jdbc 資料庫驅動的jar地址,所以在外掛配置中,將資料庫依賴給註釋了 ,實際上也是可以在外掛配置中指定資料依賴來實現驅動的指定
配置好外掛後 使用maven 命令:
mvn mybatis-generator:generate
git mybatis 程式碼生成工具生成程式碼