Mybatis 1.原理流程圖
僅用來做個人筆記記錄。
總流程:
- 根據配置文件(全局配置文件和sql映射文件)初始化configuration對象。
- 創建一個defaultSqlSession對象,包含Configuration及Executor(根據全局配置文件中defaultExecutorType創建對應的Executor)
-
DefaultSqlSession.getMapper拿到Mapper接口對應的MapperProxy
-
MapperProxy里有DefaultSqlSession
- 執行增刪改查
1、調用DefaultSqlSession增刪改查
2、創建StatementHandler
(同時創建ParameterHandler,ResultSetHandler)
3、調用StatementHandler預編譯參數以及設置參數值
使用ParameterHandler給sql設置參數
4、調用StatementHandler增刪改查
5、ResultSetHandler封裝結果

mybatis 四大對象:
executor、parameterHandler、ResultSetHandler、StatementHandler


步驟詳解:
- 獲取SqlSession:
解析文件的信息保存到Configuration中,返回Configuraation的DefaultSqlSession對象;【mappedStatement】代表一個增刪改查的詳細信息![]()
無論是我們自定義的還是第三方預先定義的,只要是我們使用的每條sql語句都會生成一個mappedStatements
-
獲取SqlSession
![]()
- 獲取接口代理對象MapperProxy
![]()
- 執行增刪改查
![]()
從ms(mappedStatements)中獲取Configuration。StatementHandler 與編譯參數以及設置參數值。簡單說就是生成要執行的sql語句。![]()
設置參數,執行sql語句。
execute點進去后執行的方法。把替代的參數打印出來。根據方式,執行jdbc的增刪改查(設計到數據庫連接池)。
再往后對查詢到的結果進行映射 resultSetHandler.handleCursorResultSets(ps)。![]()






浙公網安備 33010602011771號