mybatis+springmvc:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

在springmvc和mybatis整合开发的过程中,遇到了org.apache.ibatis.binding.BindingException: Invalid bound statement (xxx not found)这样的错误。从字面上理解这个错误很容易,就是不合法的方法和语句,也就是没找到xxx所对应包下接口中定义的方法。这个错误原因很多,有可能是很多种情况导致Mapper interface和xml映射文件的定义对应不上。

这里应该按照一定的顺序去检查自己写的代码,否则很难检查出自己的错误。

这里编辑器是eclipse。用idea开发可能还有mapper打包的问题,不详细去说。

按以下步骤一一执行:

1:检查xml文件所在的package名称是否和interface对应的package名称一一对应

2:检查xml文件的namespace是否和xml文件的package名称一一对应

3:检查函数名称能否对应上

4:去掉xml文件中的中文注释

5:随意在xml文件中加一个空格或者空行然后保存(我就是这里错误,好像不加回车和空格缓存就有问题)

一般来说到此就可以排除错误了


这里去说一下我的错误:


没加空格的映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.BookMapper">
	<select id="find" parameterType="string" resultType="Entity.Book">
		select * from Book where name like #{pattern}
	</select>
</mapper>

加了换行的映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.BookMapper">
	<select id="find" parameterType="string" resultType="Entity.Book">
		select * from Book where name like #{pattern}
	</select>
	
	
</mapper>

其实真的只是两个回车,一个报错,一个不报错。略感神奇!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值