微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-此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?

解决方法:

该语句在被垃圾回收时将自动关闭,但是如果要在使用完资源后立即释放它们,则需要显式关闭它.

但是请注意,反向操作确实有效.也就是说,关闭语句也会关闭与之关联的ResultSet.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐