gpt4 book ai didi

java - JDBC连接池管理

转载 作者:行者123 更新时间:2023-11-30 04:38:38 25 4
gpt4 key购买 nike

我正在使用org.apache.commons.dbcp.BasicDataSource作为我的数据源实现,我的代码获取连接并关闭连接,如下所示:

Connection conn = dataSource.getConnection();

当我完成连接工作时,我将关闭它

conn.close();

我的问题是:conn.close()非常接近,因此当连接关闭时,如 conn.close() ,数据源做得怎么样。我听说数据源连接关闭并不是真正关闭,只是释放,但我无法从数据源类中找到释放API。我想知道datasource如何管理数据库连接的创建、关闭和释放。

顺便问一个小问题:数据源如何刷新连接,我的意思是如果数据源的连接一年没有使用,数据源如何保持连接可用?

最佳答案

DataSource ( javax.sql.DataSource ) 表示可以从中获取数据库连接的抽象概念。

所以,DataSource本身没有定义如何管理连接的任何细节,以及 DataSource 的不同实现可以通过不同的方式管理连接:

  • 简单的实现(例如 Spring 的 DriverManagerDataSource )可能会在每次请求时创建一个新连接,在本例中 close()实际上关闭连接。

  • 由连接池(例如 Apache DBCP 或 c3p0)支持的实现会从池中返回现有连接。 Connection这种实现返回的对象是一个代理,其 close()方法被重写以将连接返回到池而不是关闭它。

如果您想了解连接池如何准确地管理连接,请查看 documentation of your connection pool implementation .

关于java - JDBC连接池管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818385/

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