invalid bound statement常见原因

开发中使用mybaitis常遇见错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误

按以下步骤一一执行:
1:检查xml文件所在的package名称是否和interface对应的package名称一一对应
2:检查xml文件的namespace是否和xml文件的package名称一一对应
3:检查函数名称能否对应上
4:去掉xml文件中的中文注释
5:随意在xml文件中加一个空格或者空行然后保存
如果是spring集成,有个参数需要注意





上面红色这块classpath中mapper的路径必须与你定义的mapper接口包名一致,如果包名不一致,也会出现上面 的错误,你跟代码发现Mapper接口加载了,但是方法加载不进去,主要是xmlMapperConfiguration解析 的问题,你要是包名不一致就使用mybatis-config.xml,然后将mapper文件加入Mappers节点中

 还有就是你的mapper接口定义使用的dao结尾,但是你配置的是*Mapper.xml自然这种情况加载不进去的

参考:http://ljhzzyx.blog.163.com/blog/static/38380312201412453629988/

欢迎加入QQ交流学习群513650703一起交流学习

你可能感兴趣的:(java,spring)