2016-05-18 51 views
0

我們使用完結果集後,通常我會做到以下幾點:的Java的ResultSet接近VS ResultSet中設置空

if(rs != null) 
    rs.close(); rs = null; 

什麼,我要問的是,通過設置結果集= NULL這樣的:

if(rs != null) 
    rs = null; 

是否等於設置rs.close()?最大光標還有可能發生嗎?

+0

不!這是不一樣的。你必須關閉它。我沒有得到第二個問題。 – UDKOX

+0

@Rudy不重複,我的問題是resultset set null與resultset close之間的區別,您附加的鏈接是我們需要關閉它的原因。 – hades

回答

1

是否等於設置rs.close()?最大光標還有可能發生嗎?

不,他們不一樣,只是null ing引用不會關閉數據庫上的資源。事實上,當參考超出範圍時,它是無法訪問的(因此null版)。所以沒有任何需要明確null的參考。此外,請注意,如果沒有大括號,您的null作業未附加到if

if (rs != null) { 
    rs.close(); 
} 
+0

不好意思,我打算把'rs = null;'與rs關在一行 – hades

+0

設置resultset爲null是減少GC的工作量嗎?我的意思是,我們可以釋放一點點內存,而不必等待參考超出範圍 – hades

+0

@hades號。這相當於讓變量超出範圍。它使其符合*符合GC(不一定調用GC)。 –