spring boot报错:
2024-06-13T17:41:14.335+08:00 ERROR 7372 --- [dome] [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='可口可乐',description='碳酸饮料',price=3.5,stock=1004,category_id='饮' at line 1
### The error may exist in com/shangcheng/dome/dao/products/mapper/ProductMapper.java (best guess)
### The error may involve com.shangcheng.dome.dao.products.mapper.ProductMapper.update-Inline
### The error occurred while setting parameters
### SQL: UPDATE productsSET name=?,description=?,price=?,stock=?,category_id=?WHERE id=?
### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='可口可乐',description='碳酸饮料',price=3.5,stock=1004,category_id='饮' at line 1
; bad SQL grammar []] with root cause
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='可口可乐',description='碳酸饮料',price=3.5,stock=1004,category_id='饮' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.27.jar:8.0.27]
报错的代码是:
@Update("UPDATE products" +
"SET name=#{name},description=#{description},price=#{price},stock=#{stock},category_id=#{category_id}" +
"WHERE id=#{id}")
报错原因:经过我的细心发现原来是,products后面少了一个空格。
正确的写法:
@Update("UPDATE products " +
"SET name=#{name},description=#{description},price=#{price},stock=#{stock},category_id=#{category_id} " +
"WHERE id=#{id}")