新聞中心
屬性(properties)
這些屬性可以在外部進(jìn)行配置,并可以進(jìn)行動(dòng)態(tài)替換。你既可以在典型的 Java 屬性文件中配置這些屬性,也可以在properties元素的子元素中設(shè)置。例如:

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的龍馬潭網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
設(shè)置好的屬性可以在整個(gè)配置文件中用來替換需要?jiǎng)討B(tài)配置的屬性值。比如:
這個(gè)例子中的 ?username和 ?password將會(huì)由 ?properties元素中設(shè)置的相應(yīng)值來替換。 ?driver和 ?url屬性將會(huì)由 ?config.properties? 文件中對(duì)應(yīng)的值來替換。這樣就為配置提供了諸多靈活選擇。
也可以在 ?SqlSessionFactoryBuilder.build() ?方法中傳入屬性值。例如:
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, props);
// ... 或者 ...
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, props);如果一個(gè)屬性在不只一個(gè)地方進(jìn)行了配置,那么,MyBatis 將按照下面的順序來加載:
- 首先讀取在 ?
properties元素體內(nèi)指定的屬性。 - 然后根據(jù) ?
properties元素中的resource屬性讀取類路徑下屬性文件,或根據(jù)url屬性指定的路徑讀取屬性文件,并覆蓋之前讀取過的同名屬性。 - 最后讀取作為方法參數(shù)傳遞的屬性,并覆蓋之前讀取過的同名屬性。
因此,通過方法參數(shù)傳遞的屬性具有最高優(yōu)先級(jí),?resource/url? 屬性中指定的配置文件次之,最低優(yōu)先級(jí)的則是 ?properties元素中指定的屬性。
從 MyBatis 3.4.2 開始,你可以為占位符指定一個(gè)默認(rèn)值。例如:
這個(gè)特性默認(rèn)是關(guān)閉的。要啟用這個(gè)特性,需要添加一個(gè)特定的屬性來開啟這個(gè)特性。例如:
如果你在屬性名中使用了 ?":"? 字符(如:?db:username?),或者在 SQL 映射中使用了 ?OGNL表達(dá)式的三元運(yùn)算符(如:? ${tableName != null ? tableName : 'global_constants'}?),就需要設(shè)置特定的屬性來修改分隔屬性名和默認(rèn)值的字符。例如:
分享題目:創(chuàng)新互聯(lián)MyBatis教程:MyBatis3XML配置-屬性
文章鏈接:http://www.5511xx.com/article/dhhedes.html


咨詢
建站咨詢
