這篇文章將為大家詳細(xì)講解有關(guān)Properties在MyBatis 中的作用是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、做網(wǎng)站、開(kāi)封網(wǎng)絡(luò)推廣、微信小程序、開(kāi)封網(wǎng)絡(luò)營(yíng)銷、開(kāi)封企業(yè)策劃、開(kāi)封品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供開(kāi)封建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
1、我們將 數(shù)據(jù)庫(kù)的配置語(yǔ)句寫(xiě)在 db.properties 文件中
jdbc.driver=com.MySQL.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm jdbc.username=root jdbc.password=root
2、在 mybatis-configuration.xml 中加載db.properties文件并讀取
如果數(shù)據(jù)庫(kù)有變化,我們就可以通過(guò)修改 db.properties 文件來(lái)修改,而不用去修改 mybatis-configuration.xml 文件
注意:我們也可以在
那么這個(gè)時(shí)候是讀取的username 是以 db.properties 文件中的 root 為準(zhǔn),還是以自己配置的 aaa 為準(zhǔn)呢?
我們先看一段 properties 文件加載的源碼
private void propertiesElement(XNode context) throws Exception { if (context != null) { /** * 解析properties 屬性中指定的屬性。 */ Properties defaults = context.getChildrenAsProperties(); String resource = context.getStringAttribute("resource"); //resource 制定的屬性路徑 String url = context.getStringAttribute("url"); //url制定的屬性路徑 if (resource != null && url != null) { throw new BuilderException("The properties element cannot specify both a URL and a resource based property file reference. Please specify one or the other."); } /** * 根據(jù) properties 元素中的 resource 屬性讀取類路徑下屬性文件,并覆蓋properties 屬性中指定的同名屬性。 */ if (resource != null) { defaults.putAll(Resources.getResourceAsProperties(resource)); } else if (url != null) { /** * 根據(jù)properties元素中的url屬性指定的路徑讀取屬性文件,并覆蓋properties 屬性中指定的同名屬性。 */ defaults.putAll(Resources.getUrlAsProperties(url)); } /** * 獲取方法參數(shù)傳遞的properties * 創(chuàng)建XMLConfigBuilder實(shí)例時(shí),this.configuration.setVariables(props); */ Properties vars = configuration.getVariables(); if (vars != null) { defaults.putAll(vars); } parser.setVariables(defaults); configuration.setVariables(defaults); } }
通過(guò)源碼我們可以分析讀取優(yōu)先級(jí):
1、在 properties 內(nèi)部自定義的屬性值第一個(gè)被讀取
2、然后讀取 resource 路徑表示文件中的屬性,如果有它會(huì)覆蓋已經(jīng)讀取的屬性;如果 resource 路徑不存在,那么讀取 url 表示路徑文件中的屬性,如果有它會(huì)覆蓋第一步讀取的屬性值
3、最后讀取 parameterType 傳遞的屬性值,它會(huì)覆蓋已讀取的同名的屬性
前面兩步好理解,第三步我們可以舉個(gè)例子來(lái)看:
我們?cè)?userMapper.xml 文件中進(jìn)行模糊查詢
這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)無(wú)論你后臺(tái)傳給這個(gè)查詢語(yǔ)句什么參數(shù),都是 select * from user where username like '%root%'
mybatis 的別名配置
在 userMapper.xml 文件中,我們可以看到resultType 和 parameterType 需要指定,這這個(gè)值往往都是全路徑,不方便開(kāi)發(fā),那么我們就可以對(duì)這些屬性進(jìn)行一些別名設(shè)置
1、mybatis 默認(rèn)支持的別名
2、自定義別名
一、定義單個(gè)別名
首先在全局配置文件 mybatis-configuration.xml 文件中添加如下配置:是在
第二步通過(guò) user 引用
二、批量定義別名
在全局配置文件 mybatis-configuration.xml
文件中添加如下配置:是在
標(biāo)簽下
關(guān)于Properties在MyBatis 中的作用是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。