mybatis的全域性配置檔案SqlMapConfig.xml解析

weixin_33797791發表於2019-02-27

mybatis的全域性配置檔案SqlMapConfig.xml,配置內容如下:

  1. properties(屬性)
  2. settings(全域性配置引數)
  3. typeAliases(型別別名)
  4. typeHandlers(型別處理器)
  5. objectFactory(物件工廠)
  6. plugins(外掛)
  7. environments(環境集合屬性物件)
    environment(環境子屬性物件)
    transactionManager(事務管理)
    dataSource(資料來源)
  8. mappers(對映器)

1.properties屬性

  • 需求
    將資料庫連線引數單獨配置在db.properties中,只需要在SqlMapConfig.xml中載入db.properties的屬性值。在SqlMapConfig.xml中就不需要對資料庫連線引數硬編碼。
    將資料庫連線引數只配置在db.properties
    原因:方便對引數進行統一管理,其它xml可以引用該db.properties
7900193-cbd6f9fd9ecf1ce9.png
db.properties

在sqlMapConfig.xml載入屬性檔案:

7900193-8244525418ebe666.png
sqlMapConfig.xml
  • properties特性:
    • 在 properties 元素體內定義的屬性首先被讀取。
    • 然後會讀取properties 元素中resource或 url 載入的屬性,它會覆蓋已讀取的同名屬性。
    • 最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性。

建議:
不要在properties元素體內新增任何屬性值,只將屬性值定義在properties檔案中。
在properties檔案中定義屬性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

2.settings全域性引數配置
mybatis框架在執行時可以調整一些執行引數。
比如:開啟二級快取、開啟延遲載入。。
全域性引數將會影響mybatis的執行行為。

7900193-e99f12960bb21296.png
1

7900193-27bafa938ce98f02.png
2

7900193-9f147722ff1cff0a.png
3

3.typeAliases型別別名

  • 需求:
    mapper.xml中,定義很多的statement,statement需要parameterType指定輸入引數的型別、需要resultType指定輸出結果的對映型別。
    如果在指定型別時輸入型別全路徑,不方便進行開發,可以針對parameterType或resultType指定的型別定義一些別名,在mapper.xml中通過別名定義,方便開發。
  • mybatis預設支援的別名
別名 對映的型別
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
  • 自定義別名
    • 單個別名定義
7900193-e562ec672a3d4c7f.png
單個別名定義
  • 引用別名
7900193-716bea90f6f5dc90.png
引用別名
  • 批量別名定義
7900193-24acc2784786e8ed.png
批量別名定義

4.typeHandlers型別處理器

  • mybatis中通過typeHandlers完成jdbc型別和java型別的轉換。
    通常情況下,mybatis提供的型別處理器滿足日常需要,不需要自定義.

8.mappers對映器

  • 通過resource載入單個對映檔案
7900193-4b6b7fccbc87140b.png
通過resource載入單個對映檔案
  • 通過mapper介面載入單個mapper
7900193-ba53d8864dbaacf6.png
通過mapper介面載入單個mapper
  • 批量載入mapper(推薦使用)
7900193-838dcc676c35dcb7.png
批量載入mapper

相關文章