Java 如何关闭().executeUpdate?

Java 如何关闭().executeUpdate?,java,sql,jdbc,Java,Sql,Jdbc,我想知道,如何在JAVA(JDBC)中关闭executeUpdate语句 例如: String sql = "UPDATE. .. . .. Whatever..."; ResultSet rs = stmt.executeQuery(sql); rs.close(); 但我不能这样做来更新。所以我在谷歌上搜索发现我需要使用executeUpdate,但是之后如何关闭语句呢 String sql = "UPDATE. .. . .. Whatever..."; int rs = stmt.

我想知道,如何在JAVA(JDBC)中关闭executeUpdate语句

例如:

String sql = "UPDATE. .. . ..  Whatever...";
ResultSet rs = stmt.executeQuery(sql);
rs.close();
但我不能这样做来更新。所以我在谷歌上搜索发现我需要使用executeUpdate,但是之后如何关闭语句呢

String sql = "UPDATE. .. . ..  Whatever...";
int rs = stmt.executeUpdate(sql);
rs.close(); ??? <------
String sql=“更新……无论什么…”;
int rs=stmt.executeUpdate(sql);

rs.close() 您不关闭
执行更新
,而是关闭
语句

rs.close();   // Closes the ResultSet
stmt.close(); // Closes the Statement
通常最好使用以下方法:

try with resources将为您关闭
语句
结果集
。它是在Java7中添加的(2011年)



旁注:您已经展示了您正在使用
语句
并调用
executeUpdate(String)
。只要SQL中没有外部来源的信息(您没有从用户输入或其他系统收到任何信息,等等),就可以了。不过,在更常见的情况下,您可能希望使用
PreparedStatement
,调用
setXyz
来设置参数,然后调用
executeUpdate()
(零参数版本)。这个习惯可以防止SQL注入。此有用站点上的更多解释和示例:。

大多数情况下,当您更新表格时,您不会得到结果集
ResultSet
,因此无需关闭
ResultSet


只需关闭
语句

,即OP正在使用JDK 7及更高版本(它支持自动关闭
@BuhakeSindi:是的,我要提到这一点。我希望人们正在使用JDK 7或更高版本,因为它已经存在好几年了。好的,谢谢。所以每次我执行stmt.execute或更新之后,我都必须关闭stmt吗?因为我一直重复使用stmt,直到最后,然后我连接了stm.close()@Nicky:不,当您完成
语句时,您将关闭
语句。请注意,在任何给定时刻,
语句
实例上只能打开一个
结果集
,因此在重用
语句
获取另一个之前,请确保已完成第一个(或者不要重用
语句
对象,我认为重用它没有任何真正的好处)。
String sql = "UPDATE. .. . ..  Whatever...";
try (
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
) {
    // Process results
}