1. 程式人生 > >mybatis配置檔案 SqlMapConfig.xml

mybatis配置檔案 SqlMapConfig.xml

SqlMapConfig.xml

mybatis的全域性配置檔案SqlMapConfig.xml(名稱不固定),配置內容如下:

properties(屬性)

settings(全域性配置引數)

typeAliases(類型別名)

typeHandlers(型別處理器)

objectFactory(物件工廠)

plugins(外掛)

environments(環境集合屬性物件)

environment(環境子屬性物件)

transactionManager(事務管理)

dataSource(資料來源)

mappers

(對映器)

1、properties屬性

需求:

將資料庫連線引數單獨配置在db.properties中,只需要在SqlMapConfig.xml中載入db.properties的屬性值。

在SqlMapConfig.xml中就不需要對資料庫連線引數硬編碼。

將資料庫連線引數只配置在db.properties中,原因:方便對引數進行統一管理,其它xml可以引用該db.properties。

在sqlMapConfig.xml載入屬性檔案:

properties特性:

注意: MyBatis 將按照下面的順序來載入屬性:

  1. properties
    元素體內定義的屬性首先被讀取。
  2. 然後會讀取properties 元素中resource url 載入的屬性,它會覆蓋已讀取的同名屬性
  3. 最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性

建議:

1、不要在properties元素體內新增任何屬性值,只將屬性值定義在properties檔案中

2、在properties檔案中定義屬性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

2、settings全域性引數配置

mybatis框架在執行時可以調整一些執行引數。

比如:開啟二級快取、開啟延遲載入。。

全域性引數將會影響mybatis的執行行為。

詳細參見“學習資料/mybatis-settings.xlsx”檔案

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

自定義別名

    <!-- 別名定義 -->     <typeAliases>         <!-- 針對單個別名定義             type:型別的路徑             alias:別名 -->         <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/>                  <!-- 批量別名定義  (常用)             指定包名,mybatis自動掃描包中的po類,自動定義別名,別名就是類名(首字母大寫或小寫都可以)-->         <package name="cn.itcast.mybatis.po"/>     </typeAliases>

引用別名:

4、typeHandlers(型別處理器)

mybatis中通過typeHandlers完成jdbc型別和java型別的轉換。

通常情況下,mybatis提供的型別處理器滿足日常需要,不需要自定義.

mybatis支援型別處理器:

型別處理器

Java型別

JDBC型別

BooleanTypeHandler

Booleanboolean

任何相容的布林值

ByteTypeHandler

Bytebyte

任何相容的數字或位元組型別

ShortTypeHandler

Shortshort

任何相容的數字或短整型

IntegerTypeHandler

Integerint

任何相容的數字和整型

LongTypeHandler

Longlong

任何相容的數字或長整型

FloatTypeHandler

Floatfloat

任何相容的數字或單精度浮點型

DoubleTypeHandler

Doubledouble

任何相容的數字或雙精度浮點型

BigDecimalTypeHandler

BigDecimal

任何相容的數字或十進位制小數型別

StringTypeHandler

String

CHARVARCHAR型別

ClobTypeHandler

String

CLOBLONGVARCHAR型別

NStringTypeHandler

String

NVARCHARNCHAR型別

NClobTypeHandler

String

NCLOB型別

ByteArrayTypeHandler

byte[]

任何相容的位元組流型別

BlobTypeHandler

byte[]

BLOBLONGVARBINARY型別

DateTypeHandler

Datejava.util

TIMESTAMP型別

DateOnlyTypeHandler

Datejava.util

DATE型別

TimeOnlyTypeHandler

Datejava.util

TIME型別

SqlTimestampTypeHandler

Timestampjava.sql

TIMESTAMP型別

SqlDateTypeHandler

Datejava.sql

DATE型別

SqlTimeTypeHandler

Timejava.sql

TIME型別

ObjectTypeHandler

任意

其他或未指定型別

EnumTypeHandler

Enumeration型別

VARCHAR-任何相容的字串型別,作為程式碼儲存(而不是索引)。

5、mappers(對映配置)

    <!-- 載入 對映檔案 -->     <mappers>         <!--通過resource方法一次載入一個對映檔案,可以不在同一包下 -->         <mapper resource="sqlmap/User.xml"/>

                 <!-- 通過mapper介面載入單個 對映檔案         遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄中。         上邊規範的前提是:使用的是mapper代理方法 -->         <mapper class="cn.itcast.mybatis.mapper.UserMapper"/>                  <!-- 批量載入mapper   (推薦使用)         指定mapper介面的包名,mybatis自動掃描包下邊所有mapper介面進行載入         遵循一些規範:需要將mapper介面類名和mapper.xml對映檔名稱保持一致,且在一個目錄中。         上邊規範的前提是:使用的是mapper代理方法 -->         <package name="cn.itcast.mybatis.mapper"/>     </mappers>