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>

    推薦閱讀