日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis必知必会一

發布時間:2024/8/26 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 數據源
  • 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。

轉載于:https://www.cnblogs.com/jsersudo/p/10362551.html

總結

以上是生活随笔為你收集整理的mybatis必知必会一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。