springboot整合mybatis-plus报:Invalid bound statement (not found)

本文解决了一个关于SpringBoot项目中整合MyBatis-Plus时出现的BindingException问题,原因是依赖引入错误。文章提供了正确的依赖配置。

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

     搭建springboot整合mybatis-plus报:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zoro.products.mapper.ProductsDao.selectById,原因pom文件依赖引入错误

错误依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

解决方法:替换依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.2</version>
        </dependency>

 

### MyBatis-Plus 中 `selectList` 方法出现 `Invalid bound statement (not found)` 错误的解决方案 当在使用 MyBatis-Plus 的过程中遇到 `Invalid bound statement (not found)` 异常时,通常意味着框架未能正确识别或加载 SQL 映射语句。以下是几种常见的原因及其相应的解决措施: #### 检查 Mapper 接口与 XML 文件的一致性 确保 `Mapper` 接口中定义的方法名称以及参数类型与对应的 `.xml` 配置文件内的 `<select>` 或其他标签完全匹配。如果存在不一致,则可能导致找不到绑定语句的问题[^1]。 ```java // 正确的做法是保持接口方法签名和XML中的ID相同 public interface UserMapper extends BaseMapper<User> { @Select("SELECT * FROM user WHERE deleted=0") List<User> selectNotDeletedUsers(); } ``` #### 确认命名空间设置无误 验证 `mapper.xml` 文件里的 `namespace` 属性是否指向了正确的 Java 类路径下的 `Mapper` 接口全限定名。任何拼写错误都会引起此类问题[^4]。 ```xml <!-- mapper.xml --> <mapper namespace="com.example.mapper.UserMapper"> <!-- ... --> </mapper> ``` #### 核实资源文件位置及打包方式 确认项目结构中包含了必要的映射文件,并且这些文件能够在编译后的目标目录 (`target`) 下被正确复制。对于 Maven 项目来说,可能需要调整插件配置来确保 XML 资源能够被打包进去。 ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` #### 添加适当依赖并清理构建缓存 有时缺少某些特定版本的库也可能引发此问题;因此建议检查项目的依赖管理工具(如 Maven 或 Gradle),确保已引入最新版的 MyBatisMyBatis-Plus 库。另外,在做出更改后执行一次完整的 clean build 可能有助于解决问题。 ```bash mvn clean install ``` #### 实体类注解校验 最后还需注意实体类上的注解应用情况,特别是像 `@TableId` 这样的字段级注解,它们用于指示主键列的信息。虽然这并不是直接造成上述异常的原因之一,但在调试期间仍然值得检查一遍以排除潜在隐患。 通过以上几个方面的排查工作,应该可以有效地定位并修复 `Invalid bound statement (not found)` 错误的发生根源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值