为什么要在ResultSet和Connection实例上调用close()?

为什么要在ResultSet和Connection实例上调用close()?,第1张

为什么要在ResultSet和Connection实例上调用close()?

这里有两个问题:

数据库连接

保持数据库连接打开会消耗数据库上的资源。它使用内存,并且数据库被配置为具有最大数量的连接,因此您增加了连接用尽的可能性。此外,会话的状态也得到维护,因此您可能会遇到意外锁定超出其预期范围的问题。

从积极的方面来说,准备好的语句将保持编译状态并可以使用,因此,如果您正确编码和使用SQL,则可以从重用准备好的语句中获得显着的性能收益。但是,这样做可能会使您的代码复杂化,建议您谨慎使用。

另外,获得连接非常昂贵,因此这就是存在连接池的原因。这些使连接保持打开状态,但是客户端获得连接,使用它们,然后在完成后将它们释放回池中。

结果集

保持结果集保持打开状态也可以使某些锁保持打开状态

commit
(先关闭结果集,然后关闭结果集),因此,根据您的应用程序,您可能会迅速遇到死锁或严重的活动问题。不管您是否保持连接打开状态,请始终尽快关闭结果集,以将尽可能多的资源释放回数据库。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5429545.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存