mysql error, springframework.jdbc.BadSqlGrammarException: I got the error msg, couldn't find why

426 views Asked by At

I got the error.

org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'order (productId, address, productName, price, imageUrl) VALUES ('000', 'address' at line 1
### The error may involve Order.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO order (productId, address, productName, price, imageUrl) VALUES (?, ?, ?, ?, ?)
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'order (productId, address, productName, price, imageUrl) VALUES ('000', 'address' at line 1
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'order (productId, address, productName, price, imageUrl) VALUES ('000', 'address' at line 1
    at 

I looked at my xml as the error log told me.

<insert id="insert" parameterType="com.whiuni.fastshop.vo.OrderVO">
        INSERT INTO order (productId, address, productName, price, imageUrl) VALUES (#{productId}, #{address}, #{productName}, #{price}, #{imageUrl})
</insert>

Could anyone tell me what the error is? Thank you

1

There are 1 answers

1
Joakim Danielson On BEST ANSWER

order is a reserved word in mysql, change the table name or surround it with single-quotes

INSERT INTO 'order' (productId, address, productName, price, imageUrl) ...