前言:mybatis-generator插件和TKmybatis的结合使用
mybatis-generator可以自动生成mapper和entity文件,mybatis-generator有三种用法:命令行、eclipse插件、maven插件。这里使用的是maven插件方式,可以在eclipse/intellij idea等ide上可以通用。
TKmybatis提供一种通用mapper,它不需要针对每个mapper写sql语句,只需继承通用mapper调用相应的接口来完成单表的增删改查。
step1 导入pom配置
<properties>
<!-- MyBatis Generator -->
<mybatis.generator.version>1.3.2</mybatis.generator.version>
<targetJavaProject>${basedir}/src/main/java</targetJavaProject>
<!-- tk.mybatis -->
<tk.mybatis.version>3.3.6</tk.mybatis.version>
<persistence.version>1.0</persistence.version>
<mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin>
<mapper.Mapper>tk.mybatis.mapper.common.Mapper</mapper.Mapper>
</properties>
<dependencies>
<!--通用Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tk.mybatis.version}</version>
</dependency>
<!-- eitity注解 -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>${persistence.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis.generator.version}</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis.generator.version}</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tk.mybatis.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
step2 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 resource="cfg.properties"/>
<!--<!– mysql 驱动 –>-->
<classPathEntry location="D:/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"/>
<context id="my" targetRuntime="MyBatis3">
<!-- TKmybatis配置 -->
<property name="javaFileEncoding" value="UTF-8"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<plugin type="${mapper.plugin}">
<property name="mappers" value="${mapper.Mapper}"/>
</plugin>
<commentGenerator >
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="${eams.db.ip}"
userId="${eams.db.username}"
password="${eams.db.password}"/>
<javaModelGenerator targetPackage="com.cn.java.usermng.entity" targetProject="src/main/java">
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.cn.java.usermng.xml" targetProject="src/main/java">
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.cn.java.usermng.mapper" targetProject="src/main/java" type="XMLMAPPER">
</javaClientGenerator>
<table tableName="asset_info" domainObjectName="AssetInfo"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
</context>
</generatorConfiguration>
注意:此语句注释,xml中可生成增改sql语句。
step3 创建cfg.properties
eams.db.ip=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8
eams.db.username=用户
eams.db.password=密码
step4 配置启动:
mybatis-generator:generate
注意事项:
如报以下异常,在mysql中执行:SET GLOBAL time_zone='+8:00';
没有此异常请忽略。
Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate
(default-cli) on project mybatis-generator: The server time zone value 'Öйú±ê׼ʱ¼ä'
is unrecognized or represents more than one time zone. You must configure either
the server or JDBC driver (via the serverTimezone configuration property) to use
a more specifc time zone value if you want to utilize time zone support.
生成的结果
mapper接口中通用方法使用父类Mapper
注意:springboot项目使用tk组件,需要在启动类中添加@MapperScan("mapper包接口的全路径")
使用lombok插件简化实体 ,除去get,set 方法
1.使用lombok插件需要安装
2.导包
<!-- lombok 插件 简化实体-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.16.22</version>
</dependency>