我從七月份開始閱讀MyBatis源碼,并在随後的40天内陸續更新了7篇文章。起初,我隻是打算通過部落格的形式進行分享。但在寫作的過程中,發現要分析的代碼太多,以至于文章篇幅特别大。在這7篇文章中,有4篇文章字數超過了1萬,最長的一篇文章約有2.7萬字(含代碼)。考慮到超長文章對讀者不太友好,以及拆分文章工作量也不小等問題。遂決定将博文整理成電子書,友善大家閱讀。
經過兩周緊張的排版,《一本小小的MyBatis源碼分析書》誕生了。本書共7章,約300頁。本書以電子書的形式釋出,大家可自由的下載下傳。下載下傳位址如下:
百度網盤:點選下載下傳
百度文庫:稽核中,這裡先放上我的個人首頁
CSDN: 點選下載下傳
測試代碼:GitHub
下面來看看本書章節的縮略圖。

第1章 MyBatis入門
1.1 MyBatis是什麼
1.2 為什麼要使用MyBatis
1.2.1 使用MyBatis通路資料庫
1.2.2 使用JDBC通路資料庫
1.2.3 使用SpringJDBC通路資料庫
1.2.4 使用Hibernate通路資料庫
1.3如何使用MyBatis
1.3.1 單獨使用MyBatis
1.3.2 在Spring中使用MyBatis
1.4 本章小結
第2章 配置檔案解析過程
2.1 配置檔案解析過程分析
2.1.1 解析節點
2.1.2 解析節點
2.1.3 設定内容到Configuration中
2.1.4 解析節點
2.1.5 解析節點
2.1.6 解析節點
2.1.7 解析節點
2.2 本章小結
第3章 映射檔案解析過程
3.1 映射檔案解析解析入口
3.2 解析映射檔案
3.2.1 解析節點
3.2.2 解析節點
3.2.3 解析節點
3.2.4 解析節點
3.2.5 解析SQL語句節點
3.3 Mapper接口綁定過程分析
3.4 處理未完成解析的節點
3.5 本章小結
第4章 SQL執行流程
4.1 SQL執行入口
4.1.1 為Mapper接口建立代理對象
4.1.2 執行代理邏輯
4.2 查詢語句的執行過程
4.2.1 selectOne方法分析
4.2.2 擷取BoundSql
4.2.3 建立StatementHandler
4.2.4 設定運作時參數到SQL中
4.2.5 #{}占位符的解析與參數的設定過程梳理
4.2.6 處理查詢結果
4.3 更新語句的執行過程
4.3.1 更新語句執行過程全貌
4.3.2 KeyGenerator
4.3.3 處理更新結果
4.4 SQL執行過程總結
4.5 本章小結
第5章 内置資料源
5.1 内置資料源初始化過程
5.2 UnpooledDataSource
5.2.1 初始化資料庫驅動
5.2.2 擷取資料庫連接配接
5.3 PooledDataSource
5.3.1 輔助類介紹
5.3.2 擷取連接配接
5.3.3 回收連接配接
5.4 本章小結
第6章 緩存機制
6.1 緩存類介紹
6.1.1 PerpetualCache
6.1.2 LruCache
6.1.3 BlockingCache
6.2 CacheKey
6.3 一級緩存
6.4 二級緩存
6.5 本章小結
第7章 插件機制
7.1 插件機制原理
7.1.1 植入插件邏輯
7.1.2 執行插件邏輯
7.2 實作一個分頁插件
7.3 本章小結
附錄 MyBatis源碼分析系列文章清單
本書的排版工作耗時兩周,其中40%的時間用在了内容的修改上,另外40%用在了代碼的整理與排版上,最後的20%則是花在了圖檔和小修小改上。總的來說,整個過程還是有點辛苦的。當然,在完成排版後,成就感也是滿滿的。經過這次排版,深感寫書不易。是以大家在日常學習過程中,應盡量買正版書予以支援。我在寫MyBatis系列文章中,買了一本書作為參考,這本書是《MyBatis技術内幕》。這本書在我閱讀源碼的過程中,給予了不少的幫助,這裡感謝該書的作者。同時,也向大家推薦這本書。另外,感謝清華出版社的王金柱編輯提供的書籍排版樣例,使得我在排版的過程中可以有所參照。
最後需要說明的是,我個人工作剛滿兩年,不管是技術能力,還是工作經驗,均處于入門水準。同時這也是我寫的第一本電子書,經驗不足。是以對于書中寫的不好的地方,還請大家見諒,同時也希望大家多多指導。
好了,本文到此結束,感謝大家的閱讀。
本文在知識共享許可協定 4.0 下釋出,轉載需在明顯位置處注明出處 作者:田小波 本文同步釋出在我的個人部落格:http://www.tianxiaobo.com
本作品采用知識共享署名-非商業性使用-禁止演繹 4.0 國際許可協定進行許可。