MyBatis 簡介

一 MyBatis 四大核心組件

  1. SqlSession對象
  • 該對象中包含了執(zhí)行SQL語句的所有方法
  • 類似于JDBC里面的Connection .
  1. Executor接口,它將根據(jù)SqlSession傳遞的參數(shù)動態(tài)地生成需要執(zhí)行的SQL語句,同時負責查詢緩存的維護。類似于JDBC里面的Statement/PrepareStatement。

  2. MappedStatement對象,該對象是對映射SQL的封裝,用于存儲要映射的SQL語句的id、參數(shù)等信息。

  3. ResultHandler對象,用于對返回的結(jié)果進行處理,最終得到自己想要的數(shù)據(jù)格式或類型??梢宰远x返回類型。

二 MyBatis 工作原理及其核心流程

  1. 讀取MyBatis的配置文件。mybatis-config.xml為MyBatis的全局配置文件,用于配置數(shù)據(jù)庫連接信息。

  2. 加載映射文件。映射文件即SQL映射文件,該文件中配置了操作數(shù)據(jù)庫的SQL語句,需要在MyBatis配置文件mybatis-config.xml中加載。mybatis-config.xml 文件可以加載多個映射文件,每個文件對應(yīng)數(shù)據(jù)庫中的一張表。

  3. 構(gòu)造會話工廠。通過MyBatis的環(huán)境配置信息構(gòu)建會話工廠SqlSessionFactory。

  4. 創(chuàng)建會話對象。由會話工廠創(chuàng)建SqlSession對象,該對象中包含了執(zhí)行SQL語句的所有方法。

  5. Executor執(zhí)行器。MyBatis底層定義了一個Executor接口來操作數(shù)據(jù)庫,它將根據(jù)SqlSession傳遞的參數(shù)動態(tài)地生成需要執(zhí)行的SQL語句,同時負責查詢緩存的維護。

  6. MappedStatement對象。在Executor接口的執(zhí)行方法中有一個MappedStatement類型的參數(shù),該參數(shù)是對映射信息的封裝,用于存儲要映射的SQL語句的id、參數(shù)等信息。

  7. 輸入?yún)?shù)映射。輸入?yún)?shù)類型可以是Map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸入?yún)?shù)映射過程類似于JDBC對preparedStatement對象設(shè)置參數(shù)的過程。

  8. 輸出結(jié)果映射。輸出結(jié)果類型可以是Map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸出結(jié)果映射過程類似于JDBC對結(jié)果集的解析過程。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容