`

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集成,有个参数需要注意
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="miscDataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="typeAliasesPackage" value="com.share.wm.product.model"></property>
<property name="mapperLocations" value="classpath*:com/share/wm/product/mapper/*Mapper.xml"/>
</bean>

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

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

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics