记录一次让人无语至极的bug
有一张表order,字段也很简单,主键id(id),用户id(uid),商品id(gid),创建时间(create_time)等:
我用的是mybatisplus的insert()方法进行插入操作:
// 插入
Order order = Order.builder()
.gid(gid)
.uid(uid)
.build();
int insert = orderMapper.insert(order);
看起来这么简单的操作,那一定没啥问题,插入成功呗~~
然鹅!
// 报错了,错误语法
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 ( id,
uid,
gid,
create_time ) VALUES ( '1650676127472807937',
'17',
'16' at line 1
我特地拿到了这条sql去数据库执行:
结果也是报错:
然后…然后我发现 好像表名称是mysql的关键字order…
抱着试一试的态度,将表名改为orders==
就解决了该报错…
经验教训:尽量不要用mysql的关键字来做表名或列名!