gpt4 book ai didi

java - JDBC连接是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 05:11:54 24 4
gpt4 key购买 nike

我有一个项目,其中使用 HikariCP 进行 JDBC 连接池。 HikariCP 非常适合我的需求。它还记录池的统计信息,如下所示。

2014-12-03 10:16:08 DEBUG HikariPool:559 - Before cleanup pool stats loginPool (total=8, inUse=0, avail=8, waiting=0)
2014-12-03 10:16:08 DEBUG HikariPool:559 - After cleanup pool stats loginPool (total=7, inUse=1, avail=7, waiting=0)

出于实验目的,我使用 MySQL Workbench 关闭了已配置数据库的所有 MySQL 连接。但是,我仍然看到 HikariCP 像以前一样记录统计信息,尽管没有与数据库的实际连接。当有连接请求时,它立即建立连接(初始 8 个),因此一切正常。

所以,我的问题是如何管理或实现这些连接?我认为 HikariCP 记录统计信息的原因就像存在连接一样,是因为它在内存中具有对连接的有效引用,而这些连接实际上不存在(对于数据库)。

我的理解正确吗?

最佳答案

当您使用 MySQL Workbench 关闭连接时,您正在服务器端关闭它们。在 JDBC(客户端)端,先前建立的连接将保持存在,直到客户端代码尝试使用它们。到那时,就会发现它们已经“ splinter ”了;即客户端在尝试使用它们时会遇到异常。

客户端 JDBC Connection 对象仅在 Java 应用程序代码将其返回到连接池时才会关闭或回收。

关于java - JDBC连接是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com