MyBatisX使用教程-自定义代码生成模板

文章分类:ToolTutorial 作者:Hackyle

更新时间:Tue Apr 02 11:48:07 CST 2024

本文主要内容:

  • 如何使用MyBatisX生成代码
  • 如何导入自定义代码生成模板
  • 纯净的MyBatis3和MyBatis-Plus3代码生成模板:MyBatisX-Template-Example

前置知识:

  • 知道MyBatisX是一款基于MyBatis-Plus的代码生成工具,在IDEA中,可以根据表,快速生成其对应的实体、Mapper、Service
  • 了解模板引擎FreeMarker

写作背景:

  • MyBatisX默认的代码生成模板生成的代码很不好,例如:生成的实体类上setter、getter上都有数据库字段注释
  • 生成的实体类含有Swagger相关注解
  • 不能同时生成实体与mapper和service
  • 为了解决以上问题,我们可以采取自定义代码生成模板的方式解决,还可以个性化地定义代码生成模板

内容导览:

安装MyBatisX

安装后重启IDEA

基本用法

连接数据库,选中表,右键,选择“MyBatisX-Generator”

根据实际的需要填写,重点关注“base package, relative package, tableName”,然后点击Next

annotation:生成的代码中是否加上注解(例如,@TableName等注解)。None为没有注解

options

  • toString/hashCode/equals:是否生成相应的方法。
  • Lombok:勾选后实体类自动添加Lombok的@Data注解。
  • Actual Column:勾选后,生成的实体类属性名和表中字段名大小写会保持一致。例如,表中有字段classID,勾选该选项后生成的属性名也为classID,未勾选则为classid。
  • Actual Column Annotation:是否对所有属性名都加上注解标明对应字段,例如@TableName。
  • JSR310:Data API:是否使用新标准的时间日期API,包括 Instant、Clock、LocalDateTime、DateTimeFormatter、ZonedDateTime 以及替换 Calendar 的 Chronology 等类。

template:生成mapper、service等相关代码所使用的模板。

生成实体类存在的问题

如上图,在“generate options”界面,template选择“custom-model-swagger”,点击“Finish”

自动导入了字段校验、swagger、空注释

找到生成该实体类的模板文件:在项目同级的目录下,Scratches and Consoles -> Extensions -> MybatisX -> templates

我们发现模板文件中就有字段校验、swagger等逻辑

生成mapper、service存在的问题

在“generate options”界面,template选择“mybatis-plus3”,点击“Finish”

生成的代码中含有冗余的注释

找到生成该类的模板文件:在项目同级的目录下,Scratches and Consoles -> Extensions -> MybatisX -> templates

我们发现模板文件中就有注释的相关逻辑

自定义生成模板

基于上文中提到的问题,我们想要自己定义生成的模板,例如不需要Swagger、使用validation。

MyBatisX官方说明:https://baomidou.com/pages/ba5b24/   搜索(Ctrl+F):生成代码的模板配置

在项目同级的目录下,Scratches and Consoles -> Extensions -> MybatisX:

找到MyBatisX存放模板文件的位置

本次实践中,我们定义两套模板,快速生成最基础的MyBatis代码和MyBatis-Plus代码。

配置我已经上传,点击即可下载:MyBatisX-Template-Example

将下载好的模板文件放置在templates文件夹

其中,ks-mb3是生成MyBatis3的基础模板,ks-mbp3是生成MyBatis-Plus3的基础模板

在生成时,选择我们自己定义的模板

总结

  1. 本文主要介绍了使用MyBatisX生成代码,但是生成的代码有很多默认的附加内容是我们不需要的,所以我们使用自定义的代码生成模板
  2. 本文没有讲解模板代码是如何编写,我们可以根据其提供的默认模板,修改一些内容(其本质是模板引擎FreeMarker),就是我们需要的代码生成模板。后续如果有新的用法,再做补充
  3. 提供了2套纯净的代码生成模板,直接下载使用

 

————————————————
版权声明:非明确标注皆为原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上本文链接及此声明。
原文链接:https://blog.hackyle.com/article/tool/mybatisx-to-custom-code-generate-template

留下你的评论

Name: 

Email: 

Link: 

TOP