2010-05-06 101 views
0

可以在單個ResultSet中使用兩個查詢結果集問題

+0

你能解釋一下你想完成什麼嗎?我假設你想UNION兩個差異查詢合併結果集 – 2010-05-06 06:17:59

+0

您可能需要在這裏給我們一個簡單的例子... – ninesided 2010-05-06 06:18:40

回答

2

結果集對應於單個SQL查詢。但是,您的「單個」查詢可以使用UNION來有效地組合多個查詢。

+1

或子查詢;) – Bozho 2010-05-06 06:27:56

0

不,你不應該這樣做。 例如

ResultSet rs = null; 
Statement stmt1 = con.createStatement("Query1"); 
Statement stmt2 = con.createStatement("Query2"); 
rs = stmt1.executeQuery(); 
while(rs.next()){ 
} 
//Here result set should be closed before assigning new result set to "rs" variable like 
stmt1.close(); 
rs.close(); 
rs = stmt2.executeQuery(); 

您應該在再次使用它之前關閉舊的結果集。如果你不關閉舊的resultset對象,那麼它將在內存中並且永遠不會被垃圾收集。 如果在這種情況下關閉數據庫連接對象(沒有正確關閉結果集),那麼當連接具有引用(即未關閉結果集)時,連接對象不會被垃圾收集(未重新分配給池)。