IDEA Maven項目的Mybatis逆向工程
1.配置.pom
如果是在多模塊開發下,該文件逆向工程要生成的那個模塊下的pom文件。
以下配置在<build>
下級,與<pluginManagement>
同級
<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>5.1.45</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
2.在項目根目錄下新建generatorConfig.xml文件
如果是在多模塊開發下,該文件逆向工程要生成的那個模塊下的根目錄下(src\main\resourse)。
下面是官方文檔提供的參考文件:
具體配置見 4.[配置文件詳解]
<?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>
<!-- 數據庫驅動,若在插件配置時依賴了mysql-connector-java 此處可省略 -->
<!-- <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自動生成的註釋 true:是 false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 數據庫連接驅動、url、用戶名、密碼 -->
<!-- 參考jdbc.properties -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/demo
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="true"/>
</javaTypeResolver>
<!-- 生成的java模型的 包名和位置 -->
<javaModelGenerator targetPackage="com.demo.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成的xml映射文件的 包名和位置 不寫此項不會生成xml文件-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</sqlMapGenerator>
<!-- 生成的Dao接口的 包名和位置 不寫此項不會成成dao層接口-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.demo.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 需要生成實體類的表 tableName是數據庫的表名或視圖名,domainObjectName是生成後的類名 -->
<table schema="DB2ADMIN" tableName="tablename" domainObjectName="classname">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="ID" sqlStatement="DB2" identity="true"/>
<columnOverride column="DATE_FIELD" property="startDate"/>
<ignoreColumn column="FRED"/>
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR"/>
</table>
</context>
</generatorConfiguration>
3.運行mybatis配置文件
點擊右側的Maven->項目名->plugin->mybatis-generator運行即可;
還可以通過以下方式命令運行;
- 選擇右上角運行按鈕旁邊的三角,選擇Edit Configurations
- 點擊+號選擇maven
- 自定義name
- 選擇項目路徑
- 輸入逆向工程的命令 mybatis-generator:generate -e
4.注: 配置文件詳解
-
<classPathEntry>
在pom文件中加入
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency>
依賴後可省略;
-
<context>
id:逆向工程的唯一標識,此值可以被應用到一些錯誤信息;
targetRuntime:此屬性用於指定生成的代碼的運行時目標。常見值爲Mybatis3,Mybatis3Simple等。
-
<jdbcConnection>
數據庫連接信息,可參考數據庫的配置文件db.properties。
-
<javaTypeResolver>
(非必須)該標籤是用來定義java類型解析器的屬性,java類型解析器是用於轉換從數據庫列名的類型對應的java類型。
-
<javaModelGenerator>
該標籤決定逆向工程生成實體的位置。
targetPackage決定生成在哪個包下,默認存放在src目錄下;(com.test.entity)
targetProject決定生成到的目標工程;(.\src\main\java)
enableSubPackages:是否放schema作爲包的後綴;(false)
trimString:從數據庫返回的值是否刪除前後的空格;
-
<sqlMapGenerator>
生成XxxMapper.xml文件的位置,類似
<javaModelGenerator>
targetPackage決定生成在哪個包下;(mappers)
targetProject決定生成到的目標工程;(.\src\main\resourse)
enableSubPackages:是否放schema作爲包的後綴;(false)
-
<javaClientGenerator>
生成XxxMapper接口文件的位置,類似
<javaModelGenerator>
targetPackage決定生成在哪個包下;(com.test.dao)
targetProject決定生成到的目標工程;(.\src\main\java)
enableSubPackages:是否放schema作爲包的後綴;(false)
- 注意:在配置生成實體類,mapper接口,mapper.xml配置文件的位置時,如果要生成到不同的模塊中,或者有找不到文件位置時,可以採用完整路徑的方式。
-
<table>
schema:不用填寫;
tableName:表名;
domainObjectName:自動生成的實體文件名;
5.官方文檔提供的其他功能
mybatis逆向工程在官方文檔具有非常詳細的解釋,包括對生成文件內容的定義,可以去掉註釋,取消生成mapper文件自動生成的增刪改查等。
官方文檔地址:http://www.mybatis.org/generator/
-
去註釋:(context下)
是否去除所有自動生成文件的註釋:
<commentGenerator> <!-- 是否去除所有自動生成的文件的時間戳:--> <property name="suppressDate" value="false"/> <!-- 是否去除所有自動生成文件的註釋:--> <property name="suppressAllComments" value="true"/> </commentGenerator>
-
去掉實體文件下的Example實體類文件。
<table tableName="user" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table>
官方文檔還有很多功能,可以進入官方文檔頁面查看。
http://www.mybatis.org/generator/