運行過程中涉及到的類或接口
1 Resources( C )
用於加載 MyBatis 核心配置文件
2 XMLConfigBuilder( C )
用於解析 xml 文件(核心配置文件)
3 Configuration( C )
用於存放 xml 文件解析後的結果
4 DefaultSqlSessionFactory( C )
是 SqlSessionFactory(I)的 實 現 類 , 創 建 時 需 要 使 用Configuration 對象
5 SqlSession(I)
是 MyBatis 操作的核心
6 DefaultSqlSession©
是 SqlSession 接口的實現類
7 TransactionFactory(I)
用於生產 Transaction 對象
8 Transaction(I)
用於表示操作數據庫的事務對象
9 Executor(I)
是 MyBatis 的核心執行器, 類似於 jdbc 中的 Statement, 常用的實現類是 SimpleExecutor
思維導圖:
(I)爲接口,(c)爲java 類
文字描述
當 MyBatis 運行開始時, 先要通過 Resources 加載核心配置文件, 之後使用 XMLConfigBuilder 對配置文件進行解析, 將解析結果封裝爲 Configuration 對象, 接着, 使用Configuration對象構建一個DefaultSqlSessionFactory對象, 至此, SqlSession 工廠構建完成.
接下來, 通過工廠對象調用 openSession 方法創建SqlSession 對 象 . 在 這 個 過 程 中 , 需 要 通 過TransactionFactory 生成 Transaction 對象, 並且, 還需要創建核心執行器 Executor 對象, 之後, 通過這些對象來創建DefaultSqlSession對象, 至此, SqlSession對象創建成功.
之後, 通過 SqlSession 對象執行相應的操作, 如果執行成功, 調用 commit 方法提交事務; 如果失敗, 調用rollback 方法事務回滾. 最後, 調用 close 方法關閉session 資源. 以上, 就是 MyBatis 的運行原理.