MyBatis 的好帮手-MybatisX

11 篇文章 0 订阅
4 篇文章 0 订阅

前言

你是否碰见过这样的情况:

  • Dao/Mapper 层无法一键跳转到对应 Xml 中的 SQL,还要复制粘贴去对比;
  • 需要对新建的表进行增删改查操作,复制粘贴一套 Xml,然后改改改;
  • 需要对新建的表创建 DTO 对象,对着数据库表结构看花眼一个个设置属性;
  • Mapper 命名麻烦,自己想的名字还不够规范;

MybatisX 能很好的解决这些问题。

1. MybatisX 介绍

MybatisX 是一款基于 IDEA 的快速开发插件,通过对 MyBatis 和 MyBatis-Plus 的适配,实现 DTO、Xml、SQL 等模式化代码的一键生成,并可以定制化模板,是 Java 开发工程师的好帮手。

2. 使用准备

2.1 安装插件

Intellij IDEA → Settings → Plugins → Marketplace → MybatisX → 重启 IDEA

安装完插件需要重启,另外如果进入不了 Marketplace 可以尝试挂代理

在这里插入图片描述

2.2 配置数据源

Database → 点击➕号 → Data Source → MySQL → 填写数据库信息 → Apply → Make Global → OK

不要忘记点击 Make Global 按钮,不然每一个工程都要进行数据源配置,非常麻烦

在这里插入图片描述

2.3 选择自己常用数据库

选择数据源 → 点击 Data Source Properties(或者数据源后的 1 of xxx) → Schemas →选择数据源

这一步主要是为了查找方便,常用的数据库一般就几个,只勾选常用的利于操作

在这里插入图片描述

3. 使用场景

3.1 XML 跳转

在 Mapper 层中点点击这个按钮可以直接跳转到对应的 Xml 或者 SQL 语句
在这里插入图片描述

在这里插入图片描述

3.2 生成代码

可以生成 Mapper 层、Xml、DTO 代码,并可以指定生成的模板、路径、语句等,非常便捷,是核心功能
表 → 右键 → MybatisX-Generator
在这里插入图片描述
在这里插入图片描述

标签解释
module path模块路径。点击编辑框可以选择在哪个模块里生成代码。
base package基础包名。在基础路径的基础上生成的包名。
base path基础路径。在模块路径的基础上生成的包名。
relative package相对包名。DTO 对象会在这里生成。
encoding编码格式,默认 UTF-8。
extra class suffix附加类后缀。DTO 的类名会在生成后添加指定的后缀。
ignore filed prefix忽略字段前缀。DTO 的字段会在生成后删除指定的前缀。
ignore filed suffix忽略字段后缀。DTO 的字段会在生成后删除指定的后缀。
class name strategy类名生成策略。可选:camel(驼峰结构)和 same as tablename(与表名相同)
superClassDTO 对象继承的父类。
ignore table prefix忽略表前缀。DTO 的类名会在生成后删除指定的前缀。
ignore table suffix忽略表后缀。DTO 的类名会在生成后删除指定的后缀。

在这里插入图片描述

点击 Next,进入 Mapper 和 Xml 的设置

标签解释
annotation注解类型。目前支持四种注解:None(无注解)、Mybatis-Plus 3、Mybatis-Plust 2、JPA,如果没有使用直接选 None 即可。
options额外的一些选项。Comment(注释,建议勾选);toString/hashCode/equals(重写这些方法,根据需要勾选);Lombok(使用 Lombok 注解方式,如果使用了 Lombok 建议勾选);Actual Column(实际列名,比如 user_name 列对应的属性也叫 user_name,不勾选就是 ;userName,不建议勾选);Actual Column Annotation(添加列注解,建议勾选);JSR310:Date API(是否选用新标准的时间 API,建议勾选);Model(是否生成 DTO 模型,根据需要勾选)
template生成模板。custom-model-swagger(属性上会自动增加 swagger 的相关注解);default-all(生成所有常用的 curd 方法,包括 Mapper 和 Xml);default-empty(生成的 Mapper 和 Xml 没有方法);mybatis-plus2;mybatis-plus3

在这里插入图片描述
在这里插入图片描述

注意在生成过程中要保持数据源的连接状态,不然无法生成

3.3 重置模板

重置模板功能可以自定义生成的 Xml 文件,或者刷新最新版本的模板格式
Project → Scratches and Consoles → Extensions → MyBatisX → templates
在这里插入图片描述
在这里插入图片描述

刷新默认的模板需要先删除模板文件,如删除 defalut-all,然后右键 templates → Restore Default Extensions
自定义模板内容

名称含义
tableClass.fullClassName类的全称(包括包名)
tableClass.shortClassName类的简称
tableClass.tableName表名
tableClass.pkFields表的所有主键字段
tableClass.allFields表的所有字段
tableClass.baseFields排除主键和 blob 的所有字段
tableClass.baseBlobFields排除主键的所有字段
tableClass.remark表注释

字段信息

名称含义
field.fieldName字段名称
field.columnName列名称
field.jdbcTypejdbc 类型
field.columnLength列的长度
field.columnScale列的精度
field.columnIsArray字段类型是不是数组类型
field.shortTypeNamejava 类型短名称, 通常用于定义字段
field.fullTypeNamejava 类型的长名称, 通常用于导入
field.remark字段注释
field.autoIncrement是否自增
field.nullable是否允许为空

配置信息

名称含义
baseInfo.shortClassName配置名称
baseInfo.tableName配置文件名称
baseInfo.pkFields配置名称
baseInfo.allFields后缀
baseInfo.baseFields包名
baseInfo.baseBlobFields模板内容
baseInfo.remark相对模块的资源文件路径

3.4 根据 Mapper 命名生成 SQL

这是 Mybatis 最强大的地方,可以根据命名生成 SQL,并且可以自定义生成方式
在这里插入图片描述

在这里插入图片描述

如图,右键 Mapper 中的名字,选择 Show ContextActions,如果需要自定义则选择第二个,直接生成则选择第一个。
如果选择第二个,可以根据需要设置生成的方式,一般默认即可,点击 OK 生成

在这里插入图片描述
在这里插入图片描述
上图 Generate Options 里有一个插件作者的错误,大家可以找找看,本文作者已经提了 issue 了,应该很快会被修复

  • 生成规则:遵循前缀匹配规则
  • insert:前缀可以使用 add、insert、new、create 等
  • delete:前缀可以使用 del、delete、cancel 等
  • update:前缀可以使用 set、update、modify 等
  • select:前缀可以使用 find、query、select、get、list、look、count、search 等
  • 查询一个:selectOne
  • 查询所有:selectAll
    因为官方没有给出匹配的文档,但是按照规范的命名规则基本都可以匹配,感兴趣的可以扒一下源码。

4. 写在最后

MybatisX 可以独立于 MyBatis-Plus,但是于 MyBatis-Plus 的适配性更好,有条件的开发者建议结合两者使用,可以更加提高开发效率,还可以添加官方群,与作者面对面互动交流学习。

5. 官方文档

MybatisX 使用说明

6. 团队介绍

三翼鸟数字化技术平台-交易交付平台」负责搭建门店数字化转型工具,包括:海尔智家体验店小程序、三翼鸟工作台APP、商家中心等产品形态,通过数字化工具,实现门店的用户上平台、交互上平台、交易上平台、交付上平台,从而助力海尔专卖店的零售转型,并实现三翼鸟店的场景创新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值