org.apache.ibatis.binding.BindingException【原因汇总】
来源:互联网 发布:基金买卖模拟软件 编辑:程序博客网 时间:2024/05/13 04:50
这个问题整整纠结了我四个多小时,心好累啊。。。不废话。。。
背景:Spring整合Mybatis
报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
解释:就是说,你的Mapper接口,被Spring注入后,却无法正常的使用mapper.xml的sql;
这里的Spring注入后的意思是,你的接口已经成功的被扫描到,但是当Spring尝试注入一个代理(MyBatista实现)的实现类后,却无法正常使用。这里的可能发生的情况有如下几种;
- 接口已经被扫描到,但是代理对象没有找到,即使尝试注入,也是注入一个错误的对象(可能就是null)
- 接口已经被扫描到,代理对象找到了,也注入到接口上了,但是调用某个具体方法时,却无法使用(可能别的方法是正常的)
当然,我们不好说是那种情况,毕竟报错的结果是一样的,这里就提供几种排查方法:
- mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
比如,接口名是NameMapper.java;对应的xml就应该是NameMapper.xml
- mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?
比如,你接口的包名是com.abc.dao,接口名是NameMapper.java,那么你的mapper.xml的namespace应该是com.abc.dao.NameMapper
- 接口的方法名,与xml中的一条sql标签的id一致
比如,接口的方法List<User> findAll();那么,对应的xml里面一定有一条是<select id="findAll" resultMap="**">****</select>
- 如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType
- 最后,如果你的项目是maven项目,请你在编译后,到接口所在目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的<build></build>里面,加这么一段:
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources>
我就是坑在了第5点上,折腾了四个多小时,大家及时发现。
2 0
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException【原因汇总】
- org.apache.ibatis.binding.BindingException原因总结
- org.apache.ibatis.binding.BindingException
- org.apache.ibatis.binding.BindingException
- mybatis 异常:org.apache.ibatis.binding.BindingException
- 异常之org.apache.ibatis.binding.BindingException
- 关于一些mybatis异常的原因:org.apache.ibatis.binding.BindingException: Parameter 'status' not found.
- 出现 org.apache.ibatis.binding.BindingException 异常的原因及解决方法
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- Spring整合MyBatis错误:org.apache.ibatis.binding.BindingException
- org.apache.ibatis.binding.BindingException: Parameter 'set' not found
- PHP中单引号和双引号的区别
- 安卓handler机制和RunOnUi方法都能修改主线程,两者的区别
- 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容
- WEB-注意事项
- hdu 1231, dp ,maximum consecutive sum of integers, find the boundaries, possibly all negative, C++
- org.apache.ibatis.binding.BindingException【原因汇总】
- 微服务架构成功之路
- POJ-1046
- 普通美国人的词汇量
- win7旗舰版下怎么配置ODBC数据源
- Web前端和后端之区分
- Android 开发工具有哪些?
- VC程序调用MATCOM导致进程不自动结束的解决办法
- VC 在对话框中使用定时器