我正在尝试使用apache dbcp2来使用连接池。
我的maxTotal连接是5.我在使用它后关闭每个连接。
但是我仍然在从连接池关闭5个连接后获得连接。
在5个连接关闭后,它会ping数据库以获得连接吗?或者它将从连接池本身获得而不进行db。
以下是我的示例代码段。请更正我对连接池的理解。
BasicDataSource bds = getBasicDataSource();
System.out.println (bds.getMaxTotal()); // Prints - 5
for (int i=0; i<10; i++) {
conn = bds.getConnection();
System.out.println("Conn "+conn); // conn object printing different values for all 10 connections
conn.close();
}
答案 0 :(得分:0)
客户端从池中获取的连接实际上不是java.sql.Connection,它是java.sql.Connection的包装器(代理),用于自定义某些方法的行为。 close()方法是其中之一,不会关闭Connection实例,而是将其返回到池中。
尝试使用C3PO,从我的角度来看,它比DBCP更好。