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

    科技2024-11-23  20

    代码生成

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

    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> 缺点 每次代码生成需要配置对应的 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 连接目标数据源

     

    选择目标表进行代码生成

     

     

    进阶配置

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

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

     

    总结

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

     

    Reference

    [1]EasyCode: https://github.com/makejavas/EasyCode

    [2]pig: https://github.com/pig-mesh/pig

    Processed: 0.010, SQL: 8