在mybatis的配置檔案SqlMapConfig.xml中,可以在開始的地方先加載一個properties節點,用來定義屬性變量。
然後可以在後面的節點中引用變量:
db.properties
SqlMapConfig
<a target="_blank"></a>
但是,這涉及到幾個問題,首先就是加載順序,後者的變量會覆寫先加載的?看教程是這樣說的:
properties特性:
注意:
MyBatis 将按照下面的順序來加載屬性:
在 properties 元素體内定義的屬性首先被讀取。
然後會讀取properties 元素中resource或 url 加載的屬性,它會覆寫已讀取的同名屬性。
最後讀取parameterType傳遞的屬性,它會覆寫已讀取的同名屬性。
建議:
不要在properties元素體内添加任何屬性值,隻将屬性值定義在properties檔案中。
在properties檔案中定義屬性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX
舉例來說:
在db.properties中定義了value=m
在mybat配置mapper裡,SqlMapConfig.xml中設定mapper檔案為:
3. 編寫接口:UserMapper.java
4. 配置UserMapper.xml
5. 編寫mapper代理測試用例UserMapperTest.java
5.結果:
6.分析:
可以看出,本來是根據使用者名查找使用者,輸入了使用者名為小軍,而實際上,系統讀取的使用者名為m.
也就是說,系統沒有讀取parameterType的值,或者被覆寫。
那麼,問題是,教程說最後讀取parameterType并覆寫、如果這樣,最後應該讀取的小軍才對。實際卻是m.順序有疑問了。
好吧,因為parameterType中并沒有這個值,是以沒有覆寫。
本文轉自Ryan.Miao部落格園部落格,原文連結:http://www.cnblogs.com/woshimrf/p/4828974.html,如需轉載請自行聯系原作者