报错信息
Invalid bound statement (not found)
出现这种问题就是mapper文件无法和mapper接口映射,如果不是用maven构建,就可能是以下原因:
- mapper接口应该和mapper.xml在同级目录
- mapper.xml的namespace对应mapper接口带包名
- mapper.xml配置的语句标签的id和mapper接口的方法名不对应,还有入参和输出参数也须和方法的参数和返回结果对应
- 在mybatis主配置文件配置<mappers>在这里扫描mapper.xml</mappers>
但是呢,用maven构建的话以上问题都不存在还是报错解决方法
mapper配置文件和接口文件虽然在同一层,但是Maven编译项目的时候只会把src/main/java下所有的*.java和src/main/resources里的文件编译放入target/classes文件夹,所以位于src/main/java下的xml文件就被忽略了。此时只需要在项目的pom文件中加入resources,把src/main/java下所有的*.xml也编译放入target/classes然后启动项目就可以了。
如图:
代码:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
注意:本文归作者所有,未经作者允许,不得转载