這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學習及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下
MyBatis的全局配置文件SqlMapConfig.xml,配置內容和順序如下:
properties(屬性)
setting(全局配置參數)
typeAliases(類名別名)
typeHandlers(類名處理器)
objectFactory(對象工廠)
plugins(插件)
environments(環境集合屬性對象)
environment(環境子屬性對象)
transationManager(事務管理)
dataSource(數據源)
mappers(映射器)
1.properties(屬性)
需求:
將數據庫連接參數單獨配置在db.properties中,只需要在SqlMapConfig.xml中加載db.properties的屬性值。在SqlMapConfig.xml中就不需要對數據庫連接參數硬編碼。
將數據庫連接參數只配置在db.properties中,原因:方便對參數進行統一管理,其它xml可以引用該db.properties。
在classpath下定義db.properties文件:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc\\:mysql\\://localhost\\:3306/mybatisdemo
jdbc.username=root
jdbc.password=
在SqlMapConfig.xml加載屬性文件:
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties>
<environments>
<environment>
<transactionmanager>
<datasource>
<property>
<property>
<property>
<property>
properties特性:
注意:MyBatis將按照下面的順序來加載屬性:
(1)在properties元素體內定義的屬性首先被讀取。
(2)然後會讀取properties元素中resourse或url加載的屬性,它會覆蓋已讀取的同名屬性。
(3)最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性。
所以這裡可能就會存在一個問題:假如UserMapper.xml中的有一個statement的入參名為name,
![Spring+SpringMVC+MyBatis學習及搭建之MyBatis全局配置文件解析](http://p2.ttnews.xyz/loading.gif)
而db.properties中也有一個參數名叫name。
![Spring+SpringMVC+MyBatis學習及搭建之MyBatis全局配置文件解析](http://p2.ttnews.xyz/loading.gif)
那最終UserMapper.xml中的select會讀取到name=root,而不是用戶傳入的值。
建議:
不要在properties元素體內添加任何屬性值,只將屬性值定義在properties文件中。
在properties文件中定義屬性名要有一定的特殊性,如:xxx.xxx.xxx,jdbc.url,jbdc.username。
2.settings(全局參數配置)
MyBatis框架在運行時可以調整一些運行參數。
比如:開啟二級緩存、開啟延遲加載......
全局參數將會影響MyBatis的運行行為。
3.typeAliases(別名)重點
3.1需求
在mapper.xml中,定義很多的statement,而statement需要parameterType指定輸入參數的類型,需要resultType指定輸出結果的映射類型。
如果在指定類型時輸入類型全路徑,不方便進行開發。可以針對parameterType或resultType指定的類型定義一些別名,在mapper.xml中通過別名定義,方便開發。
3.2mybatis默認支持別名
3.3自定義別名
3.3.1單個別名定義
<typealiases>
<typealias>
引用別名:
<select>
select * from user where id=#{id}
3.3.2批量定義別名(常用)
<typealiases>
<package>
4.typeHandlers(類型處理器)
MyBatis中通過typeHandlers完成jbdc類型和java類型的轉換。通常情況下,MyBatis提供的類型處理器滿足日常需要,不需要自定義。
5.mappers(映射配置)
5.1通過resource加載單個文件
<mappers>
<mapper>
5.2通過mapper接口加載單個mapper
<mappers>
<mapper>
按照上邊的規範,將mapper.java和mapper.xml放在一個目錄,且同名。
5.3批量加載mapper(推薦使用)
<mappers>
<package>
以上所述是小編給大家介紹的Spring+SpringMVC+MyBatis深入學習及搭建之MyBatis全局配置文件解析,希望對大家有所幫助,喜歡小編文章可以關注小編並幫小編轉發,小編後期會持續更新的哦。
閱讀更多 架構師公社 的文章