Mybatis源碼正確打開方式


精心挑選要閱讀的源碼項目;

飲水思源——官方文檔,先看文檔再看源碼;

下載源碼,安裝到本地,保證能編譯運行;

從宏觀到微觀,從整體到細節;

找到入口,抓主放次,梳理核心流程;

源碼調試,找到核心數據結構和關鍵類;

勤練習,多折騰;

 

MyBatis 源碼下載地址:https://github.com/mybatis/mybatis-3

整體架構

 

 

mabatis源碼思維導圖

                                                                                                                                                                      

 

  

                                                                                       

 

mybatis三大核心流程:

 

 mybatis初始化:

 

 

 

 

 

 進入光標選中的propertiesElement方法內發現,mybatis初始化的時候會把配置文件內的信息放入configuration對象對應的屬性內:

 

 

 

 

 

 

 

 

 

 至此mybatis初始化工作完成,配置文件的所有信息都被加載到了sqlSessionFactory中的configration對象內。

 

 

 

 

 

 

mybatis代理階段:

 

 

根據sql的類型update,insert,select,delete 縮小查找范圍,然后根據sql的返回類型map?list?就可唯一確定一個sqlsession執行方法

mybatis mapper接口並沒有實現類,運行中如何判調用的具體方法,執行指定的sql語句???

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]SqlSession查詢接口嵌套關系

 

數據庫讀寫階段:

遵循jdbc的規范,先上一段jdbc代碼拋磚引玉:

 

 Executor的三個重要組件

StatementHandler:它的作用是使用數據庫的Statement或PrepareStatement執行操作,啟承上啟下作用;

ParameterHandler:對預編譯的SQL語句進行參數設置

ResultSetHandler:對數據庫返回的結果集(ResultSet)進行封裝,返回用戶指定的實體類型;

 

接着上一段源碼,進入selelectList()方法。

 

 

ParameterHandler 組件已經飢渴難耐了。

 

 

 

 

 

 Excutor黑幕如下

 

 

最后再看Mybatsi官方文檔的介紹,是否有豁然開朗的感覺呢?

什么是 MyBatis ?

MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。

MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM