Bard SqlGrammarException异常产生原因及解决方案

悠悠 2024-02-18 10:04 190阅读 0赞

## 01 异常发生场景

- 当我使用mybatis-plus的时候,发现mybatis-plus重写的接口无法正常调用

```
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘id’ in ‘field list’
### The error may exist in com/mashang/demo/mapper/ProductMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,product_name,category_id,product_title,product_intro,product_picture,product_price,product_selling_price,product_num,product_sales,create_by,create_time,update_by,update_time,remark FROM product
### Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘id’ in ‘field list’
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column ‘id’ in ‘field list’
```

## 02 异常的产生及其原因

- 其实日志的报错已经把问题很明显的暴露出来了
- 这是一个sql语句问题,重点就在这一句java.sql.SQLSyntaxErrorException: Unknown column ‘id’ in ‘field list’
- 问题出在数据库表和Java中对应类的属性名不匹配

## 03 解决方式

- 最简单的方式就是把数据库里的表名或者Java的类名改了就可以
- 但是通过查阅官方文档,我发现另一种解决方式

```java
@TableField(“nickname”)//数据库内这条数据的列名是nickname
private String name;
/*
通过配置注解,只要在需要属性名不同的地方配置@TableField,并使()内值与数据库内列名相同即可.
*/
```

发表评论

表情:
评论列表 (有 0 条评论,190人围观)

还没有评论,来说两句吧...

相关阅读