问题场景:
在SpringMVC项目中,通过mapper接口加载映射文件,完成数据库的操作。
问题描述
报错:Invalid bound statement (not found):
原因分析:
1、xml文件的namespace不正确
2、XxxMapper.java的方法在XxxMapper.xml中没有,运行则会报此错误
3、XxxMapper.java的方法返回值是List,但是没有正确配置ResultMap,或者只配置ResultType
4、XxxMapper.java文件和XxxMapper.xml没有在一个文件夹下面
5、mapper接口中的方法名和mapper.xml中的id标签不一致
解决方案:
1>认真检查xml文件的namespace是否写对了,XxxMapper 接口必须要和 XxxMapper.xml 文件同名且在同一个包下,也就是说 UserMapper.xml 文件中的namespace是UserMapper接口的全类名
2>检查接口文件中的方法是否在.xml文件中都写出来了
3>查看接口的返回类型、参数类型和xml文件中的有没有对应
4>查看文件路径是否在同一个下面
5>UserMapper接口中的方法名和 UserMapper.xml 文件中定义的 id 一致
**
但是使用以上方法后并没有解决我的问题,最终发现通过在pom.xml文件中配置开启过滤,成功解决问题!
在pom.xml文件中(注意:是在标签下)加入以下代码
**
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
问题解决!