MyBatis之優(yōu)化MyBatis配置文件中的配置

title: MyBatis之優(yōu)化MyBatis配置文件中的配置
tags: MyBatis
categories: MyBatis


若圖片無法顯示,請前往我的博客查看,相應(yīng)文章鏈接: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>(事務(wù)管理)
            dataSource>(數(shù)據(jù)源)
            
    <mappers>(映射器)

文件目錄結(jié)構(gòu)如下:
image

1.<properties>屬性定義

可以把一些通用的屬性值配置在屬性文件中,加載到mybatis運(yùn)行環(huán)境內(nèi)。例如創(chuàng)建db.properties文件,然后在SqlMapperConfig.xml中進(jìn)行配置。db.properties文件內(nèi)容如下:

image

然后在SqlMapperConfig.xml中進(jìn)行配置:

[圖片上傳失敗...(image-e00850-1526286046195)]

然后在<environments>標(biāo)簽中用${}符號做如下修改:

image

注意:Mybatis將按照下面的順序來加載屬性

  • 1.在properties標(biāo)簽之間定義的屬性首先被讀取。
  • 2.然后會讀取properties標(biāo)簽內(nèi)部resource或url的屬性,它會覆蓋已讀取的同名屬性。
  • 3.最后讀取parameterType(即insert標(biāo)簽或是update標(biāo)簽或是...)傳遞的屬性,它會覆蓋已讀取的同名屬性。

所以我們建議使用properties標(biāo)簽時(shí),不要在properties標(biāo)簽之間定義屬性,只引用在.properties文件中定義的屬性,并且.properties文件中定義的key值要有一些特殊的規(guī)則。例如我上述定義key值時(shí)前面都加了jdbc.的前綴。

2.<settings>全局參數(shù)配置

mybatis運(yùn)行時(shí)可以調(diào)整一些全局參數(shù)(相當(dāng)于軟件的運(yùn)行參數(shù))。根據(jù)使用需求進(jìn)行參數(shù)配置。但是要注意:小心配置,配置參數(shù)會影響mybatis的執(zhí)行。

ibatis的全局配置參數(shù)中包括很多的性能參數(shù)(最大線程數(shù)、最大等待時(shí)間…),通過調(diào)整這些性能參數(shù)使ibatis達(dá)到高性能的運(yùn)行,而mybatis沒有這些性能參數(shù),由mybatis自動(dòng)調(diào)節(jié)。

3.<typeAliases>屬性

可以將parameterType、resultType中指定的類型通過別名引用。MyBatis提供了很多的別名如下:[圖片上傳失敗...(image-d951ee-1526286046195)]

這里我們采用自定義的別名,在SqlMapperConfig.xml中進(jìn)行如下配置:

image

里面包括定義單個(gè)別名和批量別名定義(即一次性定義一個(gè)包下所有.java文件的別名)。

定義別名后這樣我們在parameterType和resultType中使用時(shí)就不用再繁瑣的指定類的全限定類名了,像下面這樣使用即可
image

4.<typeHandlers>屬性

類型處理器將java類型和jdbc類型進(jìn)行映射,mybatis提供了很多類型處理器,一般情況下夠用了。

5.<mapper>映射器屬性

之前我們在配置文件中使用的<mapper>標(biāo)簽內(nèi)容為:<mapper resource=“mapper/UserMapper.xml”/>,接下來我要講的是另一種在配置文件中映射mapper動(dòng)態(tài)代理的方法。在配置文件中這樣配置<mapper class=“mapper.UserMapper”/>,這樣的要求需要保證UserMapper.xml文件和UserMapper.java在同一個(gè)包下且.xml文件和.java文件名要同名。

同上方別名的配置,當(dāng)包下出現(xiàn)多個(gè)Mapper.java和Mapper.xml時(shí)我們采用批量配置:<package name=“mapper”/>,代碼如下:[圖片上傳失敗...(image-43a838-1526286046195)]

2018.3.19更

歡迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非?;钴S,但為了篩選掉那些不懷好意的朋友進(jìn)來搞破壞,所以目前入群方式已改成了付費(fèi)方式,你只需要支付9塊錢,即可獲取到群文件中的所有干貨以及群里面各位前輩們的疑惑解答;為了鼓勵(lì)良好風(fēng)氣的發(fā)展,讓每個(gè)新人提出的問題都得到解決,所以我將得到的入群收費(fèi)收入都以紅包的形式發(fā)放到那些主動(dòng)給新手們解決疑惑的朋友手中。在這里,我們除了談技術(shù),還談生活、談理想;在這里,我們?yōu)槟愕膶W(xué)習(xí)方向指明方向,為你以后的求職道路提供指路明燈;在這里,我們把所有好用的干貨都與你分享。還在等什么,快加入我們吧!

2018.4.21更:如果群1已滿或者無法加入,請加Java學(xué)習(xí)交流2群:305335626 。群2作為群1的附屬群,除了日常的技術(shù)交流、資料分享、學(xué)習(xí)方向指明外,還會在每年互聯(lián)網(wǎng)的秋春招時(shí)節(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.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,248評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,606評論 19 139
  • 本周已是第十三周,上周對班級閱讀進(jìn)行了 統(tǒng)計(jì),如下表格: 孩子,是要窮養(yǎng)出吃苦奮斗的精神,還是富養(yǎng)出疏闊溫厚的性格...
    遠(yuǎn)貞閱讀 598評論 0 1
  • 東京蕎麥屋里賣狐蕎麥、貍蕎麥、狐烏冬、貍烏冬,什么狐啊貍的,都是1970年左右的東京小孩最奢侈的食品;而1970年...
    小婦阿達(dá)閱讀 2,467評論 0 1
  • 雖說考完期末考試了,但關(guān)于考試的點(diǎn)點(diǎn)滴滴,仍在我們的生活里泛起了漣漪。有悲有喜,又無奈,也興奮。 抽測那點(diǎn)事 先說...
    簡翼閱讀 795評論 1 2

友情鏈接更多精彩內(nèi)容