引入mybatisplus报错:Invalid bound statement (not found)

本文介绍了在Spring Boot项目中,由于同时引入MyBatis和MyBatis-Plus导致的报错问题及其解决方法。问题关键在于配置冲突,解决方式是删除MyBatis-Spring-Boot-Starter的依赖,并将配置文件中的MyBatis配置改为MyBatis-Plus的配置。同时,文章强调了Mapper接口的namespace与XML文件的package名称、ResultMap配置以及Mapper XML配置路径的正确设置。

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

这个问题一般都是因为以下原因引起的

1.检查xml文件所在package名称是否和Mapper interface所在的包名

mapper.xml中的namespace要和mapper接口路径一致

<mapper namespace="com.zjlovelt.mapper"> 

2. mapper接口的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType!

3.看下mapper的XML配置路径是否正确

@MapperScan(value = "com.zjlovelt.mapper") 是配置mapper接口
#映射mapper的位置,和dao层接口对应,一定要对应mapper映射xml文件的所在路径
mybatis-plus.mapper-locations=classpath:mapping/*.xml 是配置mapper.xml

我的问题是因为之前用的mybatis-spring-boot-starter,后来又引用了mybatis-plus-boot-starter导致报这个错的

解决方法:删掉pom中mybatis-spring-boot-starter的配置,把配置文件中的mybatis配置统统改为

#springboot整合mybatis的配置
#指定实体类位置,在mapper中就不用写全路径
mybatis-plus.type-aliases-package: com.zjlovelt.entity
#映射mapper的位置,和dao层接口对应,一定要对应mapper映射xml文件的所在路径
mybatis-plus.mapper-locations=classpath:mapping/*.xml
# 配置打印 SQL 语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

直接是mybatis,要改成mybatis-plus

### 解析 'Invalid bound statement (not found)' 错误 当在使用 MyBatis-Plus 进行开发时,如果遇到 `Invalid bound statement (not found)` 错误,通常意味着框架无法找到对应的 SQL 映射语句。此问题可以由多种原因引起。 #### XML 配置路径不正确 一种常见原因是 Mapper 接口关联的 XML 文件路径设置有误。确保资源目录下的映射文件位置与项目结构相匹配非常重要。例如,在 Maven 项目的默认布局中,XML 文件应放置于 `src/main/resources` 下对应包名的子目录内[^4]。 ```xml <!-- 正确的XML文件路径 --> <mapper namespace="com.example.mapper.UserMapper"> <!-- SQL statements here --> </mapper> ``` #### Mapper 类定义缺失泛型参数 另一个潜在问题是 Mapper 接口中未指定实体类作为泛型参数。这会阻止 MyBatis-Plus 自动识别并绑定相应的 POJO 到 Mapper 上。因此,应当确认所有的自定义 Mapper 继承 BaseMapper<T> 并指定了具体的 T 实体类型[^5]。 ```java // 确认Mapper接口继承BaseMapper并且带有具体类型的泛型参数 public interface UserMapper extends BaseMapper<UserEntity> { } ``` #### 数据源配置冲突或多数据源场景中的特殊处理 对于涉及多个数据源的应用程序来说,可能存在由于上下文切换不当而导致某些操作指向了错误的数据源实例的情况。此时需仔细检查 Spring Boot 或其他容器内的多数据源注册逻辑以及事务管理器配置,保证每次调用都能准确无误地定位到目标库连接[^1]。 #### 检查依赖版本兼容性 最后也需要注意所使用的 MyBatis 和 MyBatis-Plus 版本之间的兼容关系,有时升级其中一个而忘记同步更新另一个也可能引发此类异常行为。 通过以上几个方面逐一排查,应该能够有效解决大多数情况下发生的 "Invalid bound statement (not found)" 报错现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunon_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值