我想知道,如何在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(); ??? <------
答案 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将为您关闭Statement
和ResultSet
。它是在Java 7(2011年)中添加的。
附注:您已经证明您正在使用Statement
并致电executeUpdate(String)
。只要SQL中没有外部来源的信息(您从用户输入或其他系统接收的任何信息等),那就没问题了。但是,在更常见的情况下,您希望使用PreparedStatement
,调用setXyz
来设置参数,然后调用executeUpdate()
(零参数版本)。这种习惯可以防止SQL注入。有用网站上的更多解释和示例:http://bobby-tables.com/。
答案 1 :(得分:1)
大多数情况下,当您更新表时,结果都没有ResultSet
,因此无需关闭ResultSet
。
关闭Statement
。