Invalid bound statement (not found) SpringBoot Mybatis 解决

本文详细解析了MyBatis中常见的Invalidboundstatement错误,总结了多种可能的原因,包括配置问题、命名不一致、类型不匹配等,并提供了具体的解决策略。

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

本次问题最终解决

查了很多资料,下面转载几乎是最全的一份资料,但仍未找到原因。最终对比现有项目结构,发现最终问题:由于Mybatis在自动生成model,mapper,和xml文件时,并未将mapper和xml配置在同一个包下,从而导致无法找到xml文件。解决办法,Mybatis的generator.config文件中配置在同一包下。或者再生成文件后,手动调整

一、说明

造成MyBatis报Invalid bound statement (not found)错误有很多种,主要原因就是xxxMapper.java与xxxMapper.xml没有正确绑定。没有正确绑定的原因有很多种,所以导致有些人在网上百度查询到别人的博客上写的解决方法之后却无法解决自己的问题,在此作一些方法总结。

二、错误产生原因及解决方法

2.1 映射xxxMapper.xml文件未被扫描

如果你使用的是Maven构建的项目,那么因为maven默认只是加载src/main/resources目录下的配置文件,并不会主动加载src/main/java下的配置文件。如果你的Mybatis映射xml文件是与接口文件放在同一目录下的话,就必须在pom.xml文件中加以上以下配置:

  1. <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
  2. <build>
  3. <resources>
  4. <resource>
  5. <directory>src/main/java</directory>
  6. <includes>
  7. <include>**/*.properties</include>
  8. <include>**/*.xml</include>
  9. </includes>
  10. <filtering>false</filtering>
  11. </resource>
  12. </resources>
  13. </build>

2.2 接口名称与xml映射文件名称不一致

请检查你的的xxxMapper.java文件与xxxMapper.xml文件名称是否一致;

2.3xml映射文件中的namespace配置错误

namespace必须等于接口的完整类名


2.4 xml映射文件中的select/delete/update/insert等标签的id值与接口中的方法名称不一致

2.5xml映射文件中的select/delete/update/insert等标签的parameterType的值与接口中的方法的参数的类型不一致



2.6 xml映射文件中的select/delete/update/insert等标签的resultMap的type或resultType与接口中的方法的返回参数的类型不一致

2.7xml映射文件中的select/delete/update/insert等标签中的databaseId的值在spring配置文件中未找到



以上整理的错误产生的原因并不全,以后再发生此问题如果不是以上收集的几点时我会再作补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值