美文网首页
Java MyBatis生成文件的拓展插件(分页、重命名With

Java MyBatis生成文件的拓展插件(分页、重命名With

作者: 第三条跑道 | 来源:发表于2020-05-06 21:29 被阅读0次

    Java目前最常见的开发场景,依然是大数据、Web应用、后台服务开发。而在这些开发中,常用MySQL数据库,而MySQL in Java常用的是MyBatis。

    在团队开发中,无可避免的开发环境有众多不同。IDE(IDEA、Eclipse)、发行版类型(社区版、旗舰版)、版本号(2018.1、2018.2、2018.3、2019.1...)、插件工具(better-mybatis-generator、Free Mybatis plugin...)这些都会各不相同,为了避免协助开发时,先后生成的MyBatis文件不统一,也为了更方便地去生成,采用此解决方案

    1. 使用与个人开发环境无关的配置(maven pom配置)
    2. 使用易获取、可拓展的插件工具(org.mybatis.generator:mybatis-generator-maven-plugin)
    3. 实现插件工具的业务定制拓展功能(定制开发项目 nbj-mybatis-generator-plugins

    1. 使用与个人开发环境无关的配置

    查阅 MyBatis 官网资料,可以了解如何进行配置
    MyBatis Generator 快速开始指导
    基于Maven执行MyBatis Generator

    在pom.xml里增加build插件

    <project ...>
         ...
         <build>
           ...
           <plugins>
            ...
            <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.4.0</version>
            </plugin>
            ...
          </plugins>
          ...
        </build>
        ...
      </project>
    

    生成文件:在Maven工具栏,执行generate,或者命令行 mvn mybatis-generator:generate


    IDEA 执行 mybatis-generator:generator

    错误1:没有增加mysql connector依赖,会报错获取JDBC Driver失败,形如:

    Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.4.0:generate (default-cli) on project nbj-mybatis-generator-plugins: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.4.0:generate failed: Exception getting JDBC Driver
    

    解决1:具体增加依赖形如:

    解决1:插件依赖 mysql-connector-java @ pom.xml

    错误2:没有配置 generatorConfig.xml,会报错配置文件不存在,形如:

    Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.4.0:generate (default-cli) on project xxxx: configfile /Users/nextbin/xxxxxxxxx/xxxx/src/main/resources/generatorConfig.xml does not exist
    

    解决2:修改配置文件路径,或新增配置文件

    解决2:修改配置文件路径 @ pom.xml
    解决2:新增配置文件 @ generatorConfig.xml

    2. 使用易获取、可拓展的插件工具

    generator默认生成的文件为:Domain.java、DomainWithBlobs.java、DomainMapper.java、DomainMapper.xml

    但是由于默认生成的功能比较有限,没有分页功能,没有Domain Builder功能,我们需要引入插件工具,这里首先引入官方自带的 MyBatis Generator Plugins: Domain-With-Builder和RowBounds。

    generator 引入官方插件

    由此配置的 generatorConfig.xml 可以使得生成的Domain带有 With-Builder,而Mapper.java带有RowBounds参数的分页查询。结果如下两图:


    使用官方插件的实体类With-Builder效果
    使用官方插件的Mapper.java效果

    3. 实现插件工具的业务定制拓展功能

    我们通过官方插件 org.mybatis.generator.plugins.RowBoundsPlugin 生成的 Mapper 使用多了一个参数RowBounds 来达到分页效果。但是,实际上该分页功能没有使用到MySQL查询的limit关键字(可以由生成的Mapper.xml文件看出),所以对于大表分页查询,实际上会查询出全表再做分页,这在表数据量比较大的场景下,是不允许的。因此,我们需要定制开发出带有limit 关键字的分页查询。

    定制插件的开发文档

    根据开发文档,可以完成实现。在本文章的基础上,现仅需完成4步小改动,即可生成带有定制插件的文件,详见:https://github.com/nextbin/nbj-mybatis-generator-plugins

    1. 安装依赖(暂时还没有发布到公共maven仓库,需要手动安装)

      git clone https://github.com/nextbin/nbj-mybatis-generator-plugins.git
      git checkout v0.0.1
      mvn clean install
      
    2. 修改 pom.xml,新增 build.plugins.plugin 配置插件 org.mybatis.generator:mybatis-generator-maven-plugin 的插件依赖 github.nextbin.maven:nbj-mybatis-generator-plugins。


      新增generator依赖 @ pom.xml
    3. 新增 src/main/resources/mybatis/generatorConfig.xml,如已配置,则需新增拓展插件。


      新增拓展定制插件 @ generatorConfig.xml
    4. 在IDEA侧边栏执行 generate 操作
      生成文件:在Maven工具栏,执行generate,或者命令行 mvn mybatis-generator:generate

    更多内容:

    https://github.com/nextbin/nbj-mybatis-generator-plugins

    参考资料:

    https://mybatis.org/generator/

    相关文章

      网友评论

          本文标题:Java MyBatis生成文件的拓展插件(分页、重命名With

          本文链接:https://www.haomeiwen.com/subject/hqmyghtx.html