視頻地址:http://edu.51cto.com/sd/be679
首先我們要知道一點,該配置文件的中屬性的存放是有順序的,沒有辦法隨意的亂放。如果你屬性的配置位置出錯,會有如下錯誤提示:
The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".
這個錯誤的大概意思是說,在configuration里面的屬性存放必須按照紅體字那些順序存放。
接下來我們按照順序來看一下這些配置屬性到底是什么意思:
1.properties屬性:加載屬性的配置文件
比如:這個數據源信息,應該是放在一個db.properties里面然后在在數據源里引用的。
<properties resource="db.properties"></properties>//把db.properties的文件引用進來 <environments default="development"> <environment id="development"> <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>
2.第二個配置信息<settings>
Mybatis在運行的時候可以調整的一些參數
比如:是否開啟緩存,延遲加載就是在setting中配置,這里把延遲加載和開啟二級緩存的配置貼在下面
<!-- 開啟延遲加載 -->
<settings>
<!-- lazyLoadingEnabled:延遲加載啟動,默認是false -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- aggressiveLazyLoading:積極的懶加載,false的話按需加載,默認是true -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 開啟二級緩存,默認是false -->
<setting name="cacheEnabled" value="true"/>
</settings>
這個全局的參數別隨便亂配,因為它會影響Mybatis的運行
3.typeAliases 別名(這個屬性用的非常平繁)
默認支持的別名類型:我們在用parameterType指定輸入參數類型的時候需要寫全稱,但是比如:java.lang.Integer也可以寫int就是因為這個默認支 持的別名型大概支持的默認類型如下(沒有全部列出來)

自定義別名:
對單個的定義:
<typeAliases> <!-- type:就是你要為那個類去別名的路徑:包名+類型
alias:就是你自己取的別名 --> <typeAlias type="com.etc.entity.Student" alias="student"/> </typeAliases>
引用別名:本來該寫 com.etc.entity.Student現在只要寫alias里的名字就好

批量定義別名:
<!-- Mybatis批量定義別名:通過指定包名來定義 就是內部去定義這個取別名的規則: 規則:Mybatis會自動去掃描這個包底下的類,並且Mybatis自定義別名,別名就是類名(首字母大小寫都可以) --> <package name="com.etc.entity"/>
注意:掃描包,Mybatis自定義別名,別名就是類型首字母的大小寫都可以
typeHanlders:類型處理器
Mybatis中是通過typeHanlders完成java類型和數據庫類型的轉換,Mybatis內部定義的類型已經足夠我們去使用,就不需要自己在去定義。
environments:運行環境(數據源等等)
Mappers:關聯配置文件(就是mybatis寫在xml中的數據庫操作,需要告訴這個全局配置文件),主要有一下三種方式
單個文件:
<mappers>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
類加載:
<!-- 通過類去加載該類的配置文件 規則:mapper接口和mapper.xml映射文件的名稱必須一致 :在同一個目錄 --> <mapper class="com.etc.mapper.StudentMapper"/>
批量加載:
<!--批量加載:也是掃描這個包底下的所有東西 仍然要遵守類加載的原則 -->
<package name="com.etc.mapper"/>
以上就是這些就是配置文件的詳細解析。
