Invalid bound statement (not found): mapper
时间: 2025-01-01 07:33:47 浏览: 9
### 解决 MyBatis 中 `Invalid bound statement (not found)` 错误
#### 原因分析
`Invalid bound statement (not found)` 的错误通常意味着MyBatis无法找到指定的SQL语句。这可能由多种因素引起:
- **Mapper接口和XML文件名称不匹配**:如果Mapper接口的名字与相应的XML配置文件名字不符,则可能导致此问题[^2]。
- **路径设置不当**:资源加载器未能正确识别并加载包含SQL映射的XML文件,可能是由于包扫描路径设定有误所致[^1]。
#### 解决策略
为了有效处理上述提到的各种情况,可以采取如下措施来修正该类异常:
##### 验证命名一致性
确保所有的Mapper接口与其对应的XML文件具有相同的名称,并放置在同一目录下或遵循Spring Boot默认约定的位置结构中。例如,对于名为`UserMapper.java`的接口而言,其关联的映射文档应当命名为`UserMapper.xml`,并且两者位于同一级文件夹内[^3]。
##### 检查资源配置
确认项目的构建工具(如Maven)已将`.xml`文件设为可被编译输出到classpath下的资源项之一;另外还需保证application.properties/yml里的`mybatis.mapperLocations`属性指定了正确的查找位置以便于自动发现这些外部定义好的查询脚本。
```properties
# application.yml example
mybatis:
mapper-locations: classpath*:mappers/**/*.xml
```
##### 排除IDE干扰
有时开发环境本身也会带来一些麻烦——特别是当使用某些特定版本的IntelliJ IDEA时可能会遇到大小写敏感度差异的问题。因此建议清理项目缓存、重启IDE后再尝试重新部署应用看是否能解决问题。
---
阅读全文