美文网首页mybatis程序员
mybatis杂记(2016-3-21更新)

mybatis杂记(2016-3-21更新)

作者: jarvan4dev | 来源:发表于2016-03-17 23:56 被阅读770次

最近学的比较杂,以至于我写这篇博客的时候,一时不知该从何说起,我想我应该从她说起,她是谁,我后端路上的助力手---IDEA ,刚开始接触idea应该是15年初,学学Android就用了AS,基于IDEA的一款工具,后来后端路上任务重了,就暂时放开了Android。再次接触IDEA是15年11月份的时候,离开了用了2年多的Eclipse,上手很快,界面很细腻,一个字:棒。
在ZHB大半年,来的时候项目已经骨架已经搭建完了,一直做的都是在项目的基础上修修改改,反正我也不具备搭架构的能力,一直到PHP吉吉大神问我一些mybatis的问题,mybatis才又重新回到我的视野。

重新来弄mybatis,算是复习吧,首先创建配置文件,写着写着就想到了eclipse上有一个mybatis的插件,主要是用来代码提示和构建配置文件骨架的。IDEA上应该也有一个插件,就去搜了一下,


QQ20160317-0@2x.png

没想到这家伙竟然从2.4版本开始收费了,无奈,只能破解了。【官网

步骤
  • 1、在IDEA中安装插件
  • 2、使用javassist修改idea mybatis插件
    a. 下载javassist.jar
    b. 将mybatis_plus.jar复制到某一工作目录下, 同时也将(a)中下载的javassist.jar放到该目录下
cp ~/Library/Application Support/IntelliJIdea2016.1/mybatis_plus/lib/mybatis_plus.jar ~/Docment/

c. 反编译查看源码:使用 【JD-GUI】打开 mybatis_plus.jar,查看源码

1.png 2.png

d. 使用javassist修改字节码,新建MyCrack.java

cd ~/Document/
vim MyCrack.java
#将以下内容复制到MyCrack.java中
import javassist.*;
public class MyCrack {
    public static void main(String[] args) throws Exception {
        ClassPool pool = ClassPool.getDefault();
        CtClass c = pool.get("com.seventh7.mybatis.util.JavaUtils");
        CtMethod m = c.getDeclaredMethod("refValid");
        m.setBody("{ validated = true; valid = true; return valid; }");
        c.writeFile();
        CtClass cc = pool.get("com.seventh7.mybatis.service.JavaService");
        CtMethod mm = cc.getDeclaredMethod("stop");
        mm.setBody("{ return; }");
        cc.writeFile();
    }
}

e. 编译运行MyCrack.java

javac -classpath ".:javassist-3.20.0-GA.jar:mybatis_plus.jar" MyCrack.java
java -classpath ".:javassist-3.20.0-GA.jar:mybatis_plus.jar" MyCrack

此时会在当前目录下生成修改过的两个类文件

com/seventh7/mybatis/service/JavaService.class
com/seventh7/mybatis/util/JavaUtils.class

f. 替换class文件

# 解压jar包,-d 表示指定目录
unzip mybatis_plus.jar -d ./test 
# cp步骤f中产生的class文件到解压后的相应目录下
#打包成jar
jar cvfm mybatis_plus.jar test/META-INF/MANIFEST.MF -C test/ .
#上面命令表示将test目录下的所有文件都打成jar包,MANIFEST.MF表示清单文件
  • 3、替换:
cd ~/Library/Application Support/IntelliJIdea2016.1/mybatis_plus/
# 可以先见目录下的lib文件夹压缩备份,免得不成功,又得卸载重新安装
tar cvf lib.tar.gz lib/
# 复制2中生成的mybatis_plus.jar到mybatis插件的安装目录cp ~/Document/mybatis_plus.jar ~/Library/Application Support/IntelliJIdea15/mybatis_plus/lib/
#重启IDEA即可,windows用户用法类似

附件(编译好的jar包)

以上即为破解,第二篇将讲讲插件的使用,特别是使用插件生成mapper文件和接口。
第三篇进入正题,讲讲mybatis的单独使用及其与Spring的集成。

相关文章

网友评论

  • starlin:MyCrack.java:1: 软件包 javassist 不存在
    都在同一个目录 这什么情况
    jarvan4dev:@starlin 把它们俩放到同一个目录下就可以了啊
  • 83cda13ed25f:破解后,出现idea闪退问题
    jarvan4dev:@fadying 的确有这么个情况,但我的是推出前提示,现在好像出了一个免费版的
  • c5d77f06404e:最近也在整理这个
    jarvan4dev: @立秋的黄叶 那就写出来吧,大家交流一下

本文标题:mybatis杂记(2016-3-21更新)

本文链接:https://www.haomeiwen.com/subject/rkdclttx.html