1. 程式人生 > >MyBatis 源碼分析系列文章合集

MyBatis 源碼分析系列文章合集

aso per 進行 工作經驗 6.4 耗時 jdb 自由 測試

1.簡介

我從七月份開始閱讀MyBatis源碼,並在隨後的40天內陸續更新了7篇文章。起初,我只是打算通過博客的形式進行分享。但在寫作的過程中,發現要分析的代碼太多,以至於文章篇幅特別大。在這7篇文章中,有4篇文章字數超過了1萬,最長的一篇文章約有2.7萬字(含代碼)。考慮到超長文章對讀者不太友好,以及拆分文章工作量也不小等問題。遂決定將博文整理成電子書,方便大家閱讀。

經過兩周緊張的排版,《一本小小的MyBatis源碼分析書》誕生了。本書共7章,約300頁。本書以電子書的形式發布,大家可自由的下載。下載地址如下:

百度網盤:點擊下載

百度文庫:審核中,這裏先放上我的個人主頁

測試代碼:GitHub

下面來看看本書章節的縮略圖。

技術分享圖片

2.目錄

第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源碼分析系列文章列表

3.寫在最後

本書的排版工作耗時兩周,其中40%的時間用在了內容的修改上,另外40%用在了代碼的整理與排版上,最後的20%則是花在了圖片和小修小改上。總的來說,整個過程還是有點辛苦的。當然,在完成排版後,成就感也是滿滿的。經過這次排版,深感寫書不易。所以大家在日常學習過程中,應盡量買正版書予以支持。我在寫MyBatis系列文章中,買了一本書作為參考,這本書是《MyBatis技術內幕》。這本書在我閱讀源碼的過程中,給予了不少的幫助,這裏感謝該書的作者。同時,也向大家推薦這本書。另外,感謝清華出版社的王金柱編輯提供的書籍排版樣例,使得我在排版的過程中可以有所參照。

最後需要說明的是,我個人工作剛滿兩年,不管是技術能力,還是工作經驗,均處於入門水平。同時這也是我寫的第一本電子書,經驗不足。因此對於書中寫的不好的地方,還請大家見諒,同時也希望大家多多指導。

好了,本文到此結束,感謝大家的閱讀。

本文在知識共享許可協議 4.0 下發布,轉載需在明顯位置處註明出處
作者:田小波
本文同步發布在我的個人博客:https://www.tianxiaobo.com

技術分享圖片
本作品采用知識共享署名-非商業性使用-禁止演繹 4.0 國際許可協議進行許可。

MyBatis 源碼分析系列文章合集