关闭BoneCP中的连接

时间:2014-09-10 17:52:34

标签: java jdbc connection-pooling bonecp

我们有BoneCP库来管理我们的连接池。我想知道以下语句是否会将连接返回池中。

statement = conn.createStatement();
....
lots of code.
....
Connection conn = statement.getConnection();
statement.close();
conn.close();

以上代码是否会关闭连接并将连接重新放回池中?

更新

我问这个问题,因为当我在连接池上运行统计信息时,我仍然看到conPool.getTotalLeased()显示正在使用2个连接。但是,我已经使用上述机制关闭了连接。

2 个答案:

答案 0 :(得分:1)

整个池的意义在于保持已建立的与数据库的连接。从池中检索连接时,可以节省连接数据库的时间。

你所看到的是拥有你们连接的游泳池,所以一切都很好。

当您关闭连接时,它只会返回到池中并标记为可供下次检索。

答案 1 :(得分:0)

是的,确实会将连接移回池中。从池中获取连接时出错,修复它,现在我没有看到totalLeased()方法中的2个连接。

我发现的错误

conPool.getConnection();  // loitering connection which we see in the getTotalLeased();
..
Statement st = conPool.getConnection().getStatement(); //we have handle to this connection.
return st;