首頁 >資料庫 >mysql教程 >為什麼我的 Java 應用程式在插入資料時拋出 MySQLSyntaxError 異常?

為什麼我的 Java 應用程式在插入資料時拋出 MySQLSyntaxError 異常?

Barbara Streisand
Barbara Streisand原創
2024-11-02 02:32:301090瀏覽

Why Does My Java Application Throw a MySQLSyntaxError Exception When Inserting Data?

帶有有效語句的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn