1. 报错信息
提示如下:
Caused by: java.sql.SQLException: sql injection violation, syntax error: error pos 18, line 1, column 12, token EXCEPT : insert into
1
2. 问题分析
之前遇到过类似的错误,提示也是sql injection violation,字面理解就是sql注入错误,也就是说sql不对。
经常性是因为一些列名被怀疑是sql注入被拒绝,但是此次搞了半天都没找到问题,直接懵逼。
3. 排除法
既然找不到问题,我就把sql精简只剩一列,即为insert into tablea (column1) values(null)形式,依然报错,说明那就不是列的问题,最后终于发现,是表名有问题。
4. 解决方案
不管三七二十一,如果以后报此类错误,直接把表名、列名两边添加反引号如下:
`tablename`