mybatis必知必會一
入門:
1、每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的例項為中心的。SqlSessionFactory 的例項可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置檔案或一個預先定製的 Configuration 的例項構建出 SqlSessionFactory 的例項。
2、MyBatis 包含一個名叫 Resources 的工具類,它包含一些實用方法,可使從 classpath 或其他位置載入資原始檔更加容易。
3、 XML 頭部的宣告,用來驗證 XML 文件正確性。environment 元素體中包含了事務管理和連線池的配置。mappers 元素則是包含一組 mapper 對映器(這些 mapper 的 XML 檔案包含了 SQL 程式碼和對映定義資訊)。
4、SqlSession 完全包含了面向資料庫執行 SQL 命令所需的所有方法。
5、依賴注入框架可以建立執行緒安全的、基於事務的 SqlSession 和對映器(mapper)並將它們直接注入到你的 bean 中,因此可以直接忽略它們的生命週期。
6、SqlSessionFactoryBuilder 例項的最佳作用域是方法作用域。
7、SqlSessionFactory 的最佳作用域是應用作用域。
8、每個執行緒都應該有它自己的 SqlSession 例項。SqlSession 的例項不是執行緒安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。
XML配置:
文件頂層結構:
configuration 配置
- properties 屬性
- settings 設定
- typeAliases 類型別名
- typeHandlers 型別處理器
- objectFactory 物件工廠
- plugins 外掛
-
environments 環境
-
environment 環境變數
- transactionManager 事務管理器
- dataSource 資料來源
-
environment 環境變數
- databaseIdProvider 資料庫廠商標識
- mappers 對映器
XML對映檔案:
SQL 對映檔案有很少的幾個頂級元素(按照它們應該被定義的順序):
- cache – 給定名稱空間的快取配置。
- cache-ref – 其他名稱空間快取配置的引用。
- resultMap – 是最複雜也是最強大的元素,用來描述如何從資料庫結果集中來載入物件。
- sql – 可被其他語句引用的可重用語句塊。
- insert – 對映插入語句
- update – 對映更新語句
- delete – 對映刪除語句
- select – 對映查詢語句
1、MyBatis 支援 STATEMENT,PREPARED 和 CALLABLE 語句的對映型別,分別代表 PreparedStatement 和 CallableStatement 型別。
resultMap
-
constructor
- 用於在例項化類時,注入結果到構造方法中
- idArg - ID 引數;標記出作為 ID 的結果可以幫助提高整體效能
- arg - 將被注入到構造方法的一個普通結果
- id – 一個 ID 結果;標記出作為 ID 的結果可以幫助提高整體效能
- result – 注入到欄位或 JavaBean 屬性的普通結果
-
association
– 一個複雜型別的關聯;許多結果將包裝成這種型別
- 巢狀結果對映 – 關聯可以指定為一個 resultMap 元素,或者引用一個
-
collection
– 一個複雜型別的集合
- 巢狀結果對映 – 集合可以指定為一個 resultMap 元素,或者引用一個
-
discriminator
– 使用結果值來決定使用哪個 resultMap
-
case
– 基於某些值的結果對映
- 巢狀結果對映 – 一個 case 也是一個對映它本身的結果,因此可以包含很多相 同的元素,或者它可以參照一個外部的 resultMap 。
-
case
– 基於某些值的結果對映