引用地址: 这位大哥写的很详细,就拿过来用了
IDEA org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
前言
在使用 IDEA 当作工具使用 Mybatis+Spring 时,总是能碰到 Eclipse 碰不到的“蛋疼问题”,这应该是属于 IDEA 的阵痛期,这个错我已经碰到4次了,而且每次原因还不太同。久病成良医,下一次应该不会再出现了,记录下解决办法,希望能帮到你,因为我已经在这个问题上浪费太多时间了。
情况
Mybatis+Spring 配置有好几种方法。最常用的应该是 Mapper
动态代理开发,但是动态代理配置也有两种。
一般使用第二种,本人也是使用第二种。如果第二种 首先有几点要确定。
- *Mapper.java 和 *Mapper.xml 命名是否一致
- 是否在一个包下,扫描能不能扫到 .xml。
- *Mapper.xml 的 namespace 配置是否准确,接口方法名是否准确。
以上都是 mybatis 的基本知识,当然第二点 可以不再同一个包下。很多种写法,可能有人喜欢将 *Mapper.xml 放在 resources
下。无所谓,只要能扫描到就可以了。
解决
- 删除编辑后的文件 class,然后
Rebuild
在运行。 - 如果上面方法不行,仔细找找在编译后的classes 中 *Mapper.xml 生成了没,如果没 那一定有问题。
我的项目结构是这样的,并且 *Mapper.xml 放在 java 中。这里就会有一个问题。
idea默认是不编译 src\main\java下的xml文件
所以这就需要我们手动配置下。
- 将 *Mapper.xml 复制一份到 resources 下,记得修改 mybatis 配置文件的路径。
- 在 pom.xml 中配置资源代码
src/main/java **/*.xml
ok 希望能帮到你。