一、MybatisCodeHelperPro 插件基本认识
1. 什么是 MybatisCodeHelperPro
概念: 是一款 IDEA 插件,用来快速操作 Mybatis,使用这个插件能使你的开发效率提升数倍,并且在 IDEA 中写 SQL 语句会有提示,等等。
2. 常用的几个功能
作用:
- 插件可以识别 mybatis 动态标签,使用 mybatis 动态标签的 sql 可以正常提示,检测
- mybatis 几乎所有地方的 sql 都有代码提示,可以写出安全的 sql
- 从表上生成增删查改代码,在表上加字段后重新生成不会覆盖自己写的方法
- 使用方法名生成完整的 sql,只要一个方法名就可以生成大部分单表操作的sql
- resultMap、column 和 property 代码提示,检测,支持 associaction,collection,,columnPrefix
- #{} 自动提示,检测
- 从 java 类生成建表语句
- 最好的 ognl 支持,if test自动提示检测,bind,foreach 等
- 解析 select 语句中查询的字段,一键从 sql 生成 java 类和 resultMap
- 从 sql 快速生成 mybatis xml 和 java 接口方法,可自定义参数
- 快速给参数添加 if test
- 从接口方法一键生成 testcase,可快速测试 sql
- mybatis 代码格式化,兼容 mybatis 的动态标签
- Spring 支持,检测项目配置的 mapperscan,识别 @Mapper 注解,将 mybatis 的类注入到spring 中,注入不再报错
- mybatis sql log 支持,从控制台打印出完整的 sql,点击直接执行 sql
- 大量的配置选项,比如某些插件要忽略部分参数解析,useActualParam 配置,typeAlias 配置等
- 最好的泛型支持,接口方法或者参数使用泛型在 #{} if test 等也可以正常解析
- #{},if test 等可重构参数名称
- 支持 mybatis 简单的注解,代码提示,检测,可以一键把注解 sql 挪到 xml
- 兼容 mybatisplus,tkmapper 等框架
- 使用方法名生成 mybatisplus QueryWrapper
3. 为什么激活
这个插件可以免费试用,但是激活后,它的功能更加全面。
二、插件的下载方式
这里的操作演示,使用的是 Windows 系统,Mac 一样,有区别的位置,我会标志,没有说明就代表通用!
1. 在 idea 中 plugins 插件市场安装
在 IDEA 设置中找到 plugins ,搜索 MyBatisCodeHelper Pro 即可找到:
这里安装方式的话,一般都是最新版本,对后面激活操作不友好,所以这里不建议这么安装(如果不需要激活,请另说!!!)
2. 在 Jetbrains 官方插件市场下载安装(推荐)
1、官网:Jetbrains插件市场
2、搜索后,来到下面的页面:然后里面有操作文档、各版本下载链接
三、安装插件
1. MybatisCodeHelperPro3.2.x 版本下载安装为例
1、这里选择的版本为 3.2.4,建议大家也选择这个版本(因为这个版本不新也不旧,后续也好进行激活操作(版本不一致也没关系,后面会讲解)):
2、开始安装:
然后重启 IDEA 即可。
至此,插件的安装就完成了,下面是激活教程,不需要激活的不需要看,但建议大家激活!!!
四、MybatisCodeHelperPro激活
1. 激活前必看
申明: 激活操作跟版本有关。
1、这里的激活操作。版本需要是:3.1.x ~ 3.2.x ,高于 3.2.x 的版本激活操作不一样,请注意!!!
2、这里的激活操作。3.2.2、3.2.3、3.2.4、3.2.5 这几个版本已经测试了(也就是说,只要是这几个版本,按照下面激活操作,都能成功),至于 3.1.x 的版本,没有亲自测试,但基本上也能成功。
3、下面以 3.2.4 版本激活为例。
2. 激活步骤(MybatisCodeHelperPro3.2.4为例)
1、前提:先去下载 3.2.4 的版本,并在 IDEA 中进行安装。
2.1 正式开始
2、下载 cfr jar包:百度网盘链接如下:
链接:https://pan.baidu.com/s/1XuNsSGHeuTzWTLJr9PI9nw
提取码:1234
3、找到 第 1 步 中 插件的安装位置,并找到安装的 jar 包:
- Windows: 在地址栏输入
%appdata%\JetBrains\
找到 idea 安装目录,里面有个 plugins文件夹,然后里面有个文件夹 MyBatisCodeHelper-Pro
① 一般 Windows 的位置为:C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins\MyBatisCodeHelper-Pro
,实在不知道的就 输入上面这个命令:%appdata%\JetBrains\
② 要注意用户名目录和你的 idea 版本号
- MacOS:
/Users/用户名/Library/Application Support/JetBrains/IntelliJIdea2023.1/plugins/MyBatisCodeHelper-Pro
① 要注意用户名目录和你的 idea 版本号
4、 然后进入到 lib 文件夹,找到 MyBatisCodeHelper-Pro-obfuss.jar
5、将它和刚刚下载的 cfr 的 jar 包拷贝到另一个地方,比如桌面,方便修改:
2.2 开始反编译 jar 包
1、在刚刚两个 jar 包的目录打开终端(Windows是打开cmd,一个意思)
2、输入命令:
java -jar cfr-0.152.jar MyBatisCodeHelper-Pro-obfuss.jar --renamedupmembers true --hideutf false >> result.txt
需要注意 cfr 版本号(如果你跟我下载的不是一个版本,需要更改为指定版本)
过程会比较慢,耐心等待…
执行完毕文件夹中会出现一个 result 的文本文件:
2.3 修改
用一个比较方便的工具打开上面的 result.txt,这里推荐一个工具:notepad++
1、搜索 validTo,找到具有 paidKey、valid、validTo 的类:
非常重要:注意:不同插件版本,这个类的位置会不一样
说明:
- valid 为判断是否在有效期的变量,变量定义为下方的
private Boolean c;
- validTo 为有效时长变量,定义为下方的
private Long a;
package com.ccnode.codegenerator.Y.e
是当前类所在的包,类名为 e,由此可知当前类的绝对定位为com.ccnode.codegenerator.Y.e.e
理解下面这个图片很重要:
所以需要对照自己的版本、自己的变量名称来设置(在哪设置,接着往下看)
2、需要修改哪些东西呢?我们先看看需要修改的东西,然后再进行代码实现:
修改 valid:
(再次提醒:不同的插件版本变量名称也不一样,你要看清楚!)
修改 validTo:
(再次提醒:不同的插件版本变量名称也不一样,你要看清楚!)
3、知道要修改后,就开始代码实现:
① 使用 IDEA 创建一个 Maven 项目(项目是不是空的无所谓,因为只需要引入依赖即可)
② 引入依赖:
<!-- javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.28.0-GA</version>
</dependency>
③ 代码实现:
以下代码需要注意几点:
pool.insertClassPath("MyBatisCodeHelper-Pro-obfuss.jar");
需要填写 MyBatisCodeHelper-Pro-obfuss.jar 在你本机实际的路径!(也就是这个路径:C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins\MyBatisCodeHelper-Pro
)cc.writeFile("C:\\Users\\ASUS\\Desktop\\zfp\\1");
需要填写要输出的路径- 还有就是代码中体现的包名,类名,变量名,都要和上面咱们准备的时候一直,这个一定要注意!!!代码都有注释!注意看!
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
public class App {
public static void main(String[] args) {
try {
ClassPool pool = ClassPool.getDefault();
// 此处改为你实际的的 MyBatisCodeHelper-Pro-obfuss.jar 的路径
pool.insertClassPath("C:\\Users\\ASUS\\AppData\\Roaming\\JetBrains\\IntelliJIdea2021.1\\plugins\\MyBatisCodeHelper-Pro\\lib\\MyBatisCodeHelper-Pro-obfuss.jar");
// 通过绝对定位,加载指定的类
CtClass cc = pool.get("com.ccnode.codegenerator.Y.e.e");
// 获取validTo的get方法
// public Long e()
CtMethod getValidToMethod = cc.getDeclaredMethod("a");
// 获取validTo的set方法的参数:Long
CtClass[] params = new CtClass[]{pool.get("java.lang.Long")};
// 获取validTo的set方法
// public void a(Long l2)
CtMethod setValidToMethod = cc.getDeclaredMethod("a", params);
// 获取valid的set方法的参数:Boolean
CtClass[] params1 = new CtClass[]{pool.get("java.lang.Boolean")};
// 获取Valid的set方法
// public void a(Boolean bl)
CtMethod setValidMethod = cc.getDeclaredMethod("a", params1);
// 获取valid的get方法
// public Boolean b()
CtMethod getValidMethod = cc.getDeclaredMethod("e");
// 修改validTo的get方法
// 直接返回4797976044000
StringBuilder builder = new StringBuilder();
builder.append("{")
.append(" return new Long(4797976044000L);")
.append("}");
getValidToMethod.setBody(builder.toString());
// 修改validTo的set方法
// 直接设为4797976044000
StringBuilder builder1 = new StringBuilder();
builder1.append("{")
.append(" this.a = new Long(4797976044000L);")
.append("}");
setValidToMethod.setBody(builder1.toString());
// 修改valid的set方法
// 设为True
String getValidMethodBuilder = "{" +
" return Boolean.TRUE;" +
"}";
getValidMethod.setBody(getValidMethodBuilder);
// 修改valid的get方法
// 直接返回True
String setValidMethodBuilder = "{" +
"this.c = Boolean.TRUE;" +
"}";
setValidMethod.setBody(setValidMethodBuilder);
// 将修改后的Class b写入指定文件夹
cc.writeFile("C:\\Users\\ASUS\\Desktop\\zfp\\1");
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:再次强调,代码中的 a、e、c 什么什么的,要和自己的一致、一致
4、运行上面的代码后会在你指定的文件夹中生成修改的 e.class:
打开看一下是不是修改成功了:
2.4 替换 class 文件
1、用压缩工具打开刚刚拷贝出来的 MyBatisCodeHelper-Pro-obfuss.jar
2、找到 com.ccnode.codegenerator.Y.e.e
并替换成我们刚刚得到的 class 文件
3、然后关闭压缩工具即可。
4、将我们拷贝出来并修改完的 MyBatisCodeHelper-Pro-obfuss.jar,替换 lib 目录下的 MyBatisCodeHelper-Pro-obfuss.jar
2.5 最后一步:重启 IDEA
重新打开IEDA,然后找到 激活界面, 随便输入点东西,点击激活,如果出现下面的界面,说明成功了:
1、进入激活页面:
2、如图:
如果不小心更新了插件,按照上述步骤重新操作即可。
至此,教程完毕!后续会有更精彩的内容,欢迎留言点赞评论!!!