properties元素
<properties resource="org/mybatis/example/config.properties"> <property name="username" value="dev_user"/> <property name="password" value="F2Fa3!33TYyg"/> </properties>在整個配置文件中,這些屬性能夠被可動態替換(即使用占位符)的屬性值引用,例如:
<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource>示例中的username 和password 將會被替換為配置在properties 元素中的相應值。driver 和url 屬性則會被config.properties 文件中的相應值替換。這裡提供了大量的配置選項。 這些屬性也可以傳遞給sqlSessionFactoryBuilder.build()方法。例如:
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, props); // ... or ... SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment, props);
如果一個屬性存在於多個地方,MyBatis 將使用下麵的順序加載: •首先讀入properties 元素主體中指定的屬性。
然後會加載類路徑或者properties 元素中指定的url 的資源文件屬性。它會覆蓋前麵已 經讀入的重複屬性。
通過方法參數來傳遞的屬性將最後讀取(即通過sqlSessionFactoryBuilder.build),同樣也 會覆蓋從properties 元素指定的和resource/url 指定的重複屬性。
因此最優先的屬性是通過方法參數來傳遞的屬性,然後是通過resource/url 配置的屬性,最 後是在MyBatis 的Mapper 配置文件中,properties 元素主體中指定的屬性。