1. 程式人生 > >mybatis--全域性配置檔案

mybatis--全域性配置檔案

前言

上節課最後我們提到了兩個重要的配置檔案, 今天我們就先來講講mybatis的全域性配置檔案

這個配置檔案包含了影響mybatis行為的設定和屬性.文件的頂層結構如下:


properties

mybatis可以使用properties來引入外部properties配置檔案的內容;
Resource:引入類路徑下的資源
url:引入網路/磁碟路徑下的資源
如果屬性不只一個地方進行了配置,那麼在properties內指定的屬性會優先; 再根據resource屬性下讀, 再根據url指定的路徑讀,並覆蓋已讀取的同名的屬性

最後讀取作為方法引數傳遞的屬性,並覆蓋已讀取的

Settings

Setting 包含很多重要的設定項
setting:用來設定每一個設定項 name:設定項名 value:設定項取值

比如: 是否開啟自動駝峰命名規則(資料庫列名A_COLUMN到aCloumn的類似對映)

<settings>
	<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

typeAliases

typeAliases 別名處理器 簡省工作量,可以為我們的java型別起別名
別名不區分大小寫
typeAlias:為某個java型別起別名,方便引用某個類
type:指定要起別名的全類名;預設別名就是類名的小寫;

alias:指定新的別名

<typeAlias type="com.kwy.mybatis.bean.Employee" alias="emp"/>

這種就是為單獨某一個起別名, 但是如果 有很多的類,那工作量也是有點大的, 所以就有了批量的方式

批量起別名
package: 為某個包下的所有類批量起別名

name: 指定包名(為當前包以及下面所有的後代包的每一類都起一個預設別名(簡單類名小寫))

<typeAliases>
	<package name="com.kwy.mybatis.bean"/>
</typeAliases>

還使用@Alias註解為某個型別指定新的別名

@Alias("emp")
Public class Employee{}

外掛

外掛是MyBatis提供的一個非常強大的機制,我們 可以通過外掛來修改MyBatis的一些核心行為。插 件通過動態代理機制,可以介入四大物件的任何一個方法的執行。後面會有我會專門來介紹mybatis執行原理以及外掛 

Executor   ParameterHandler  ResultSetHandler StatementHandler

Environments

Environments:環境們,mybatis可以配置多種環境,default指定某種環境,可以打到快速切換環境(有點像maven的profile了哈)
Environment:配置一個具體的環境資訊
id:指定當前環境的唯一標識
 transactionManager:事務管理器和dataSource必須得有
下面來說一下transactionManager
 type:事務管理器的型別:
        jdbc 
        managed
        自定義事務管理器,實現TransactionFactory介面, type指定為全類名
DataSource:資料來源;
        type: 資料來源型別 UNPOOLED | POOLED| JNDI

        自定義資料來源: 實現DataSourceFactory介面

databaseIdProvider

databaseIdProvider:支援多資料庫廠商的
type="DB_VENDOR": VendorDatabaseIdProvider

作用就是得到資料庫廠商的標識(驅動),mybatis就能根據資料庫廠商標識來執行不同的sql;

<databaseIdProvider type="DB_VENDOR">
 <!--為不同的資料庫廠商起別名-->
 <property name="MySQL" value="mysql"/>
 <property name="Oracle" value="oracle"/>
</databaseIdProvider>

mappers

將我們寫好的sql對映檔案,註冊到全域性配置中

如何使用呢

mappers: 將sql對映註冊到全域性配置中
mapper:註冊一個sql對映
resource:引用類路徑下的sql對映檔案
Eg: mybatis/mapper/xxx.xml
url: 引用網路路徑活磁碟路徑下的sql對映檔案
Eg: file://workspace/xxx.xml

註冊介面
class: 引用介面
         1.有sql對映檔案,對映檔名必須和介面同名,並且放在與介面同一目錄下;
         2.沒有sql對映檔案,所有sql都是利用註解寫在介面上