代码生成

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

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

快速上手

  1. 安装 IDEA EasyCode 插件。 支持在线安装,插件市场搜索安装即可。

  2. 使用 IDEA 连接目标数据源

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

进阶配置

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

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

总结

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

项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

最新文章

  1. 解决java.net.MalformedURLException: unknown protocol: c问题
  2. Android数据存储之SharedPreferences及如何安全存储
  3. laravel框架总结(十一) -- 集合
  4. Shell命令_Cron使用
  5. php命名、注释规范
  6. UVa 458 - The Decoder
  7. crontab任务取消发送邮件
  8. 获取ks模板文件
  9. 第六章 管理类型(In .net4.5) 之 创建类型
  10. Symfony VarDumper Component
  11. Android 开发之开发插件使用:Eclipse 插件 SQLiteManger eclipse中查看数据内容--翻译
  12. 设计模式(8) - 迭代器模式(iterator)- 实现ArrayList和linkedList的迭代器
  13. 动手制作属于你自己的WIN PE3.0
  14. Headless Chrome:服务端渲染JS站点的一个方案【中篇】【翻译】
  15. obj-c编程01[扩展学习01]:对象消息机制工作原理
  16. Java虚拟机学习笔记——JVM垃圾回收机制
  17. [TJOI2018]智力竞赛【网络流】
  18. vim 插件 -- omnicppcomplete
  19. css 样式控制文本过长实现省略号
  20. java应用健康检查

热门文章

  1. Mac上的Redis安装和使用
  2. 20201228 买卖股票的最佳时机 IV(困难)
  3. Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化
  4. 这一篇TCP总结请收下
  5. MySQL 导出 select 结果集
  6. 五大自动化测试的Python框架
  7. 下载HLS视频到本地
  8. [源码解析] 消息队列 Kombu 之 基本架构
  9. python:虚拟环境与pip
  10. ajax请求添加自定义header参数