[英]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.