回首我的代码,我发现我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()'方法的任何行为。 –