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

在Java 8中释放open Connection

郎华皓
2023-03-14

我有一个基于JSP/Servlet的应用程序,数据库团队正在抱怨开放数据库连接的增加。我怀疑使用后连接没有关闭。

我想通过初始化try-catch块中的连接字符串来进行一些代码更改,如Java 8中所建议的那样

我已经尝试关闭连接在最后的块这是工作正常

这是我想要实现的代码,这能解决问题吗?有没有其他方法可以在使用后关闭打开的连接,只需很少的代码更改?

   try(Connection con =  DBConnectivity.openConnectionThread(); 
   PreparedStatement ps1 = con.prepareStatement(sql1)) {
   -----
     ------
    }

共有1个答案

刘兴修
2023-03-14

您应该关闭也准备语句

try(Connection con =  DBConnectivity.openConnectionThread();
     PreparedStatement ps1 = con.prepareStatement(sql1)) 
    {
   -----
     ------
    }
 类似资料:
  • 问题内容: 在以下示例中,我有一些有关内存使用的相关问题。 如果我在解释器中运行, 我的机器上使用的实际内存最高为80.9mb。那我 实际内存下降,但仅限于。解释器使用基线,因此不向 释放内存有什么好处?是否因为Python正在“提前计划”,以为你可能会再次使用那么多的内存? 它为什么特别释放- 释放的量基于什么? 有没有一种方法可以强制Python释放所有已使用的内存(如果你知道不会再使用那么多

  • 问题内容: 我建立了一个用于HTTP2的连接,我该怎么做才能释放客户端和使用的资源? 问题答案: 不需要任何特殊方法来释放“已用”资源。当它变得不可访问时,垃圾收集器将回收它使用的内存。 不存储连接或状态信息。该文档甚至指出应重用: 客户端的传输通常具有内部状态(缓存的TCP连接),因此应重新使用客户端,而不是根据需要创建客户端。客户端可以安全地被多个goroutine并发使用。 如果使用(例如,

  • 问题内容: 有没有一种类似于函数的释放Java内存的方法?还是将对象设置为null并依靠GC是唯一的选择? 问题答案: Java使用托管内存,因此分配内存的唯一方法是使用运算符,而释放内存的唯一方法是依靠垃圾回收器。 该内存管理白皮书(PDF)可能有助于解释发生了什么。 你还可以致电建议垃圾收集器立即运行。但是,Java Runtime做出最终决定,而不是你的代码。 根据Java文档, 调用gc方

  • 问题内容: 我在使用Java在Windows中删除文件时遇到一些问题。由于某种原因,java会锁定我的文件,但我不知道为什么。这是我的代码: file.delete()以及在资源管理器中手动尝试拒绝删除该文件,因为它仍在使用中。尽管在Linux中一切似乎都很好。 我在某处缺少close()吗?我可以确认首先使文件成为关闭文件的方法,因为我可以在使用file.delete()运行上述代码之前删除文件

  • 我们使用Jersey(2.22.2版)执行REST请求,使用ApacheConnectorProvider和PoolightTPClientConnectionManager管理连接池。 是否有办法从租赁连接列表中手动释放连接? PoolingHttpClientConnectionManager提供了关闭过期和空闲连接的方法,但这将从可用连接列表中关闭和删除连接,这不是我要找的。 我想这样做的原

  • 当从Oracle datasource获得连接时,我们使用appserver(weblogic/JBoss)特定的包装器将连接包装到Oracle连接,如下面所示。如果我们不包装它,我们将无法使用Oracle的特性,如ArrayDescriptors。我们应该改变我们的应用程序,使它们同时在weblogic和JBoss中工作。 java: 每当需要连接时,我们将像下面这样调用Datasource: