簡體   English   中英

Java-從同一個Statement對象創建多個ResultSet - 它會產生任何影響嗎?

[英]Java- creating multiple ResultSets out of same Statement object- will it have any effects?

我有一個從同一個Statement對象生成的2個ResultSet

代碼示例如下:

Connection con            = null;
Statement  stmt           = null;
ResultSet rs = null;

con = DBAccess.getConnection();
stmt = con.createStatement();

rs = stmt.executeQuery(Query1);
// operate on the resultset

rs = stmt.executeQuery(Query2);   // Is it legal and do not have side-effects?
// operate on the resultset

// close everythings (Resultset, Statement, Connection)

我檢查它運作良好。 我懷疑是否會有任何副作用?

來自javadoc

默認情況下,每個Statement對象只能同時打開一個ResultSet對象。 因此,如果讀取一個ResultSet對象與另一個ResultSet對象的讀取交錯,則每個ResultSet對象必須由不同的Statement對象生成。 Statement接口中的所有執行方法都隱式關閉一個statment的當前ResultSet對象(如果存在一個open對象)。

所以是的,你可以安全地做到。 執行第二個查詢后,您無法使用第一個結果集。

每個語句對象只有一個Resultset對象。 因此,當您執行另一個查詢時,它將在內部關閉現有的結果集對象並打開一個新的結果集對象。 但是您無法訪問以前的結果集obejct。

沒有副作用。 你可以隨意使用它。

請記住在使用相同的變量引用第二個結果集之前關閉第一個結果集。 如果僅在執行第二個語句后關閉結果集,則關閉第二個結果集,並且不關閉第一個結果集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM