Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘*****‘
目录
问题如下:
"\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'user_photo_url' in 'field list'\r\n### The error may exist in com/iot/mapper/UserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n
### SQL: SELECT id,name,user_photo_url,del_flag FROM user WHERE id=? AND del_flag='0'\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'user_photo_url' in 'field list'\n; bad SQL grammar []"
总的问题直接描述
记得将跟项目相关的数据删除
数据库表 user中不存在 user_photo_url字段,但你的 SQL 查询语句中却包含了该字段,导致数据库无法识别并抛出语法错误
这个错误的原因是:**数据库表 `user` 中不存在 `user_photo_url` 字段**,但你的 SQL 查询语句中却包含了该字段,导致数据库无法识别并抛出语法错误。
具体分析
从错误信息中的 SQL 语句可以看到,查询时尝试获取 `user_photo_url` 字段: ```sql SELECT ..., user_photo_url, ... FROM user WHERE ... ``` 但数据库提示 `Unknown column 'user_photo_url' in 'field list'`,说明这个字段**并未实际添加到数据库表中**。
解决步骤
1. **确认字段是否已成功添加到数据库** 登录数据库,执行以下 SQL 检查表结构: ```sql -- 查看表的字段列表 DESC user;
-- 或查询表结构详情 SHOW CREATE TABLE user; ``` 如果结果中没有 `user_photo_url`,说明之前的 `ALTER TABLE` 语句未成功执行。
2. **重新执行添加字段的 SQL** 再次执行正确的添加字段语句(确保成功执行): ```sql ALTER TABLE user ADD COLUMN user_photo_url VARCHAR(255) NULL COMMENT '注释'; ``` 执行后,通过步骤 1 的命令确认字段已添加。
3. **检查实体类与数据库字段的映射** 确保实体类 `user` 中已定义这个字段,且没有被 `@TableField(exist = false)` 标注(否则 MyBatis-Plus 会忽略该字段):
```java public class user{
// 其他字段...
// 新增的字段(确保没有 @TableField(exist = false))
private String user_photo_url; // 注意驼峰命名与数据库下划线命名的映射(MyBatis-Plus 默认支持)
4. **刷新/重启项目** 确保项目重新加载最新的数据库表结构和实体类定义,避免缓存导致的问题。
关键注意点
数据库字段名是 `user_photo_url`(下划线命名),实体类中通常用驼峰命名 `userPhotoUrl`,MyBatis-Plus 会自动映射(无需额外配置)。 - 如果执行 `ALTER TABLE` 时提示错误,需先解决字段添加失败的问题(如权限不足、表名错误等)。 完成以上步骤后,查询时就不会再出现“未知字段”的错误了。
更多推荐


所有评论(0)