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?– 基于某些值的結果映射
轉載于:https://www.cnblogs.com/jsersudo/p/10362551.html
總結
以上是生活随笔為你收集整理的mybatis必知必会一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读《程序是怎样跑起来》第五章有感
- 下一篇: AspNetCore 多环境配置 以及注