我发送给Apifox是http://localhost:9002/goods/getByUserName?name=张三 为什么会是500哪里错了?
[UserMapper](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L14-L17) 接口中的 [getByUserName](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\U
{ "timestamp": "2025-10-02T11:04:25.374+0000", "status": 500, "error": "Internal Server Error", "message": "Invalid bound statement (not found): com.daqin.demo251001.mapper.UserMapper.getByUserName", "path": "/goods/getByUserName" }我发送给Apifox是http://localhost:9002/goods/getByUserName?name=张三 为什么会是500哪里错了?
## 错误分析
根据错误信息 `Invalid bound statement (not found): com.daqin.demo251001.mapper.UserMapper.getByUserName`,这是一个MyBatis绑定异常,表示找不到对应的SQL语句。
## 可能原因及解决方案
### 1. Mapper XML文件位置或命名问题
- 确保 [UserMapper.xml](file://D:\SUM\代码\demo251001\target\classes\generator\mapper\UserMapper.xml) 文件位于正确目录:`src/main/resources/mapper/`
- 文件名必须与Mapper接口名一致:[UserMapper.xml](file://D:\SUM\代码\demo251001\target\classes\generator\mapper\UserMapper.xml)
### 2. XML文件中缺少SQL定义
在 [UserMapper.xml](file://D:\SUM\代码\demo251001\target\classes\generator\mapper\UserMapper.xml) 中添加 [getByUserName](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L16-L16) 方法对应的SQL语句:
```xml
<select id="getByUserName" parameterType="string" resultType="com.daqin.demo251001.vo.GoodsMsgVo">
SELECT * FROM user WHERE name = #{name}
</select>
```
### 3. 检查Mapper接口与XML的匹配
确保以下几点:
- [UserMapper](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L14-L17) 接口中的 [getByUserName](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L16-L16) 方法签名与XML中定义一致
- XML文件的 `namespace` 属性值为 [com.daqin.demo251001.mapper.UserMapper](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L14-L17)
- XML中 `<select>` 标签的 [id](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\domain\User.java#L14-L15) 属性值为 [getByUserName](file://D:\SUM\代码\demo251001\src\main\java\com\daqin\demo251001\mapper\UserMapper.java#L16-L16)
### 4. 检查MyBatis配置
确认 [application.yml](file://D:\SUM\代码\demo251001\src\main\resources\application.yml) 中的MyBatis配置正确:
```yaml
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
```
完成以上检查和修改后重启应用,问题应该能够解决。
更多推荐
所有评论(0)