在预准备语句中抛出SQL异常

时间:2017-10-16 19:47:09

标签: sql sqlite syntax runtime-error

关于我准备好的语句的某些内容在达到此行时会停止我的程序,我不知道为什么,因为完全相同的语法适用于另一个表(Product,有9个值)。

FYI订单存在且有6列

PreparedStatement statement = 
    connection.prepareStatement("INSERT INTO Order VALUES (?, ?, ?, ?, ?, ?)");

这是在一个try / catch块中,显然我在这个语句之后设置了值,但它是在准备好的语句中抛出异常。

语法是否有问题?或者这是否暗示表格不存在,即使我附上的图片显示它?

Screenshot from Sqlite Studio

1 个答案:

答案 0 :(得分:1)

order是SQL中的保留字。如果要将其用作表名,则需要将其转义(通过用双引号括起来):

PreparedStatement statement = 
    connection.prepareStatement("INSERT INTO \"Order\" VALUES (?, ?, ?, ?, ?, ?)");