JDBC中为什么要关闭连接?如果我们不这样做,会发生什么

2024-05-07

在java中与数据库通信,我们经常遵循以下步骤:

  1. 加载驱动程序
  2. 建立连接
  3. 创建声明或PreparedStatement
  4. get the ResultSet
  5. 关闭连接

我很困惑我们应该关闭连接,都说创建连接很昂贵,所以为什么我们不能这样做:

static
    {
        try
        {
            connection = DriverManager.getConnection(connectorURL,
                    user, password);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

我们只需创建一个连接作为单例,并在任何地方使用它。不可以吗?如果我这样使用它,会发生什么?

如果我不关闭连接,会发生什么?

另外,我们将使用连接池,它会在池中创建一些连接,并且我们从池中获取连接,池中的连接也不会关闭,为什么如果我们不使用池,我们需要遵循步骤并关闭连接(如果我们不使用)?

很混乱,不知道原理是什么。请帮我。谢谢。


如果我们不关闭连接,就会导致连接内存泄漏。在应用程序服务器/Web 服务器关闭之前,即使用户注销,连接也将保持活动状态。

还有其他原因。假设数据库服务器有 10 个可用连接,并且有 10 个客户端请求该连接。如果数据库服务器授予所有这些连接,并且在使用它们之后没有关闭它们,则数据库服务器将无法为另一个请求提供任何其他连接。因此,我们需要关闭它们——这是强制性的。

此外,它可能会导致一些有关数据库完整性的恶作剧活动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC中为什么要关闭连接?如果我们不这样做,会发生什么 的相关文章

随机推荐