问题描述
用Spring Boot 的save方法,往数据库的表 topic里保存一条数据,但报错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
矛盾点
controller 里面经过注释后只剩一句话topicRepository.save(topic);
检查前端和后端,没有发现问题,注解的使用也正确,但不知道为什么会发生这个问题?
问题解决
- 在前端发请求之前打印发现可以打印出要传递的值,在controller中save之前打印也是可以的,加上错误的提示,所以问题断定是出在了save 这一句上
- save的用法也是没有问题的 ,google 搜索错误,网上的答案是说SQL语句出了错,但我使用的是SpringBoot,没有手动写SQL语句,那么问题是哪了?
- 在网上看见了保留字一说,难道是我的表中有保留字。仔细检查表中的数据段,最有可能的就是"order"这个字段。搜索了一下,果然order是mysql 的保留字。
- 将order 改为orderNumber 问题解决
反思
- 设计时对数据库的保留字不熟悉,使用保留字作为列名
- 对数据库的常见错误不熟悉,看见这样的错误没有反应过来可能是什么样的错误
action
- 网上查找资料熟悉下mysql 的保留字
- 了解mysql 使用的常见误区