一、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. 为什么激活
这个插件可以免费试用,但是激活后,它的功能更加全面。
二、插件的下载方式
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包:百度网盘链接如下:
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、如图:
如果不小心更新了插件,按照上述步骤重新操作即可。
发表评论