mybatis功能架構及執行流程
阿新 • • 發佈:2017-12-20
mybatis原理一、功能架構設計
功能架構講解:
我們把Mybatis的功能架構分為三層:
(1)API接口層:提供給外部使用的接口API,開發人員通過這些本地API來操縱數據庫。接口層一接收到調用請求就會調用數據處理層來完成具體的數據處理。
(2)數據處理層:負責具體的SQL查找、SQL解析、SQL執行和執行結果映射處理等。它主要的目的是根據調用的請求完成一次數據庫操作。
(3)基礎支撐層:負責最基礎的功能支撐,包括連接管理、事務管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎的組件。為上層的數據處理層提供最基礎的支撐。
二、mybatis執行流程
1. 加載配置文件並初始化(SqlSession)
配置文件來源於兩個地方,一個是配置文件(主配置文件conf.xml,mapper文件*.xml),一個是java代碼中的註釋,將sql的配置信息加載成為一個mappedstatement對象,存儲在內存之中(包括傳入參數的映射配置,結果映射配置,執行的sql語句)。
2. 接收調用請求
調用mybatis提供的api,傳入的參數為sql的id(有namespase和具體sql的id組成)和sql語句的參數對象,mybatis將調用請求交給請求處理層。
3. 處理請求
根據sql的id找到對應的mappedstatament對象。
根據傳入參數解析mappedstatement對象,得到最終要執行的sql 。
獲取數據庫連接,執行sql,得到執行結果
Mappedstatement對象中的結果映射對執行結果進行轉換處理,並得到最終的處理結果。
釋放連接資源
4. 返回處理結果
mybatis功能架構及執行流程