1. 程式人生 > >MyBatis的幾個重要概念和工作流程

MyBatis的幾個重要概念和工作流程

.com 信息 獲得 sql 語句 進行 對象 結點 增刪改 build

MyBatis 幾個重要的概念

  • Mapper 配置: Mapper 配置可以使用基於 XML 的 Mapper 配置文件來實現,也可以使用基於 Java 註解的 MyBatis 註解來實現,甚至可以直接使用 MyBatis 提供的 API 來實現。       
  • Mapper 接口: Mapper 接口是指自行定義的一個數據操做接口,類似於通常所說的 DAO 接口。早期的 Mapper 接口需要自定義去實現,現在 MyBatis 會自動為 Mapper 接口創建動態代理對象。Mapper 接口的方法通常與 Mapper 配置文件中的 select、insert、update、delete 等 XML 結點存在一一對應關系。
  • Executor: MyBatis 中所有的 Mapper 語句的執行都是通過 Executor 進行的,Executor 是 MyBatis 的一個核心接口。
  • SqlSession: SqlSession 是 MyBatis 的關鍵對象,是執行持久化操作的獨享,類似於 JDBC 中的 Connection,SqlSession 對象完全包含以數據庫為背景的所有執行 SQL 操作的方法,它的底層封裝了 JDBC 連接,可以用 SqlSession 實例來直接執行被映射的 SQL 語句。
  • SqlSessionFactory: SqlSessionFactory 是 MyBatis 的關鍵對象,它是單個數據庫映射關系經過編譯後的內存鏡像。SqlSessionFactory 對象的實例可以通過 SqlSessionFactoryBuilder 對象類獲得,而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個預先定制的 Configuration 的實例構建出。

MyBatis 的工作流程

     技術分享圖片

1、首先加載 Mapper 配置的 SQL 映射文件,或者是註解的相關 SQL 內容。

2、創建會話工廠,MyBatis 通過讀取配置文件的信息來構造出會話工廠(SqlSessionFactory)。

3、創建會話。根據會話工廠,MyBatis 就可以通過它來創建會話對象(SqlSession)。會話對象是一個接口,該接口中包含了對數據庫操作的增刪改查方法。

4、創建執行器。因為會話對象本身不能直接操作數據庫,所以它使用了一個叫做數據庫執行器(Executor)的接口來幫它執行操作。

5、封裝 SQL 對象。在這一步,執行器將待處理的 SQL 信息封裝到一個對象中(MappedStatement),該對象包括 SQL 語句、輸入參數映射信息(Java 簡單類型、HashMap 或 POJO)和輸出結果映射信息(Java 簡單類型、HashMap 或 POJO)。

6、操作數據庫。擁有了執行器和 SQL 信息封裝對象就使用它們訪問數據庫了,最後再返回操作結果,結束流程。

2018-08-11 13:55:43

MyBatis的幾個重要概念和工作流程