首页 > 代码库 > c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?

c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?

背景:

C3P0连接池

 jdbc.maxPoolSize=1
 jdbc.minPoolSize=1
 jdbc.initialPoolSize=1

 

Connection conn = dataSource.getConnection()

执行close方法后,connection就真的是关闭了而不是放回连接池里面待用。

网上找了下很多人都说使用连接池后,connection的close方法不是真正的关闭,只是放回池里待用。

我从来都喜欢追根究底,其实就是好奇心害死猫。所以也忍不住测试了。

第一次:

com.mchange.v2.c3p0.impl.NewProxyConnection@1a637d2 [wrapping: com.mysql.jdbc.JDBC4Connection@19ad782]

第二次:

com.mchange.v2.c3p0.impl.NewProxyConnection@434916 [wrapping: com.mysql.jdbc.JDBC4Connection@19ad782]

上面说法应该是正确的。

com.mysql.jdbc.JDBC4Connection@19ad782 是同一个对象,即同一个连接。

 

c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?