1. 程式人生 > >mybatis必知必會一

mybatis必知必會一

都是 base 資源文件 驗證 作用 實例化 iat mina 嵌套

入門:

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 數據源
  • 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

mybatis必知必會一