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都是利用註解寫在介面上