Spring Boot 中使用 tkMapper( 四 )

逆向工程

所谓逆向工程,就是通过数据库表,来自动生成实体类、dao 接口和 mapper 文件 。
需要注意的是,本逆向工程是最好配合 tkMapper 环境使用,因为,有一些配置和 tkMapper 相关,如生成的 dao 接口会继承自定义的通用接口模板,而该通用的接口模板就是继承了 tkMapper 中的两个接口,从而才能使用 tkMapper 提供的通用数据操作方法;还有 , 生成的实体类上的注解需要依赖 tkMapper 环境 。
重要说明:本逆向工程使用的 mysql 版本是低版本 5.1.36!经测试 , 如果使用高版本如 8.xxx,很大概率会生成有问题!所以建议项目中统一使用低版本的 MySQL 。
  1. 在 pom.xml 中 build 的 plugins 下添加下列生成器插件
    <!-- mybatis-generator-maven-plugin --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><!-- 生成器配置文件位置;如果还没有添加,可以先注释 , 添加后再放开 --><configuration><configurationFile>${basedir}/src/main/resources/generator/GeneratorConfig.xml</configurationFile></configuration><!-- 插件所需的两个依赖 --><dependencies><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.36</version></dependency><!-- mapper --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.1.5</version></dependency></dependencies></plugin>注意:推荐直接复制,但如果想自己在 maven 仓库中搜索,注意关键词:mybatis-generator-maven-plugin,并且,千万注意,你搜索到的肯定是依赖,而并非插件!此时,你只需要复制依赖的 gav 坐标,自己在 pom 中创建空 plugin 标签,将 gav 坐标复制进去即可?。ㄈ绻喙匾览邓⑿绿砑邮О?nbsp;, 可以复制到 dependences 下,重新刷新添加试试,添加成功后复制回来即可)
  2. 注意查看项目中是否自定义有通用接口模板 GeneralDao , 使其继承 tkMapper 的两个接口;如果没有,则在 dao 同级目录,创建 general 目录,在 general 目录下创建自定义通用接口模板 GeneralDao,继承 tkMapper 的两个接口;
    public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T> {}
  3. resources/generator 下添加 GeneratorConfig.xml 生成器配置(创建并复制后改主要配置即可)
    主要需要配置:配置数据库连接、配置实体类存放路径、配置 XML 存放路径、配置 DAO 存放路径、配置 GeneralDao
    注意:默认配置是生成指定数据库中所有表,也可以自定义的指定只生成哪些表
    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- 引入数据库连接配置 --><!--<properties resource="jdbc.properties"/>--><context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"><property name="beginningDelimiter" value="https://www.huyubaike.com/biancheng/`"/><property name="endingDelimiter" value="https://www.huyubaike.com/biancheng/`"/><!-- 配置 GeneralDao --><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="https://www.huyubaike.com/biancheng/com.luis.general.GeneralDao"/></plugin><!-- 配置数据库连接(注意数据库版本问题,需要使用低版本的,高版本可能出现问题?。?--><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/springdb?serverTimezone=UTC"userId="root" password="luis"></jdbcConnection><!-- 配置实体类存放路径 --><javaModelGenerator targetPackage="com.luis.beans" targetProject="src/main/java"/><!-- 配置 XML 存放路径 --><sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/><!-- 配置 Dao 存放路径 --><javaClientGenerator targetPackage="com.luis.dao" targetProject="src/main/java" type="XMLMAPPER"/><!-- 配置需要指定生成的数据库和表,% 代表所有表 --><table tableName="%"><!-- mysql 配置 --><!--<generatedKey column="id" sqlStatement="Mysql" identity="true"/>--></table><!--<table tableName="tb_roles">--><!--&lt;!&ndash; mysql 配置 &ndash;&gt;--><!--<generatedKey column="roleid" sqlStatement="Mysql" identity="true"/>--><!--</table>--><!--<table tableName="tb_permissions">--><!--&lt;!&ndash; mysql 配置 &ndash;&gt;--><!--<generatedKey column="perid" sqlStatement="Mysql" identity="true"/>--><!--</table>--></context></generatorConfiguration>

    推荐阅读