解决问题:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
在使用springboot集成mybatis时,可能会遇到这个问题。
出现这个问题的原因一般是:
-
Mapper interface和xml文件的定义对应不上(需要检查包名,namespace)
-
函数名称等能否对应不上(需要比较细致的对比,经常就写错了一两个字母搞的很长时间找不到错误)
解决的思路一般是:
-
检查xml文件所在的package名称是否和interface对应的package名称一一对应
-
检查xml文件的namespace是否和xml文件的package名称一一对应
-
检查函数名称能否对应上
-
去掉xml文件中的中文注释
-
随意在xml文件中加一个空格或者空行然后保存
因为它可能是因为 xml文件的编译问题。
可以对比下编译前和编译后的文件。
确定是 没有将xml文件编译进去,那怎样解决呢?
-
解决方式一:把*Mapper.xml文件放到resource文件夹下管理
-
解决方式二:在pom.xml中的build的标签中加入以下内容:
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <filtering>true</filtering> </resource> </resources>
参考:https://www.jianshu.com/p/2bd1e5313b66