日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis配置项--properties

發(fā)布時(shí)間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis配置项--properties 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。