mybatis+spring 整合項目報錯Mapped Statements collection does not contain value for test.findUserByName

mybatis+spring 整合項目報錯Mapped Statements collection does not contain value for test.findUserByName

仍舊是照着書敲都有好多錯誤,實在是無法理解爲什麼。

以下是我百度看了很多博客的解決方法:

1、mapper.xml中沒有加入namespace; 

2、mapper.xml中的方法和接口mapper的方法不對應; 
3、mapper.xml沒有加入到mybatis-config.xml中(即總的配置文件);

4、mapper.xml文件名和所寫的mapper名稱不相同。

我的項目是maven和spring整合的,所以上面的解決方法是無效的。

這個問題糾結了一個下午,所以一個下午都在百度上看解決方法,看了很多博客,不記得是哪一篇博客給我的啓發了,maven項目部署之後運行的是target裏面的代碼,於是去檢查我的target裏面的test-class,裏面果然沒有mapper,所以就是其實我的UserMapper.xml一直沒有被部署上去。

按照百度的經驗,首先檢查build path是否是如圖:


如果不是可能要檢查pom.xml中是否有以下代碼

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

        </resources>

如果加上這段代碼後還是報同樣的錯誤,或許你跟我遇到的是一樣的問題。

因爲我是照着書上敲的,書上的mapper包是放在src/test/java中的,我也放在這裏面,但是不管怎樣都沒有被部署上去。或許是eclipse的原因,或許是其他原因,總之mapper.xml放在這裏面就部署不上去,於是我把它放到了src/test/resource下面,然後就部署上去了。

mapper.xml放在哪裏應該是有規定的,但是由於我是“半路出家”,所以對於這些並不是很熟悉,只能一個坑一個坑的去挖然後去跳。

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