想想在手写很多entity、mapper及mapper对应的接口的时候,很多重复的东西,手写,太费时了!可以通过自动生成代码来提高效率。下面来看看mybatis怎么自动生成我们所需的代码。
1.添加mybatis-generator依赖包
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
2.在build的plugins中添加
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!-- mybatis用于生成代码的配置文件 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
3. 配置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>
<!-- mysql数据库连接jar -->
<classPathEntry
location="E:/alimaven/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar" />
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据源 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=GMT%2B8" userId="root"
password="" />
<!-- 生成entity实体类文件位置 -->
<javaModelGenerator targetPackage="com.app.entity"
targetProject="E:/myporjects/mybatisDemo/src/main/java/">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成mapper.xml配置文件位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="E:/myporjects/mybatisDemo/src/main/resources/">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成mapper接口文件位置 -->
<javaClientGenerator targetPackage="com.app.dto"
targetProject="E:/myporjects/mybatisDemo/src/main/java/"
type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 需要生成的实体类对应的表名,多个实体类复制多份该配置即可 -->
<table tableName="t_address" domainObjectName="Address"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
到此为止,所有的配置已完成,如果在ecplise中使用,则右击工程,maven build,添加命令mybatis-generator:generate,运行,代码就会自动生成。项目目录结构及生成的结果如下: