Java closeOnCompletion不';在MySQL JDBC 5.1.32中不能正常工作
我有这样一个片段:Java closeOnCompletion不';在MySQL JDBC 5.1.32中不能正常工作,java,mysql,jdbc,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(stateme
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后,我希望语句被关闭,因为它的结果集是关闭的。但是,在检查语句.isClosed()时,它只显示“false”
我误解jdk文档了吗?正如它所说:closeOnCompletion()指定在关闭所有依赖结果集时关闭此语句
===========================
更新:
原来是我的粗心。最后一条语句实际上返回预期的“true”结果。所以,这不再是一个问题,因为声明取决于结果,我建议这样做
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM table_A");
rs.close();
statement.close();
System.out.println(statement.isClosed());
如果您最终想要关闭语句,如果您的问题是为什么即使调用onexit语句也不关闭,那么最好参考javadocs。您不必在
.executeQuery()
之前调用.closeOnCompletion()
?对不起,我在实际代码中检查结果时犯了错误。当checkin语句.isClosed()时,它实际上显示“true”