2017-10-16 75 views
1

當準備好的語句到達時,我的程序停止運行,但我不確定爲什麼,因爲完全相同的語法適用於另一個表(產品,有9個值)。準備好的語句拋出的SQL異常

僅供參考訂單存在,並且有6列

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

這是一個try/catch塊內,顯然我這個語句後設置的值,但它是在準備好的聲明中表示,拋出異常。

語法錯了嗎?或者這是否意味着即使我附加的圖片顯示它,表格並不存在?

Screenshot from Sqlite Studio

+2

'Order'是一個SQL保留字,所以這可能是你的問題的一部分.. .. – WillardSolutions

回答

1

order是SQL的保留字。如果你想使用它作爲一個表名,你需要逃避它(用雙引號周圍):

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

哇,woops。謝謝! – Jesse