摘要:簡(jiǎn)介我從七月份開(kāi)始閱讀源碼,并在隨后的天內(nèi)陸續(xù)更新了篇文章??紤]到超長(zhǎng)文章對(duì)讀者不太友好,以及拆分文章工作量也不小等問(wèn)題。經(jīng)過(guò)兩周緊張的排版,一本小小的源碼分析書(shū)誕生了。我在寫(xiě)系列文章中,買(mǎi)了一本書(shū)作為參考,這本書(shū)是技術(shù)內(nèi)幕。
1.簡(jiǎn)介
我從七月份開(kāi)始閱讀MyBatis源碼,并在隨后的40天內(nèi)陸續(xù)更新了7篇文章。起初,我只是打算通過(guò)博客的形式進(jìn)行分享。但在寫(xiě)作的過(guò)程中,發(fā)現(xiàn)要分析的代碼太多,以至于文章篇幅特別大。在這7篇文章中,有4篇文章字?jǐn)?shù)超過(guò)了1萬(wàn),最長(zhǎng)的一篇文章約有2.7萬(wàn)字(含代碼)??紤]到超長(zhǎng)文章對(duì)讀者不太友好,以及拆分文章工作量也不小等問(wèn)題。遂決定將博文整理成電子書(shū),方便大家閱讀。
經(jīng)過(guò)兩周緊張的排版,《一本小小的MyBatis源碼分析書(shū)》誕生了。本書(shū)共7章,約300頁(yè)。本書(shū)以電子書(shū)的形式發(fā)布,大家可自由的下載。下載地址如下:
百度網(wǎng)盤(pán):點(diǎn)擊下載
百度文庫(kù):審核中,這里先放上我的個(gè)人主頁(yè)
CSDN: 點(diǎn)擊下載
測(cè)試代碼:GitHub
下面來(lái)看看本書(shū)的縮略圖。
2.目錄第1章 MyBatis入門(mén)
???????? 1.1 MyBatis是什么
???????? 1.2 為什么要使用MyBatis
???????? ???????? 1.2.1 使用MyBatis訪問(wèn)數(shù)據(jù)庫(kù)
???????? ???????? 1.2.2 使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)
???????? ???????? 1.2.3 使用SpringJDBC訪問(wèn)數(shù)據(jù)庫(kù)
???????? ???????? 1.2.4 使用Hibernate訪問(wèn)數(shù)據(jù)庫(kù)
???????? 1.3如何使用MyBatis
???????? ???????? 1.3.1 多帶帶使用MyBatis
???????? ???????? 1.3.2 在Spring中使用MyBatis
???????? 1.4 本章小結(jié)
第2章 配置文件解析過(guò)程
???????? 2.1 配置文件解析過(guò)程分析
???????? ???????? 2.1.1 解析節(jié)點(diǎn)
???????? ???????? 2.1.2 解析節(jié)點(diǎn)
???????? ???????? 2.1.3 設(shè)置內(nèi)容到Configuration中
???????? ???????? 2.1.4 解析節(jié)點(diǎn)
???????? ???????? 2.1.5 解析節(jié)點(diǎn)
???????? ???????? 2.1.6 解析節(jié)點(diǎn)
???????? ???????? 2.1.7 解析節(jié)點(diǎn)
???????? 2.2 本章小結(jié)
第3章 映射文件解析過(guò)程
???????? 3.1 映射文件解析解析入口
???????? 3.2 解析映射文件
???????? ???????? 3.2.1 解析節(jié)點(diǎn)
???????? ???????? 3.2.2 解析節(jié)點(diǎn)
???????? ???????? 3.2.3 解析節(jié)點(diǎn)
???????? ???????? 3.2.4 解析節(jié)點(diǎn)
???????? ???????? 3.2.5 解析SQL語(yǔ)句節(jié)點(diǎn)
???????? 3.3 Mapper接口綁定過(guò)程分析
???????? 3.4 處理未完成解析的節(jié)點(diǎn)
???????? 3.5 本章小結(jié)
第4章 SQL執(zhí)行流程
???????? 4.1 SQL執(zhí)行入口
???????? ???????? 4.1.1 為Mapper接口創(chuàng)建代理對(duì)象
???????? ???????? 4.1.2 執(zhí)行代理邏輯
???????? 4.2 查詢(xún)語(yǔ)句的執(zhí)行過(guò)程
???????? ???????? 4.2.1 selectOne方法分析
???????? ???????? 4.2.2 獲取BoundSql
???????? ???????? 4.2.3 創(chuàng)建StatementHandler
???????? ???????? 4.2.4 設(shè)置運(yùn)行時(shí)參數(shù)到SQL中
???????? ???????? 4.2.5 #{}占位符的解析與參數(shù)的設(shè)置過(guò)程梳理
???????? ???????? 4.2.6 處理查詢(xún)結(jié)果
???????? 4.3 更新語(yǔ)句的執(zhí)行過(guò)程
???????? ???????? 4.3.1 更新語(yǔ)句執(zhí)行過(guò)程全貌
???????? ???????? 4.3.2 KeyGenerator
???????? ???????? 4.3.3 處理更新結(jié)果
???????? 4.4 SQL執(zhí)行過(guò)程總結(jié)
???????? 4.5 本章小結(jié)
第5章 內(nèi)置數(shù)據(jù)源
???????? 5.1 內(nèi)置數(shù)據(jù)源初始化過(guò)程
???????? 5.2 UnpooledDataSource
???????? ???????? 5.2.1 初始化數(shù)據(jù)庫(kù)驅(qū)動(dòng)
???????? ???????? 5.2.2 獲取數(shù)據(jù)庫(kù)連接
???????? 5.3 PooledDataSource
???????? ???????? 5.3.1 輔助類(lèi)介紹
???????? ???????? 5.3.2 獲取連接
???????? ???????? 5.3.3 回收連接
???????? 5.4 本章小結(jié)
第6章 緩存機(jī)制
???????? 6.1 緩存類(lèi)介紹
???????? ???????? 6.1.1 PerpetualCache
???????? ???????? 6.1.2 LruCache
???????? ???????? 6.1.3 BlockingCache
???????? 6.2 CacheKey
???????? 6.3 一級(jí)緩存
???????? 6.4 二級(jí)緩存
???????? 6.5 本章小結(jié)
第7章 插件機(jī)制
???????? 7.1 插件機(jī)制原理
???????? ???????? 7.1.1 植入插件邏輯
???????? ???????? 7.1.2 執(zhí)行插件邏輯
???????? 7.2 實(shí)現(xiàn)一個(gè)分頁(yè)插件
???????? 7.3 本章小結(jié)
附錄 MyBatis源碼分析系列文章列表
3.寫(xiě)在最后本書(shū)的排版工作耗時(shí)兩周,其中40%的時(shí)間用在了內(nèi)容的修改上,另外40%用在了代碼的整理與排版上,最后的20%則是花在了圖片和小修小改上??偟膩?lái)說(shuō),整個(gè)過(guò)程還是有點(diǎn)辛苦的。當(dāng)然,在完成排版后,成就感也是滿(mǎn)滿(mǎn)的。經(jīng)過(guò)這次排版,深感寫(xiě)書(shū)不易。所以大家在日常學(xué)習(xí)過(guò)程中,應(yīng)盡量買(mǎi)正版書(shū)予以支持。我在寫(xiě)MyBatis系列文章中,買(mǎi)了一本書(shū)作為參考,這本書(shū)是《MyBatis技術(shù)內(nèi)幕》。這本書(shū)在我閱讀源碼的過(guò)程中,給予了不少的幫助,這里感謝該書(shū)的作者。同時(shí),也向大家推薦這本書(shū)。另外,感謝清華出版社的王金柱編輯提供的書(shū)籍排版樣例,使得我在排版的過(guò)程中可以有所參照。
最后需要說(shuō)明的是,我個(gè)人工作剛滿(mǎn)兩年,不管是技術(shù)能力,還是工作經(jīng)驗(yàn),均處于入門(mén)水平。同時(shí)這也是我寫(xiě)的第一本電子書(shū),經(jīng)驗(yàn)不足。因此對(duì)于書(shū)中寫(xiě)的不好的地方,還請(qǐng)大家見(jiàn)諒,同時(shí)也希望大家多多指導(dǎo)。
好了,本文到此結(jié)束,感謝大家的閱讀。
本文在知識(shí)共享許可協(xié)議 4.0 下發(fā)布,轉(zhuǎn)載需在明顯位置處注明出處
作者:田小波
本文同步發(fā)布在我的個(gè)人博客:http://www.tianxiaobo.com
本作品采用知識(shí)共享署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際許可協(xié)議進(jìn)行許可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77061.html
摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...
摘要:慢慢地,關(guān)于的原創(chuàng)學(xué)習(xí)文章已經(jīng)寫(xiě)了多篇了會(huì)一直放出來(lái),目前篇,因此做一個(gè)合集,獻(xiàn)給那些對(duì)新版本腳手架使用和背后設(shè)計(jì)感興趣的同學(xué),都是一步一步去看源碼,也給官方提了幾次,合進(jìn)去了幾個(gè)原創(chuàng)不易,歡迎大家互相轉(zhuǎn)發(fā),期望大家一起快速過(guò)度到版本目錄 慢慢地,關(guān)于 Vue CLI 3 的原創(chuàng)學(xué)習(xí)文章已經(jīng)寫(xiě)了 20 多篇了(會(huì)一直放出來(lái),目前 23 篇), 因此做一個(gè)合集,獻(xiàn)給那些對(duì)新版本腳手架使用...
摘要:本文速覽本篇文章是我為接下來(lái)的源碼分析系列文章寫(xiě)的一個(gè)導(dǎo)讀文章。年該項(xiàng)目從基金會(huì)遷出,并改名為。同期,停止維護(hù)。符號(hào)所在的行則是表示的執(zhí)行結(jié)果。同時(shí),使用無(wú)需處理受檢異常,比如。另外,把寫(xiě)在配置文件中,進(jìn)行集中管理,利于維護(hù)。 1.本文速覽 本篇文章是我為接下來(lái)的 MyBatis 源碼分析系列文章寫(xiě)的一個(gè)導(dǎo)讀文章。本篇文章從 MyBatis 是什么(what),為什么要使用(why),...
摘要:從使用到原理學(xué)習(xí)線程池關(guān)于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實(shí)現(xiàn)在軟件開(kāi)發(fā)中,分散于應(yīng)用中多出的功能被稱(chēng)為橫切關(guān)注點(diǎn)如事務(wù)安全緩存等。 Java 程序媛手把手教你設(shè)計(jì)模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風(fēng)雨慢慢變老,回首走過(guò)的點(diǎn)點(diǎn)滴滴,依然清楚的記得當(dāng)初愛(ài)情萌芽的模樣…… Java 進(jìn)階面試問(wèn)題列表 -...
閱讀 1023·2021-11-25 09:43
閱讀 1682·2019-08-30 13:59
閱讀 1620·2019-08-30 11:22
閱讀 2141·2019-08-30 11:06
閱讀 1312·2019-08-28 17:51
閱讀 3746·2019-08-26 12:12
閱讀 792·2019-08-26 12:11
閱讀 459·2019-08-26 12:10