当前位置: 首页 > 知识库问答 >
问题:

关闭语句是否足够好,还是必须关闭每个resultset?

阎功
2023-03-14

我们有一个java应用程序,我们使用多个语句变量。为什么需要多个语句的问题是,有时在为循环内的一个结果运行循环时,我们需要执行其他一些查询操作。大多数地方,单一的stmt被使用了很多次,最后我们关闭。现在我们要确认的是,我们没有关闭resultset变量,我们注意到内存的使用情况会波动。那么,在得到结果后立即关闭resultset的最佳机制是什么,还是在结束时关闭stmt之前关闭resultset呢?

共有1个答案

龙学
2023-03-14

当您使用完它时关闭它,就像任何其他资源一样。我的观点是保持它更长时间,尤其是如果你要测量内存,这意味着内存问题。

 类似资料:
  • 问题内容: 我刚刚开始将自己的持久性框架迁移到JPA。 鉴于持久性框架隐藏了很多问题,我想知道不关闭EntityManagers是否会造成资源泄漏,或者框架是否会为我收集并关闭它们。 我打算在所有地方关闭它们,但是我必须关闭吗? 目前使用TopLink只是因为它可以轻松地与NetBeans一起使用,但是很高兴调查其他JPA提供程序。 问题答案: 这取决于您如何获得它。 如果使用EntityMana

  • 想改进这个问题吗?更新问题,以便通过编辑这篇文章用事实和引用来回答。 我在玩Java*流API,在Lagecy系统中有以下代码: 我编写了与上述代码等价的流,如下所示: 无论哪种方式,我都得到了想要的结果。我的问题是,在这种情况下,哪种性能方面是更好的写作方式?如果我选择其中任何一个而不是另一个,我实际上是否获得了任何价值?地图中包含大约 1000 个值。

  • 问题内容: 我知道Java中的安全模式是在finally块中依次关闭ResultSet,Statement和Connection。 如果您关闭连接,然后尝试关闭语句(不抛出异常)。但是,如果您尝试从语句中调用任何方法,则会引发异常。 我想知道关闭连接是否会自动关闭从该连接创建的所有语句对象? 更新: 我正在使用DatabaseProductVersion:Oracle Database 11g版本

  • 问题内容: 我使用的是用这样的: 我只关门了。我是否还需要关闭()? 问题答案: 不,您只需要关闭最外面的流。它将一直委托给包装的流。 但是,您的代码包含一个概念上的失败,应该在中发生关闭,否则当代码在打开和关闭之间引发异常时,它永远不会关闭。 例如 (请注意,我更改了代码以 引发 异常,以便您了解问题的原因,该异常即包含有关问题原因的详细信息) 或者,当您已经在使用Java 7时,也可以使用AR

  • 我知道Java中的安全模式是在finally块中按顺序关闭结果集、语句和连接。 若您关闭连接,然后尝试关闭语句(不引发异常)。但若您试图从语句中调用任何方法,则会引发异常。 我想知道关闭连接是否会自动关闭所有由该连接创建的语句对象? 更新:我正在使用DatabaseProductVersion:Oracle Database 11g Release 11.1.0.0.0驱动程序名称:Oracle

  • 我有一个使用SpringLDAP 1.3.1的应用程序。它在启动时在Spring上下文中创建LdapTemplate,并将其传递给我的应用程序。我连接的LDAP字符串实际上是一个VIP设备,后面有多个Active Directory服务器。 该应用程序用于创建组层次结构,并分几个步骤进行。首先,它创建任何新组,然后删除任何删除的组,然后更新和更改组,最后更新任何新组或移动组的父级。 在最后一步中,