我正在尝试使用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();
}发布于 2017-03-03 22:05:09
客户机从池中获得的连接并不是真正的java.sql.Connection,它是java.sql.Connection的包装器(代理),用于定制某些方法的行为。close()方法就是其中之一,它不关闭连接实例,而是将其返回到池中。
尝试使用C3PO,在我看来它比DBCP更好。
https://stackoverflow.com/questions/42579027
复制相似问题