Mybatis出現Mapped Statements collection does not contain value錯誤解決方法

前言:
最近重新學習mybatis,用的工具是intelliJ idea ,寫dao實現類的方法調用數據庫時出現找mybatis對應的配置文件的方法。錯誤如下

       Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for test.findUserById
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for test.findUserById
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
    at mybatis.dao.UserDaoImpl.findUserById(UserDaoImpl.java:18)
    at OriginalDaoMybatis.main(OriginalDaoMybatis.java:25)
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for test.findUserById
    at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:853)
    at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:686)
    at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:679)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
    ... 4 more

Process finished with exit code 1

解決思路:

當然我們首先想到的是四點對應關係:
1、映射文件的命名空間必須和接口的路徑相同。對於寫具體實現的類話就是調用的時候方法前面加上namespace.
2、映射文件的配置方法名稱、輸入參數、返回參數要個類中的方法名稱、輸入參數、返回值完全一樣。
檢查我的代碼沒有啥問題。於是想到IntelliJ idea 是不是沒編譯XML文件啊。查看一下也編譯瞭如圖
這裏寫圖片描述
冥思苦想終於發現是這個映射器沒有加載上。如圖
這裏寫圖片描述
需要放開標註的那一段。

總結

因此解決Mapped Statements collection does not contain value整體思路爲
1、mabatis全局配置文件是否把映射器加載上。
2、查看全局配置文件以及mapper的xml文件是否已經編譯。
3、查看配置文件中的namespace是否和接口類相同。【查看實現類中調用方法是否加上namespace】
4、查看配置文件中配置的方法名稱、輸入值、返回值是否和接口中的完全一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章