首頁 >資料庫 >mysql教程 >雖然 SQL 語句在 Workbench 中有效,為什麼我的 JDBC 程式碼會拋出 MySQLSyntaxError 例外?

雖然 SQL 語句在 Workbench 中有效,為什麼我的 JDBC 程式碼會拋出 MySQLSyntaxError 例外?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 06:27:03922瀏覽

Why is my JDBC code throwing a MySQLSyntaxError Exception even though the SQL statement works in Workbench?

JDBC 遇到具有有效語法的MySQLSyntaxError 異常

在探索JDBC 應用程式與MySQL 資料庫通訊時,開發人員可能會偶然發現可怕的MySQLSyntaxError 異常。有趣的是,同一條 INSERT 語句在 MySQL Workbench 中無縫執行,讓人感到困惑。

罪魁禍首在於 Java 程式碼中一個被忽略的細節:

<code class="java">sInserim.executeUpdate(sqlCommandInserim);</code>

這裡,開發人員無意中試圖執行原始 SQL 字串,其中包含佔位符 (?)。然而,對於一個PreparedStatement,只應該執行語句本身,而不需要參數。

要修正這個問題,請將上面的行替換為:

<code class="java">sInserim.executeUpdate();</code>

使用executeUpdate()方法而不需要參數確保PreparedStatement 使用設定的值執行。 executeUpdate(sqlString) 方法只能用於 Statement 物件。

順便說一下,透過在 finally 區塊中關閉PreparedStatement 來進行正確的資源管理至關重要。這可以防止發生異常時的資源洩漏,這種做法擴展到 Connection、Statement 和 ResultSet 物件。

以上是雖然 SQL 語句在 Workbench 中有效,為什麼我的 JDBC 程式碼會拋出 MySQLSyntaxError 例外?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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