You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot整合Mybatis遇Invalid bound statement (not found)错误求助

SpringBoot整合Mybatis出现Invalid bound statement (not found)的解决办法

问题分析

你遇到的Invalid bound statement (not found)异常,核心原因是Mybatis无法将Mapper接口方法与XML中的SQL语句绑定,结合你的配置文件来看,最直接的问题是Mybatis配置未生效,同时存在版本兼容性隐患。

具体修复步骤

1. 修复application.yml的Mybatis配置

你的application.yml中mybatis:被注释,导致所有Mybatis相关配置都未加载,Mybatis无法扫描到Mapper XML文件。修改后的配置如下:

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  • 添加classpath:前缀,确保Spring能正确定位到resources/mapper下的XML文件
  • 保持配置项的缩进正确,YAML语法对缩进敏感

2. 检查Mapper接口与XML的匹配性(已确认部分可跳过)

虽然你的配置中这部分看起来没问题,但仍需确认:

  • XML的namespace必须与Mapper接口的全限定类名完全一致(你的com.example.demo.mapper.UserMapper是正确的)
  • XML中SQL标签的id必须与Mapper接口的方法名完全一致(你的getAll匹配)
  • resultType使用别名时,实体类必须在type-aliases-package指定的包下(User需在com.example.demo包内)

3. 修复Mybatis与SpringBoot的版本兼容性

你使用的mybatis-spring-boot-starter:2.0.0适配SpringBoot 2.x早期版本,与当前SpringBoot 2.7.5存在兼容性问题,建议升级到适配2.7.x的版本:

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

验证操作

修改完成后,执行mvn clean compile重新编译项目,启动测试类,查看Mybatis的控制台日志,确认是否成功加载UserMapper.xml文件。

内容的提问来源于stack exchange,提问作者陈宇星

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:40:34