天天看點

mybatis錯誤之配置檔案屬性配置問題

在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,如需轉載請自行聯系原作者