`

关于Connection的问题

阅读更多

最近在看Datasource时候想到,datasource是数据库厂商提供的,但connection是jdk提供的,那在Connection。close()时,是不是就不把这个connection放到缓冲池了 ?

问题解决:

大家可以查看jdk中javax.sql.PooledConnection这个接口的说明,其中有段是这样的:

  (1)。当应用程序调用 DataSource.getConnection 方法时,它取回 Connection 对象。如果连接池已完成,则该 Connection 对象实际上是到 PooledConnection 对象的句柄,这是一个物理连接。

 (2)。应用程序关闭连接时,它调用 Connection 方法 close。完成连接池时,连接池管理器将得到通知;因为它曾使用 ConnectionPool 方法 addConnectionEventListener 作为 ConnectionEventListener 对象注册它自身。连接池管理器释放到 PooledConnection 对象的句柄,并将 PooledConnection 对象返回到连接池,以便再次使用。因此,当应用程序关闭其连接时,基础物理连接会被回收而不是被关闭。

看到这些大家应该能明白了吧,下面给出其他相关文章的链接:

www.huihoo.org/j2ee/jdbc3.html

blog.chinaunix.net/u/20532/showart_217573.html

  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics