公司的項目使用了mybatis,xml中的增刪改查方法如果自己寫還是很煩心的,因此
琢磨琢磨逆向工程。這個說起來簡單,但是中間還是有不少坑的,特別是結合了maven以後。
下面進入正題:
1.由於用到了maven所以很多東西要從pom.xml中開始,下面配置是配置
mybatis-generator在maven中的插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<!-- 插件的初始配置 -->
<configuration>
<!-- 指定插件運行的generator.xml文件位置 --> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<!-- 允許移動生成的文件-->
<verbose>true</verbose>
<!-- 允許覆蓋生成的文件-->
<overwrite>true</overwrite>
</configuration>
<!-- 下面的jar必須要在此處引入,如果在外部引入則會出現找不到jar的異常 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- 引用依賴庫的版本 -->
<version>6.0.3</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<!-- 引用依賴庫的版本 -->
<version>3.4.1</version>
</dependency>
</dependencies>
</plugin>
2.數據庫以及生成後的類存放的路徑配置(該配置文件通常爲generatorConfig.properties,可自定義)
#數據庫配置,此處所有的參數後都不能有空格,否則會報錯,url後接時區是因爲mysql-connector-java的版本因素
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=GMT&useUnicode=true&characterEncoding=utf8&useSSL=true
jdbc.username=root
jdbc.password=12345678
#下面兩句配置的類的包路徑
package.entityName=tanxz.common.entity
package.className=learnForSSM.tanxz.dao
#properties文件中還可以配置,實體類名,對應表名,等等...
3.數據庫配置後,則可以配置generator的真正配置文件了(通常命名爲generatorConfig.xml,可自定義)
<?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>
<properties url="file:////D:\workspace\dataManager\src\main\resources\generator\generatorConfig.properties"></properties>
<!--不需要在這裏配置,因爲找不到-->
<!-- <classPathEntry
location="C:\Users\szyh-tanxz\.m2\repository\mysql\mysql-connector-java\6.0.3\mysql-connector-java-6.0.3.jar" /> -->
<context id="baseTradeTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- properties中的數據庫地址、用戶名、密碼 -->
<jdbcConnection driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}" userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<!-- 後臺生成 -->
<!-- model targetPackage則是properties中的包路徑 -->
<javaModelGenerator targetPackage="${package.entityName}"
targetProject="src/test/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- Mapper映射 -->
<sqlMapGenerator targetPackage="${package.className}"
targetProject="src/test/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- Mapper接口 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="${package.className}" targetProject="src/test/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 表該項配置中只有tableName(表名)和domainObjectName(實體名)兩項是必須的 -->
<table tableName="user" domainObjectName="user" enableCountByExample="false" enableSelectByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"/>
</context>
</generatorConfiguration>
4.ant配置文件:項目根目錄下創建名爲build.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<!--mybatis-generator:generate project的name改爲自己的項目名-->
<project name="dataManager" default="compiler">
<target name="compiler">
<property name="dir.compiler.home" location="." />
<exec executable="cmd" failonerror="true" dir="${dir.compiler.home}">
<arg line="/c mvn -X mybatis-generator:generate" />
</exec>
</target>
</project>
5.以上步驟都做完之後就,maven install,然後右鍵build.xml文件run ant build即可
注:我所使用的環境爲:mysql5.7,mysql-connector-java6.0.3,java8
附:本文參考網址