[英]MySQL JDBC closeOnCompletion has no effect on PreparedStatement
[英]closeOnCompletion doesn't work properly in MySQL JDBC 5.1.32
我有一個這樣的代碼段:
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之后,由於該語句的結果集已關閉,我希望該語句將被關閉。 但是,它在檢查statement.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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.