我如何关闭().executeUpdate?

时间:2016-05-11 07:30:07

标签: java sql jdbc

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

例如:

String sql = "UPDATE. .. . ..  Whatever...";
ResultSet rs = stmt.executeQuery(sql);
rs.close();

但是我无法更新。所以我用Google搜索并发现我需要使用executeUpdate但是如何在之后关闭语句?

String sql = "UPDATE. .. . ..  Whatever...";
int rs = stmt.executeUpdate(sql);
rs.close(); ??? <------

2 个答案:

答案 0 :(得分:5)

你不能关闭executeUpdate,关闭Statement

rs.close();   // Closes the ResultSet
stmt.close(); // Closes the Statement

通常最好使用try-with-resources statement

String sql = "UPDATE. .. . ..  Whatever...";
try (
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
) {
    // Process results
}

try-with-resources将为您关闭StatementResultSet。它是在Java 7(2011年)中添加的。

附注:您已经证明您正在使用Statement并致电executeUpdate(String)。只要SQL中没有外部来源的信息(您从用户输入或其他系统接收的任何信息等),那就没问题了。但是,在更常见的情况下,您希望使用PreparedStatement,调用setXyz来设置参数,然后调用executeUpdate()(零参数版本)。这种习惯可以防止SQL注入。有用网站上的更多解释和示例:http://bobby-tables.com/

答案 1 :(得分:1)

大多数情况下,当您更新表时,结果都没有ResultSet,因此无需关闭ResultSet

关闭Statement