Mybatis绑定错误的原因及其解决整理

本文介绍了在使用Maven整合Spring、SpringMVC及MyBatis过程中出现的BindingException错误及其解决办法。主要原因是Mapper接口与XML文件不匹配及打包时mapper文件未正确复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


(项目开发某天,遇到这个错误,很郁闷找了几个小时才有解决)


在使用Maven整合Spring + SpringMVC + MyBatis项目的时候项目的时候报以下错误


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文件中加一个空格或者空行然后保存


原因二:(我是这个原因)

在使用IDEA开发时,打包时,mapper没有自动复制到响应位置,也会出错。

maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到target\classes下面,但是现实我们可能

会在src/main/java下面也放置一些配置文件如hibernate配置文件或mybatis mapper配置文件等,如果不做一些额外配置,那我们打包后的项目可能找

不到这些必须的资源文件,因此在pom.xml中增加类似如下配置:

	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
	</build>


这是我目前找到的解决方法,如果还有可以在下面留言。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值