代码生成
在企业软件开发过程中,大多数时间都是面向数据库表的增删改查开发。通过通用的增删改查代码生成器,可以有效的提高效率,降低成本;把有规则的重复性劳动让机器完成,解放开发人员。
MyBatis Generator
- MyBatis Generator 是 MyBatis 提供的一个代码生成工具
可以帮我们生成表对应的持久化对象(po)、操作数据库的接口(dao)、CRUD sql 的 xml(mapper)。
代码语言:javascript复制<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>
- 缺点
- 每次代码生成需要配置对应的 mybatis-generator-config 通过 XML 的形式配置相关生成属性和规则
- 无法生成通用的 Controller、Service 类,无法自定义模板等
综上两点: mybatis-generator 使用非常不方便
EasyCode
EasyCode[1] 是基于 IntelliJ IDEA Ultimate 版开发的一个代码生成插件,主要通过自定义模板(基于 velocity)来生成各种你想要的代码。通常用于生成 Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成 HTML、JS、PHP 等代码。理论上来说只要是与数据有关的代码都是可以生成的。
快速上手
- 安装 IDEA EasyCode 插件。 支持在线安装,插件市场搜索安装即可。
- 使用 IDEA 连接目标数据源
不是吧,你还在使用MyBatis Generator?试试这个工具吧
- 选择目标表进行代码生成
image.png
不是吧,你还在使用MyBatis Generator?试试这个工具吧
进阶配置
如上即可完成基于单表的增删改查方法,包括 Controller、Service、Mapper、Entity。 但默认生成是基于原生 MyBatis 的通用文件,不适用于 MyBatisPlus、通用 Mapper 等 Mybatis 扩展插件。我们可以通过编辑 EasyCode 的模板文件,来动态添加我们的生成规则,并且可以导出给其他人使用。
- 甚至于可以配置新的模板生成前端页面,比如基于 Element 的增删改查
image.png
总结
- 当然很多脚手架都会内置代码生成功能。 例如 pig[2] 的开发平台模块 ,通过自定义模板引擎形式实现代码生成,能够更好的整合现有业务提开发效率。
不是吧,你还在使用MyBatis Generator?试试这个工具吧
Reference
[1]EasyCode: https://github.com/makejavas/EasyCode
[2]pig: https://github.com/pig-mesh/pig