【发布时间】:2011-12-04 23:20:14
【问题描述】:
我正在阅读Java Data Access—JDBC, JNDI, and JAXP 关于Connection, PooledConnection 接口的信息。据我了解,PooledConnection 返回的Connection 代表“逻辑”连接。 PooledConnection - 本身代表“物理”。他们在关闭方面有什么区别?
在标准 Connection 对象上调用 close() 方法会关闭 物理连接。相反,调用 close() 方法 逻辑连接对象返回连接池的逻辑连接 供其他客户使用。
我的第一个问题是:我应该调用 PooledConnection.close() 吗?如果我是对的,我不想关闭物理连接,我只想检查物理连接(以释放它)到它的池。
第二个问题:我不明白为什么需要在
PooledConnection.getConnection()返回的对象上调用Connection.close()如果您查看示例:PooledConnection example 仅调用
Connection.close()方法,但不调用PooledConnection.close()。请发表评论。根据官方文档:PooledConnection.closePooledConnection实际上关闭了这个PooledConnection对象所代表的物理连接。但据我了解,连接池的主要(主要之一)目的 - 保持物理连接,而不关闭/创建它。根据文档,如果我运行 PooledConnection.close() 那么连接池将不得不重新创建它。你也可以评论一下吗?
谢谢。
【问题讨论】:
标签: java jdbc connection connection-pooling