回首我的代碼,我發現我occasionaly採寫:這個jdbc資源是關閉的嗎?
ResultSet rs = conn.createStatement().executeQuery("select * from main");
//snip
rs.close();
,有時我寫
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("Select * from main");
//snip
rs.close();
st.close();
在第二個代碼段,這是比較明顯的是,聲明是封閉的,但它是否在第一個關閉? conn.createStatement()返回一個語句對象,但是當它被實例化時,我沒有看到任何簡單的方法在完成後關閉它。我應該重寫代碼的各個位以使用方法#2嗎?
你確定所有'Statement's在垃圾收集時都關閉嗎? Javadoc沒有指定關於該類的'finalize()'方法的任何行爲。 –