org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):mapper路径

一、问题描述

使用springboot + mybatis的项目在本地可以正常运行,但当使用maven打包部署到远程服务器上时出现了映射错误,异常信息为:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.xdf.yn.api.mapper.ExamBasTestMapper.findByTestId

二、问题本质是mapper接口与对应的xml未映射上

可能情况:
1.mapper层的方法和mapper.xml中的方法不一样;
2.mapper中的namespace resultParameter 和对应的dao层entity层不一样
3.拼写错误 如漏写 少写 多写…

4.如果还报错,检查一下部署项目指定目录下有对应的xml文件吗(我的是属于这种情况)

  • war包里面缺少Mapper对应的xml文件,也就是没有把xml文件打包进去。
  • 解决办法是,在pom.xml文件中的build标签中添加如下代码,显示的强制将xml文件打到war包中:
		<!--解决 mapper接口与xml文件方法  映射问题 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>

			<resource>
				<directory>src/main/java</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.dll</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.so</include>
				</includes>
			</resource>
			<!-- 把xml文件所在的mapper文件夹丢进target/classes/包名/目录下 -->
			<resource>
		      <directory>src/main/java</directory>
		      <includes>
		         <include>**/*.xml</include>
		      </includes>
		      <!-- 是否替换资源中的属性-->
		      <filtering>false</filtering>
		    </resource>
		</resources>

最后,重新打包部署,启动测试OK !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值