MyBatis 的好帮手-MybatisX

前言

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

  • 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 可以尝试挂代理

MyBatis 的好帮手-MybatisX_第1张图片

2.2 配置数据源

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

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

MyBatis 的好帮手-MybatisX_第2张图片

2.3 选择自己常用数据库

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

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

MyBatis 的好帮手-MybatisX_第3张图片

MyBatis 的好帮手-MybatisX_第4张图片

3. 使用场景

3.1 XML 跳转

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

在这里插入图片描述

3.2 生成代码

可以生成 Mapper 层、Xml、DTO 代码,并可以指定生成的模板、路径、语句等,非常便捷,是核心功能
表 → 右键 → MybatisX-Generator
MyBatis 的好帮手-MybatisX_第5张图片
MyBatis 的好帮手-MybatisX_第6张图片

标签 解释
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(与表名相同)
superClass DTO 对象继承的父类。
ignore table prefix 忽略表前缀。DTO 的类名会在生成后删除指定的前缀。
ignore table suffix 忽略表后缀。DTO 的类名会在生成后删除指定的后缀。

MyBatis 的好帮手-MybatisX_第7张图片

点击 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

MyBatis 的好帮手-MybatisX_第8张图片
MyBatis 的好帮手-MybatisX_第9张图片

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

3.3 重置模板

重置模板功能可以自定义生成的 Xml 文件,或者刷新最新版本的模板格式
Project → Scratches and Consoles → Extensions → MyBatisX → templates
MyBatis 的好帮手-MybatisX_第10张图片
MyBatis 的好帮手-MybatisX_第11张图片

刷新默认的模板需要先删除模板文件,如删除 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.jdbcType jdbc 类型
field.columnLength 列的长度
field.columnScale 列的精度
field.columnIsArray 字段类型是不是数组类型
field.shortTypeName java 类型短名称, 通常用于定义字段
field.fullTypeName java 类型的长名称, 通常用于导入
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,并且可以自定义生成方式
在这里插入图片描述

MyBatis 的好帮手-MybatisX_第12张图片

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

MyBatis 的好帮手-MybatisX_第13张图片
MyBatis 的好帮手-MybatisX_第14张图片
上图 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、商家中心等产品形态,通过数字化工具,实现门店的用户上平台、交互上平台、交易上平台、交付上平台,从而助力海尔专卖店的零售转型,并实现三翼鸟店的场景创新。

你可能感兴趣的:(研发,java,效能提升,mybatis,java)