筆者第一次接觸跟MyBatis框架是在2009年未的時(shí)候。不過(guò)那個(gè)時(shí)候的他并不叫MyBatis,而是叫IBatis。2010年的時(shí)候改為現(xiàn)在的名字——MyBatis。這幾年過(guò)去了,對(duì)于筆者來(lái)講有一點(diǎn)陌生了。而且那個(gè)時(shí)候他也沒(méi)有這么出名。hibernate占了大部分市場(chǎng)。雖然筆者早年的時(shí)候查看過(guò)他的源碼,但是并沒(méi)有很深入去理解他。主要的原因是因?yàn)楫?dāng)時(shí)我還在看hibernate的源碼。太累了所以就沒(méi)有去認(rèn)真的理解?,F(xiàn)在筆者想要重新在來(lái)看一篇關(guān)于他的源碼并加強(qiáng)對(duì)他的理解。也是對(duì)自己過(guò)程的一種回歸吧。
想要查看源碼就要先了解他的一些概念。否則云里來(lái)霧里去的什么也不懂。有很多朋友會(huì)選擇去圖書(shū)管買(mǎi)一些書(shū)來(lái)查看。當(dāng)然這是可取的。那么如果不想的話,就可以去官網(wǎng)查看他們的介紹了——MyBatis網(wǎng)站。筆者也會(huì)按照官網(wǎng)上面的介紹來(lái)進(jìn)行源碼上的查看。
ORM思想的傳播述造了很多ORM框架。事實(shí)上筆者也想把MyBatis定義為ORM框架。但是開(kāi)發(fā)的過(guò)程中筆者感覺(jué)最多的是他在管理SQL語(yǔ)句。雖然在最后的結(jié)果會(huì)應(yīng)射出對(duì)應(yīng)的實(shí)體對(duì)象??墒沁€是我覺(jué)得MyBatis的管理SQL語(yǔ)句才是這個(gè)框架的核心。官網(wǎng)的介紹劃分為四塊來(lái)介紹MyBatis——XML配置、XML映射文件、動(dòng)態(tài)SQL、日志。對(duì)于開(kāi)發(fā)人員來(lái)講主要看完這四塊就可以了。當(dāng)然關(guān)于什么是ORM的話,這個(gè)筆者就不在做什么相關(guān)的解釋。網(wǎng)絡(luò)上也有一片的資料足夠你學(xué)習(xí)的。
學(xué)習(xí)環(huán)境
MyBatis源碼:mybatis-3-mybatis-3.4.1.
數(shù)據(jù)庫(kù):SQL SERVER 2008
開(kāi)發(fā)工具:Ecilpse,Maven
Java:1.8
開(kāi)發(fā)環(huán)境
官網(wǎng)上也有寫(xiě)一個(gè)篇關(guān)于入門(mén)的文章。 只是講的可能簡(jiǎn)單了一點(diǎn)。但是這并不是沒(méi)有任何作用。筆者用的是Maven來(lái)引入MyBatis的源碼的。雖然他有自帶的測(cè)試代碼,不過(guò)筆者還是希望讀者們能自己在新建一個(gè)項(xiàng)目來(lái)學(xué)習(xí)。這樣子方便自己動(dòng)手做一些測(cè)試來(lái)加深映像。雖然可以用Maven來(lái)構(gòu)建JAR。但是筆者沒(méi)有這樣子做。而是新建的項(xiàng)目里面引用MyBatis的源碼。相信大家對(duì)Ecilpse里面的Build Path的Projects選擇卡并不陌生。這樣子方便查看源碼,而不是在從JAR包中關(guān)聯(lián)對(duì)應(yīng)的源碼。
上面的圖片便是筆者導(dǎo)入之后項(xiàng)目源碼。事實(shí)對(duì)我們學(xué)習(xí)最快最有用的應(yīng)該是test這個(gè)部分的例子。你完全可以從例子中找到你不知道如何使用的功能點(diǎn)。
有了上面的源碼,當(dāng)然筆者也會(huì)簡(jiǎn)單的測(cè)試一下這個(gè)源碼有沒(méi)有錯(cuò),能不能用。如下代碼
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26