帶有有效語句的JDBC 報告MySQLSyntaxError 異常
在連接到MySQL 資料庫的Java 應用程式中,嘗試插入新資料時遇到到異常行放入表中。儘管在使用 MySQL Workbench 時成功執行了 INSERT 語句,但還是拋出了 MySQLSyntaxError 例外。
提供的程式碼是:
<code class="java">public static boolean aggiungiElem(String nome, GrafoGenerico g){ //... PreparedStatement sInserim=conn.prepareStatement(sqlCommandInserim); sInserim.setString(1, utente); sInserim.setString(2, nome); //sInserim.setObject(3,g); System.out.println(sInserim.toString()); sInserim.executeUpdate(sqlCommandInserim); sInserim.close(); return true; //... }</code>
異常的堆疊追蹤顯示以下內容:
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 '? , ? , DEFAULT , NULL )' at line 1
原因
原因原因
<code class="java">sInserim.executeUpdate(sqlCommandInserim);</code>
原因
<code class="java">sInserim.executeUpdate();</code>
此錯誤表示INSERT 語句中存在語法問題。然而,經檢查,該聲明似乎是有效的。
解決方案
問題在於以下行:此行嘗試執行原始SQL 字串,而不是使用設定值執行PreparedStatement 。執行PreparedStatement的正確方法是:其他注意事項除了這個特定問題之外,需要注意的是,如果PreparedStatements可能會發生資源洩漏沒有正確關閉。為了防止這種情況,建議使用finally區塊來關閉PreparedStatement以及其他資源,例如Connection、Statement和ResultSet。以上是為什麼我的 Java 應用程式在插入資料時拋出 MySQLSyntaxError 異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!