gpt4 book ai didi

java - Connection.close 与 PooledConnection.close

转载 作者:行者123 更新时间:2023-11-29 09:18:58 27 4
gpt4 key购买 nike

我正在阅读 Java Data Access — JDBC、JNDI 和 JAXP,了解 Connection、PooledConnection 接口(interface)。据我了解, PooledConnection 返回的 Connection 表示“逻辑”连接。 PooledConnection - 本身代表“物理”。它们在关闭方面有什么区别?

Calling the close() method on a standard Connection object closes the physical connection. In contrast, calling the close() method on a logical Connection object returns the logical connection to the pool for other clients to use.

  1. 我的第一个问题是:我应该调用 PooledConnection.close() 吗?如果我是对的,我不想关闭物理连接,我只想检查(释放它)到它的池的物理连接。

  2. 第二个问题:我不明白为什么我需要对 PooledConnection.getConnection() 返回的对象调用 Connection.close()

  3. 如果您查看示例:PooledConnection example仅调用 Connection.close() 方法,但不调用 PooledConnection.close()。请发表评论。

  4. 根据官方文档:PooledConnection.close PooledConnection 实际上关闭了此 PooledConnection 对象表示的物理连接。但据我所知,连接池主要(主要目的之一) - 保持物理连接,而不关闭/创建它。根据文档,如果我运行 PooledConnection.close() 那么连接池将不得不重新创建它。你能不能也评论一下。

谢谢。

最佳答案

PooledConnection 通常只被容器直接使用,用于管理连接池。如果您正在编写一个容器或将提供与将完成实际工作的其他代码/库的连接的东西,您只需要处理这些。

JDBC 客户端使用标准的 java.sql.Connection 对象,用于实际执行数据库工作。此代码不应触及 PooledConnection,并且将由容器(例如 Java EE 容器或通过依赖项注入(inject))为其提供连接,或者将自己从 DataSource 或 DriverManager 创建连接。

关于java - Connection.close 与 PooledConnection.close,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720864/

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