公司的项目使用了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
附:本文参考网址