Mybatis作為一個優秀的Java持久化框架,在我們的日常工作中相信都會用到,本次源碼解析系列,就開始探索下Mybatis
在MyBatis的學習中,首先通讀了《MyBatis3源碼深度解析》一遍,然后抱著如何去寫一個基本功能的MyBatis框架的想法,又讀了2-3遍
心中有了大致的想法,然后再去通過MyBatis的示例去走一遍源碼,注重關注了一些在寫Demo中可能會遇到的細節點
jdk源碼剖析手冊?后面花了兩三天的時間,把基本功能的框架Dome給寫了出來,各個感覺還是可以的,達到了自己預期的目標
下面再總結下MyBatis的學習:
下面一個圖,來源于:《MyBatis3源碼深度解析》基本涵蓋了MyBatis的核心:
云解析源碼、最右側的是全局配置 Configuration:這里負責前期Mapper的解析和TypeHandler注冊相關的,在初始化階段,把在后期SQL查詢前的參數解析和結果轉換時需要用到的東西先存下來,便于后面獲取用于處理
左側是MyBatis的核心類:
感覺核心邏輯主線就是這些了,自己在Demo中除了ParameterHandler沒有進行實現,其他基本都有體現
當然,讀代碼時候發現,細節還是挺多的,還有很多的地方沒有仔細去研究,目前就簡單看了下,有個印象,方便如果以后遇到問題,也能去定位后,結合問題場景仔細研究
react源碼解析、在研究的過程中發現這些數據庫的相關的框架,基本都是基于JDBC規范的Statement等去做文章的,比如MyBatis可以結合HikariCP,再結合Shardingsphere,感覺挺有意思,自己之前寫過一篇基于這三者做多數據源的文章:ShardingSphere JDBC 分庫實現多數據庫源。寫完還有點懵,現在就知道哪些Bean定義的相關原理和作用,做到了心中有數
本系列有源碼解析部分和Demo實現部分,涉及到的范圍就是上面的核心邏輯主線部分,還有如動態SQL(這個在日常開發中經常使用)之類沒有去探索,但大致原理看書了解一些,留待以后有空再研究
完整的工程已放到GitHub上:https://github.com/lw1243925457/MybatisDemo/tree/master/
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态