概念: 是一款 IDEA 插件,用来快速操作 Mybatis,使用这个插件能使你的开发效率提升数倍,并且在 IDEA 中写 SQL 语句会有提示,等等。
作用:
这个插件可以免费试用,但是激活后,它的功能更加全面。
这里的操作演示,使用的是 Windows 系统,Mac 一样,有区别的位置,我会标志,没有说明就代表通用!
在 IDEA 设置中找到 plugins ,搜索 MyBatisCodeHelper Pro 即可找到:
这里安装方式的话,一般都是最新版本,对后面激活操作不友好,所以这里不建议这么安装(如果不需要激活,请另说!!!)
1、官网:Jetbrains插件市场
2、搜索后,来到下面的页面:然后里面有操作文档、各版本下载链接
1、这里选择的版本为 3.2.4,建议大家也选择这个版本(因为这个版本不新也不旧,后续也好进行激活操作(版本不一致也没关系,后面会讲解)):
2、开始安装:
然后重启 IDEA 即可。
至此,插件的安装就完成了,下面是激活教程,不需要激活的不需要看,但建议大家激活!!!
申明: 激活操作跟版本有关。
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 版本激活为例。
1、前提:先去下载 3.2.4 的版本,并在 IDEA 中进行安装。
2、下载 cfr jar包:百度网盘链接如下:
链接:https://pan.baidu.com/s/1XuNsSGHeuTzWTLJr9PI9nw
提取码:1234
3、找到 第 1 步 中 插件的安装位置,并找到安装的 jar 包:
%appdata%\JetBrains\
找到 idea 安装目录,里面有个 plugins文件夹,然后里面有个文件夹 MyBatisCodeHelper-Pro① 一般 Windows 的位置为:C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins\MyBatisCodeHelper-Pro
,实在不知道的就 输入上面这个命令:%appdata%\JetBrains\
② 要注意用户名目录和你的 idea 版本号
/Users/用户名/Library/Application Support/JetBrains/IntelliJIdea2023.1/plugins/MyBatisCodeHelper-Pro
① 要注意用户名目录和你的 idea 版本号
4、 然后进入到 lib 文件夹,找到 MyBatisCodeHelper-Pro-obfuss.jar
5、将它和刚刚下载的 cfr 的 jar 包拷贝到另一个地方,比如桌面,方便修改:
1、在刚刚两个 jar 包的目录打开终端(Windows是打开cmd,一个意思)
2、输入命令:
java -jar cfr-0.152.jar MyBatisCodeHelper-Pro-obfuss.jar --renamedupmembers true --hideutf false >> result.txt
需要注意 cfr 版本号(如果你跟我下载的不是一个版本,需要更改为指定版本)
过程会比较慢,耐心等待…
执行完毕文件夹中会出现一个 result 的文本文件:
用一个比较方便的工具打开上面的 result.txt,这里推荐一个工具:notepad++
1、搜索 validTo,找到具有 paidKey、valid、validTo 的类:
非常重要:注意:不同插件版本,这个类的位置会不一样
说明:
private Boolean c;
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:
打开看一下是不是修改成功了:
1、用压缩工具打开刚刚拷贝出来的 MyBatisCodeHelper-Pro-obfuss.jar
2、找到 com.ccnode.codegenerator.Y.e.e
并替换成我们刚刚得到的 class 文件
3、然后关闭压缩工具即可。
4、将我们拷贝出来并修改完的 MyBatisCodeHelper-Pro-obfuss.jar,替换 lib 目录下的 MyBatisCodeHelper-Pro-obfuss.jar
重新打开IEDA,然后找到 激活界面, 随便输入点东西,点击激活,如果出现下面的界面,说明成功了:
1、进入激活页面:
2、如图:
如果不小心更新了插件,按照上述步骤重新操作即可。
至此,教程完毕!后续会有更精彩的内容,欢迎留言点赞评论!!!