mybatis-generator整合TKmybatis遇到的大坑

项目需要用到通用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> {
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容