首页 >Java >java教程 >为什么我在 Java 中使用PreparedStatement 时会收到''?'附近的 MySQL 语法错误”?

为什么我在 Java 中使用PreparedStatement 时会收到''?'附近的 MySQL 语法错误”?

Susan Sarandon
Susan Sarandon原创
2024-12-11 15:43:11344浏览

Why Am I Getting a

执行PreparedStatement时MySQL语法错误:“You Have an Error in Your SQL Syntax”

使用PreparedStatement执行查询时,用户可能会遇到“MySQLSyntaxErrorException 靠近“?””错误。此错误表示 SQL 查询中存在语法错误。

在此特定问题中,代码尝试使用 '?`占位符替换查询参数,但PreparedStatement 未正确替换这些占位符。

问题在于executeQuery() 方法调用。该代码通过调用 s.executeQuery(query) 而不是 s.executeQuery() 用原始查询覆盖准备好的查询。应使用无参数的executeQuery()方法来执行准备好的查询。

PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);        
rs = s.executeQuery(); // Correct

此外,由于未关闭的连接、语句和结果集,代码可能会泄漏资源。应在finally块中关闭资源以防止资源耗尽。

try {
  ...
} finally {
  if (rs != null) rs.close();
  if (s != null) s.close();
  if (conn != null) conn.close();
}

以上是为什么我在 Java 中使用PreparedStatement 时会收到''?'附近的 MySQL 语法错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn