什么?你还在用MyBatis Generator?快试试这个吧

198 阅读2分钟

代码生成

在企业软件开发过程中,大多数时间都是面向数据库表的增删改查开发。通过通用的增删改查代码生成器,可以有效的提高效率,降低成本;把有规则的重复性劳动让机器完成,解放开发人员。

MyBatis Generator

  • MyBatis Generator 是 MyBatis 提供的一个代码生成工具

可以帮我们生成表对应的持久化对象(po)、操作数据库的接口(dao)、CRUD sql 的 xml(mapper)。

 

<plugin>    <groupId>org.mybatis.generator</groupId>    <artifactId>mybatis-generator-maven-plugin</artifactId>    <version>${last.version}</version>    <configuration>        <!--mybatis的代码生成器的配置策略文件-->        <configurationFile>mybatis-generator-config.xml</configurationFile>    </configuration></plugin>
  • 配置代码生成相关的策略文件 mybatis-generator-config.xml

 

<generatorConfiguration>    <context>        <!-- jdbc连接 -->        <jdbcConnection> ... </jdbcConnection>        <!-- schema为数据库名,tableName为对应的数据库表名 -->        <table> ... </table>        <!-- 注释 -->        <commentGenerator> ... </commentGenerator>        <!-- 类型转换 -->        <javaTypeResolver> ... </javaTypeResolver>        <!-- 生成实体类配置 -->        <javaModelGenerator> ... </javaModelGenerator>        <!-- 生成Mapper.xml文件配置 -->        <sqlMapGenerator> ... </sqlMapGenerator>        <!-- 生成Mapper.java 接口-->        <javaClientGenerator> ... </javaClientGenerator>    </context></generatorConfiguration>
  • 缺点
  1. 每次代码生成需要配置对应的 mybatis-generator-config 通过 XML 的形式配置相关生成属性和规则
  2. 无法生成通用的 Controller、Service 类,无法自定义模板等

综上两点: mybatis-generator 使用非常不方便

EasyCode

EasyCode[1] 是基于 IntelliJ IDEA Ultimate 版开发的一个代码生成插件,主要通过自定义模板(基于 velocity)来生成各种你想要的代码。通常用于生成 Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成 HTML、JS、PHP 等代码。理论上来说只要是与数据有关的代码都是可以生成的。

快速上手

  1. 安装 IDEA EasyCode 插件。 支持在线安装,插件市场搜索安装即可。
  2. 使用 IDEA 连接目标数据源

不是吧,你还在使用MyBatis Generator?试试这个工具吧

  1. 选择目标表进行代码生成

image.png

不是吧,你还在使用MyBatis Generator?试试这个工具吧

进阶配置

如上即可完成基于单表的增删改查方法,包括 Controller、Service、Mapper、Entity。 但默认生成是基于原生 MyBatis 的通用文件,不适用于 MyBatisPlus、通用 Mapper 等 Mybatis 扩展插件。我们可以通过编辑 EasyCode 的模板文件,来动态添加我们的生成规则,并且可以导出给其他人使用。

  • 甚至于可以配置新的模板生成前端页面,比如基于 Element 的增删改查

image.png

总结

  • 当然很多脚手架都会内置代码生成功能。 例如 pig[2] 的开发平台模块 ,通过自定义模板引擎形式实现代码生成,能够更好的整合现有业务提开发效率。

不是吧,你还在使用MyBatis Generator?试试这个工具吧

Reference

[1]EasyCode: github.com/makejavas/E…

[2]pig: github.com/pig-mesh/pi…