项目需要用到通用mapper,于是乎就将TKmybatis整合到了原先准备用逆向工程的项目的配置文件中。
项目结构

项目结构
pom.xml中部分代码
在pom中增加mybatis和通用mapper的依赖,以及generator的插件。
<properties>
<!-- tk.mybatis -->
<tk.mybatis.version>3.4.6</tk.mybatis.version>
<persistence.version>1.0</persistence.version>
<mybatis.generator.version>1.3.5</mybatis.generator.version>
<mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin>
<mapper.Mapper>tk.mybatis.mapper.common.Mapper</mapper.Mapper>
</properties>
<!-- 配置tk.mybatis -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis.generator.version}</version>
<configuration>
<configurationFile>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>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
</dependencies>
</plugin>
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>
<classPathEntry
location="D:\JAVA\MavenRepository\
repo\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar" />
<!-- 一个数据库一个context -->
<context id="Exam" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!-- 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>
<!-- 生成 JavaBean 对象重写 toString方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<!-- 生成 JavaBean 对象继承 Serializable 类 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->
<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 -->
</commentGenerator>
<!-- jdbc连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/examsystem" userId="root"
password="123456" />
<!-- 生成实体类地址 -->
<javaModelGenerator
targetPackage="com.bosssoft.exam.entity"
targetProject="src/main/java">
<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成mapxml文件 -->
<sqlMapGenerator
targetPackage="com.bosssoft.exam.mapper"
targetProject="src/main/java">
</sqlMapGenerator>
<!-- 生成mapxml对应client,也就是接口dao -->
<javaClientGenerator
targetPackage="com.bosssoft.exam.dao"
targetProject="src/main/java" type="XMLMAPPER">
</javaClientGenerator>
<!-- 配置表信息 -->
<!-- <table tableName="person" domainObjectName="Person"> <generatedKey
column="id" sqlStatement="mysql" identity="true"/> </table> -->
<table tableName="role" domainObjectName="Role">
<generatedKey column="role_id" sqlStatement="mysql"
identity="true" />
</table>
</context>
</generatorConfiguration>
pom.xml 中配置了 mybatis-generator-maven-plugin,就能将 pom 中的 properties 以 ${} 的形式引用至 generatorConfig.xml。
重点来了,本来我之前的项目逆向工程都是用eclipse整合的右键插件Generate Mybatis Artifacts一键生成代码的,但是在这个项目中右键报错,无法找到tkmybatis的包,折腾了我很久。
Unexpected error while running MyBatis Generator.Cannot instantiate object of type ${mapper.plugin}
直到我试了百度的一种方法,在pom.xml所在路径右键控制台输入
mvn mybatis-generator:generate
于是乎就成功生成了继承了通用mapper的项目文件。
package com.bosssoft.exam.dao;
import com.bosssoft.exam.entity.Role;
import tk.mybatis.mapper.common.Mapper;
public interface RoleMapper extends Mapper<Role> {
}