mybatis雜記(2016-3-21更新)

最近學(xué)的比較雜,以至于我寫這篇博客的時候,一時不知該從何說起,我想我應(yīng)該從她說起,她是誰,我后端路上的助力手---IDEA ,剛開始接觸idea應(yīng)該是15年初,學(xué)學(xué)Android就用了AS,基于IDEA的一款工具,后來后端路上任務(wù)重了,就暫時放開了Android。再次接觸IDEA是15年11月份的時候,離開了用了2年多的Eclipse,上手很快,界面很細(xì)膩,一個字:棒。
在ZHB大半年,來的時候項(xiàng)目已經(jīng)骨架已經(jīng)搭建完了,一直做的都是在項(xiàng)目的基礎(chǔ)上修修改改,反正我也不具備搭架構(gòu)的能力,一直到PHP吉吉大神問我一些mybatis的問題,mybatis才又重新回到我的視野。

重新來弄mybatis,算是復(fù)習(xí)吧,首先創(chuàng)建配置文件,寫著寫著就想到了eclipse上有一個mybatis的插件,主要是用來代碼提示和構(gòu)建配置文件骨架的。IDEA上應(yīng)該也有一個插件,就去搜了一下,


QQ20160317-0@2x.png

沒想到這家伙竟然從2.4版本開始收費(fèi)了,無奈,只能破解了。【官網(wǎng)

步驟
  • 1、在IDEA中安裝插件
  • 2、使用javassist修改idea mybatis插件
    a. 下載javassist.jar
    b. 將mybatis_plus.jar復(fù)制到某一工作目錄下, 同時也將(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修改字節(jié)碼,新建MyCrack.java

cd ~/Document/
vim MyCrack.java
#將以下內(nèi)容復(fù)制到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. 編譯運(yùn)行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

此時會在當(dāng)前目錄下生成修改過的兩個類文件

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

f. 替換class文件

# 解壓jar包,-d 表示指定目錄
unzip mybatis_plus.jar -d ./test 
# cp步驟f中產(chǎn)生的class文件到解壓后的相應(yīng)目錄下
#打包成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/
# 復(fù)制2中生成的mybatis_plus.jar到mybatis插件的安裝目錄cp ~/Document/mybatis_plus.jar ~/Library/Application Support/IntelliJIdea15/mybatis_plus/lib/
#重啟IDEA即可,windows用戶用法類似

附件(編譯好的jar包)

以上即為破解,第二篇將講講插件的使用,特別是使用插件生成mapper文件和接口。
第三篇進(jìn)入正題,講講mybatis的單獨(dú)使用及其與Spring的集成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,941評論 6 342
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,492評論 2 45
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,115評論 25 708
  • 宗小寶小朋友,昨天外婆問起我最近寫了什么關(guān)于你的日記,因?yàn)橐恢庇悬c(diǎn)懶到現(xiàn)在你都32周了才決定繼續(xù)寫點(diǎn)什么。...
    帥氣伱伱閱讀 449評論 0 2
  • 肚子里裝著一個小小的你,身邊坐著親密的他,心安。 算算懷孕已經(jīng)六個多月了。 圣誕節(jié)快來臨的時候,寶寶就要來到,是歡...
    麗麗安_Lilian閱讀 294評論 0 0