最近在網上看了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是怎樣解析
=====================================================================
持續更新中...