1. 程式人生 > >Mybatis-SqlMapConfig.xml配置

Mybatis-SqlMapConfig.xml配置

SqlMapConfig.xml主要負責配置資料庫的連線資訊,以及載入mapper.xml。

Properties

在配置資料庫連線資訊時,可採用Properties配置檔案的方式進行相關資訊的配置並載入,

這樣只需要在SqlMapConfig.xml中載入properties檔案包含的屬性值,在SqlMapConfig.xml中就不需要對資料庫連線引數硬編碼。

同時也方便對引數進行統一管理,其它xml亦可引用該properties配置檔案。

相關程式碼如下:

db.properties檔案:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=passwd
SqlMapConfig.xml配置檔案:
<environments default="development">
	<environment id="development">
	<!-- 使用jdbc事務管理-->
	<transactionManager type="JDBC" />
	<!-- 資料庫連線池-->
	<dataSource type="POOLED">
	<property name="driver" value="${jdbc.driver}" />
	<property name="url" value="${jdbc.url}" />
	<property name="username" value="${jdbc.username}" />
	<property name="password" value="${jdbc.password}" />
		</dataSource>
	</environment>
</environments>

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

1、properties元素體內定義的屬性首先被讀取。

2、其次讀取properties 元素中resource或url載入的屬性,其會覆蓋已讀取的同名屬性

3、最後讀取parameterType傳遞的屬性,其亦會覆蓋已經讀取的同名屬性

建議:

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

在properties檔案中定義屬性名要有一定的特殊性。


settings配置

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

比如:開啟二級快取、開啟延遲載入,全域性引數將會影響mybatis的執行行為。

具體設定資訊如下所示:

表格下載:下載

TypeAliase(類型別名)

在Mybatis中,我們可以為資料型別指定一些別名,繼而簡化我們的開發,同時,也可以為協同開發做出一定的規則,減少了程式碼的錯誤量以及整合速度。

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

自定義別名

除了Mybatis自身支援的一些資料類型別名外,我們還可以自定義一些簡單易用的別名供我們使用。

自定義別名,則需要在SqlMapConfig.xml配置檔案中進行相關的配置,如下所示:

<!-- 自定義別名 -->
<typeAliases>
<!-- 針對單個別名的定義
     type:型別的路徑
     alias:別名
-->
<-- 單個別名定義 --> 

 <typeAlias type="com.sw.po.User" alias="user"/>

<!-- 批量別名定義指定包名,mybatis自動掃描包中的po類,自動定義別名,別名即為類名(大小寫均可) -->
<package name="com.sw.po"/>
</typeAliases>

其中,我們可以進行單個別名定義,如下:
<typeAlias type="com.sw.po.User" alias="user"/>

表示將com.sw.User定義為user,在使用時,我們只需要填寫user即可。
同時,亦可進行批量別名定義,如下:
<package name="com.sw.po"/>
如上則表示將com.sw.po包下所有的po類名稱定義為其類名。

例如:com.sw.po下有User類,則其別名即為User或者user.....
注:在這裡,user並不區分大小寫,大小寫均可進行配置。

typeHandler(型別處理器)

型別處理器用於java型別與jdbc型別的對映,如下所示:

<select id="findUserById" parameterType="int" resultType="user">
      select * from user where id = #{id}
</select>

parameterType則表示輸入型別,即與資料庫表字段的相關對映。

在Mybatis中,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-任何相容的字串型別,作為程式碼儲存(而不是索引)。

Mappers(對映器)

mappers對映器主要用於載入相關的mapper.xml配置檔案。

<!-- 載入對映檔案 -->
<mappers>
	<!-- User.xml -->
	<mapper resource="sqlmap/User.xml"/>
	<!-- 1、UserMapper.xml -->
   <!--   <mapper resource="com.sw.mapper.UserMapper.xml"/> -->
	 
	 <!--2、通過Mapper介面載入對映檔案
		規範:需要將mapper介面類名與mapper.xml對映檔名保持一致,且在一個目錄中
		前提:使用的是mapper代理的方式
	  -->
   <!--    <mapper class="com.sw.mapper.UserMapper"/> -->
	  
	  <!-- 3、批量載入(多個mapper)
		指定mapper介面的包名,mybatis自動掃描包下的mapper介面進行載入
	   -->
	   <package name="com.sw.mapper"/>
</mappers>

如上所示,一般的我們可以使用以上三種方法進行載入mapper.xml配置檔案的工作。

但是我們知道,在實際開發時,有的時候,我們會將Mapper.xml配置檔案放置於伺服器某個磁碟中,

故而,我們可以使用<mapper url=" "/>的方式進行載入,其url表示mapper.xml的路徑,例如:

<mapper url="file:///D:\workspace\mybatis-1\config\sqlmap\User.xml"/>

到這裡,關於SqlMapConfig.xml的基本常用配置就講解完了,在之後有增加的地方會接著修改,有錯誤的地方,請指教。