mybatis源碼閱讀:mybatis3

最近在網上看了mybatis的源碼直播,記錄、複習一下當時的內容!!

 

閱讀源碼需要從三個方向來剖析:

1.宏觀:分析這個框架具備哪些功能

2.微觀:閱讀源碼

3.圖解:根據源碼畫出UML圖

 

閱讀源碼的方式:

1.跟着代碼debug進入源碼

2.帶着問題來看源碼

 

前期準備

1.引入包

2.準備配置文件

3.配置解析demo

4.業務查詢demo

 

=====================================================================

1.mybatis解析配置是怎樣的流程

=====================================================================

假如前期準備完成,現在執行mybatis的demo,第二步是爲了拿到文件流,我們直接看第三步並進入mybatis源碼

其中new XMLConfigBuilder(reader, environment, properties)只是爲了解析xml文件的,
拿到這個對象後,在parser.parse()進行解析XML中的內容

這段代碼就是去解析了xml配置的內容,並最終存儲在configuration類中

:這裏沒有詳細說,具體看源碼,configuration在XMLConfigBuilder類中

解析完數據源等配置後,返回build處,繼續看代碼

到此,mybatis已經擁有了所有的配置信息【db , sql】

 

=====================================================================

2.mybait執行(XML)業務查詢的流程是怎樣

=====================================================================

當sqlSessionFactory對象初始化完成後,我們需要從它的openSession方法獲取到sqlSession對象:

configuration中的ExecutorType默認是simple

這裏面也是初始化一些內容,這些後面再詳細探討,並在最後返回了DefaultSqlSession(sqlSession)對象

繼續往下看這個查詢,查看session.selectOne的執行流程

這個是抽象方法,需要子類實現,也就是SimpleExecutor

getFirstResultSet(stmt)的源碼如下

 

 

=====================================================================

2.mybait是怎樣解析

=====================================================================

 

 

 

 

 

持續更新中...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章