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是否是如图:

mybatis+spring 整合项目报错Mapped Statements collection does not contain value for test.findUserByName_第1张图片

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

        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                false
            

        

如果加上这段代码后还是报同样的错误,或许你跟我遇到的是一样的问题。

因为我是照着书上敲的,书上的mapper包是放在src/test/java中的,我也放在这里面,但是不管怎样都没有被部署上去。或许是eclipse的原因,或许是其他原因,总之mapper.xml放在这里面就部署不上去,于是我把它放到了src/test/resource下面,然后就部署上去了。

mapper.xml放在哪里应该是有规定的,但是由于我是“半路出家”,所以对于这些并不是很熟悉,只能一个坑一个坑的去挖然后去跳。

你可能感兴趣的:(写程序遇到的坑,mybatis,mybatis+spring,mapper)