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中文网其他相关文章!