MyBatis配置项--properties
?properties
這些屬性都是可外部配置且可動(dòng)態(tài)替換的,既可以在典型的java屬性文件中配置,也可以通過properties元素的子元素來傳遞。例如:
?
| <properties resource="org/mybatis/example/config.properties"> ? <property name="username" value="dev_user"/> ? <property name="password" value="123456"/> </properties> |
?
?
?
?
?
?
然后其中的屬性就可以在整個(gè)配置文件中被用來替換需要?jiǎng)討B(tài)配置的屬性值。比如:
?
| <dataSource type="POOLED"> ? <property name="driver" value="${driver}"/> ? <property name="url" value="${url}"/> ? <property name="username" value="${username}"/> ? <property name="password" value="${password}"/> </dataSource> |
?
?
?
?
?
?
?
?
這個(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); ? // ... or ... ? SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, props); |
?
?
?
?
?
?
?
?
如果屬性在不止一個(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)值。例如:
?
?
| <dataSource type="POOLED"> ? <!-- ... --> ? <property name="username" value="${username:ut_user}"/> <!-- If 'username' property not present, username become 'ut_user' --> </dataSource> |
?
?
?
?
?
?
這個(gè)特性默認(rèn)是關(guān)閉的。如果你想為占位符指定一個(gè)默認(rèn)值,應(yīng)該添加一個(gè)指定的屬性來開啟這個(gè)特性。例如:
?
| <properties resource="org/mybatis/example/config.properties"> ? <!-- ... --> ? <property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- Enable this feature --> </properties> |
?
?
?
?
?
?
提示,可以使用”:”作為屬性鍵(eg. db:username)或者可以在sql定義中使用OGNL表達(dá)式的三元運(yùn)算符(eg. ${tableName != null ? tableName : ‘global_constants’}),應(yīng)該通過增加一個(gè)指定的屬性來改變分隔鍵和默認(rèn)值的字符。例如:
?
| <properties resource="org/mybatis/example/config.properties"> ? <!-- ... --> ? <property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="?:"/> <!-- Change default value of separator --> </properties> |
?
?
?
?
?
?
| <dataSource type="POOLED"> ? <!-- ... --> ? <property name="username" value="${db:username?:ut_user}"/> </dataSource> |
轉(zhuǎn)載于:https://www.cnblogs.com/arrows/p/10335066.html
總結(jié)
以上是生活随笔為你收集整理的MyBatis配置项--properties的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nacos 发布 v0.8.0 Pre-
- 下一篇: 3.5 魔法方法