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

最近学的比较杂,以至于我写这篇博客的时候,一时不知该从何说起,我想我应该从她说起,她是谁,我后端路上的助力手---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的集成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,054评论 6 342
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,669评论 2 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,297评论 25 709
  • 宗小宝小朋友,昨天外婆问起我最近写了什么关于你的日记,因为一直有点懒到现在你都32周了才决定继续写点什么。...
    帅气伱伱阅读 3,192评论 0 2
  • 肚子里装着一个小小的你,身边坐着亲密的他,心安。 算算怀孕已经六个多月了。 圣诞节快来临的时候,宝宝就要来到,是欢...
    丽丽安_Lilian阅读 2,271评论 0 0