如何解决尽管连接随后关闭,但 JDBC 结果集和语句是否必须单独关闭?
你所做的是完美的,非常好的练习。
我说它的好习惯的原因......例如,如果由于某种原因您正在使用“原始”类型的数据库池并且您调用connection.close()
,则连接将返回到池中并且ResultSet
/Statement
将永远不会关闭,然后您会遇到很多不同的新问题!
所以你不能总是指望connection.close()
清理。
我希望这有帮助 :)
解决方法
使用后关闭所有 JDBC 资源据说是一个好习惯。但是如果我有以下代码,是否需要关闭Resultset和Statement?
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = // Retrieve connection
stmt = conn.prepareStatement(// Some SQL);
rs = stmt.executeQuery();
} catch(Exception e) {
// Error Handling
} finally {
try { if (rs != null) rs.close(); } catch (Exception e) {};
try { if (stmt != null) stmt.close(); } catch (Exception e) {};
try { if (conn != null) conn.close(); } catch (Exception e) {};
}
问题是连接的关闭是否可以完成这项工作,或者它是否会留下一些资源在使用中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。