不是吧,你还在使用MyBatis Generator?试试这个工具吧
时间:2022-07-23
本文章向大家介绍不是吧,你还在使用MyBatis Generator?试试这个工具吧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
代码生成
在企业软件开发过程中,大多数时间都是面向数据库表的增删改查开发。通过通用的增删改查代码生成器,可以有效的提高效率,降低成本;把有规则的重复性劳动让机器完成,解放开发人员。
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 连接目标数据源
不是吧,你还在使用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
- 效果类似于label从下往上滑(采用uiTableView实现)
- android 热修补之andfix实践
- ios 设置label的高度随着内容的变化而变化
- Android字体大小怎么自适应不同分辨率?
- iOS textfield实现一行的数字限制,超出进行弹框
- android https安全连接
- 第二章 正则表达式位置匹配攻略
- 从网络上下载省份城市名称并存入文件然后进行读取省份城市
- android 应用模式之mvp
- Android网络请求框架之Retrofit实践
- iOS 跳转到应用所在的App Store市场
- 第一章 正则表达式字符匹配攻略
- js最新手机号码、电话号码正则表达式
- iOS afnetworking最新版报错 没有AFHTTPRequestOperationManager类了
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Tensorflow全局设置可见GPU编号操作
- YII框架http缓存操作示例
- 基于tf.shape(tensor)和tensor.shape()的区别说明
- PHP检查URL包含特定字符串实例方法
- Python使用xlrd实现读取合并单元格
- python模块如何查看
- YII框架页面缓存操作示例
- PHP chunk_split()函数讲解
- Python3爬虫中Ajax的用法
- stripos函数知识点实例分享
- PHP实现字符串大小写转函数的功能实例
- 在django中实现choices字段获取对应字段值
- python语言中有算法吗
- jQuery ajax+PHP实现的级联下拉列表框功能示例
- PHP+mysql防止SQL注入的方法小结