closeOnCompletion在MySQL JDBC 5.1.32中无法正常工作

时间:2014-10-27 08:47:18

标签: java mysql jdbc

我有一个这样的片段:

Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM table_A");

statement.closeOnCompletion();
System.out.println(statement.isCloseOnCompletion());

rs.close();
System.out.println(statement.isClosed());

在调用closeOnCompletion之后,我希望语句关闭,因为它的结果集已关闭。但是,它只显示" false"在检查statement.isClosed()。

我误解了jdk doc吗?如下所示:closeOnCompletion()指定在关闭所有相关结果集时关闭此Statement。

=========================== 更新: 原来是我的粗心大意。最后一个语句实际上返回了预期的结果" true"。所以它不再是一个问题

1 个答案:

答案 0 :(得分:2)

由于Statement取决于结果,我建议

Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM table_A");

rs.close();
statement.close();  
System.out.println(statement.isClosed());

如果您的最终要求是关闭语句,如果您的问题是为什么语句即使在调用onexit时也没有关闭,那么这是适用的,那么更好地引用javadocs。