title: MyBatis之優(yōu)化MyBatis配置文件中的配置
tags: MyBatis
categories: MyBatis
若圖片無法顯示,請前往我的博客查看峻黍,相應文章鏈接:http://codingxiaxw.cn/2016/11/08/34-mybatis%E4%BC%98%E5%8C%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E9%85%8D%E7%BD%AE/
MyBatis配置文件很重要,首先我們來看看MyBatis配置文件中的內(nèi)容和順序:
<properties>(屬性)
<setting>(全局配置參數(shù))
<typeAliases>(類型別名)
<typeHandlers>(類型處理器)
<objectFactory>(對象工廠)
<plugins>(插件)
<environments>(環(huán)境集合屬性對象)
<environment>(環(huán)境子屬性對象)
<transactionManager>(事務管理)
dataSource>(數(shù)據(jù)源)
<mappers>(映射器)
文件目錄結(jié)構(gòu)如下:1.<properties>
屬性定義
可以把一些通用的屬性值配置在屬性文件中捺弦,加載到mybatis運行環(huán)境內(nèi)沐绒。例如創(chuàng)建db.properties文件,然后在SqlMapperConfig.xml中進行配置洲鸠。db.properties文件內(nèi)容如下:
然后在SqlMapperConfig.xml中進行配置:
[圖片上傳失敗...(image-e00850-1526286046195)]
然后在<environments>
標簽中用${}
符號做如下修改:
注意:Mybatis將按照下面的順序來加載屬性
- 1.在properties標簽之間定義的屬性首先被讀取。
- 2.然后會讀取properties標簽內(nèi)部resource或url的屬性馋缅,它會覆蓋已讀取的同名屬性扒腕。
- 3.最后讀取parameterType(即insert標簽或是update標簽或是...)傳遞的屬性,它會覆蓋已讀取的同名屬性萤悴。
所以我們建議使用properties標簽時瘾腰,不要在properties標簽之間定義屬性,只引用在.properties文件中定義的屬性覆履,并且.properties文件中定義的key值要有一些特殊的規(guī)則蹋盆。例如我上述定義key值時前面都加了jdbc.的前綴。
2.<settings>
全局參數(shù)配置
mybatis運行時可以調(diào)整一些全局參數(shù)(相當于軟件的運行參數(shù))硝全。根據(jù)使用需求進行參數(shù)配置栖雾。但是要注意:小心配置,配置參數(shù)會影響mybatis的執(zhí)行伟众。
ibatis的全局配置參數(shù)中包括很多的性能參數(shù)(最大線程數(shù)析藕、最大等待時間…),通過調(diào)整這些性能參數(shù)使ibatis達到高性能的運行凳厢,而mybatis沒有這些性能參數(shù)账胧,由mybatis自動調(diào)節(jié)。
3.<typeAliases>
屬性
可以將parameterType数初、resultType中指定的類型通過別名引用找爱。MyBatis提供了很多的別名如下:[圖片上傳失敗...(image-d951ee-1526286046195)]
這里我們采用自定義的別名,在SqlMapperConfig.xml中進行如下配置:
里面包括定義單個別名和批量別名定義(即一次性定義一個包下所有.java文件的別名)泡孩。
定義別名后這樣我們在parameterType和resultType中使用時就不用再繁瑣的指定類的全限定類名了,像下面這樣使用即可4.<typeHandlers>
屬性
類型處理器將java類型和jdbc類型進行映射寺谤,mybatis提供了很多類型處理器仑鸥,一般情況下夠用了吮播。
5.<mapper>
映射器屬性
之前我們在配置文件中使用的<mapper>
標簽內(nèi)容為:<mapper resource=“mapper/UserMapper.xml”/>
,接下來我要講的是另一種在配置文件中映射mapper動態(tài)代理的方法眼俊。在配置文件中這樣配置<mapper class=“mapper.UserMapper”/>
意狠,這樣的要求需要保證UserMapper.xml文件和UserMapper.java在同一個包下且.xml文件和.java文件名要同名。
同上方別名的配置疮胖,當包下出現(xiàn)多個Mapper.java和Mapper.xml時我們采用批量配置:<package name=“mapper”/>
环戈,代碼如下:[圖片上傳失敗...(image-43a838-1526286046195)]
2018.3.19更
歡迎加入我的Java交流1群:659957958。群里目前已有1800人澎灸,每天都非吃喝活躍,但為了篩選掉那些不懷好意的朋友進來搞破壞性昭,所以目前入群方式已改成了付費方式拦止,你只需要支付9塊錢,即可獲取到群文件中的所有干貨以及群里面各位前輩們的疑惑解答糜颠;為了鼓勵良好風氣的發(fā)展汹族,讓每個新人提出的問題都得到解決,所以我將得到的入群收費收入都以紅包的形式發(fā)放到那些主動給新手們解決疑惑的朋友手中其兴。在這里顶瞒,我們除了談技術,還談生活元旬、談理想榴徐;在這里,我們?yōu)槟愕膶W習方向指明方向法绵,為你以后的求職道路提供指路明燈箕速;在這里,我們把所有好用的干貨都與你分享朋譬。還在等什么盐茎,快加入我們吧!
2018.4.21更:如果群1已滿或者無法加入徙赢,請加Java學習交流2群:305335626 字柠。群2作為群1的附屬群,除了日常的技術交流狡赐、資料分享窑业、學習方向指明外,還會在每年互聯(lián)網(wǎng)的秋春招時節(jié)在群內(nèi)發(fā)布大量的互聯(lián)網(wǎng)內(nèi)推方式枕屉,話不多說常柄,快上車吧!
6.聯(lián)系
If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.