在C3P0的使用过程中,如果想实时获取连接池的状态,可通过以下方法。
ComboPooledDataSource主要使用这个类的方法获取状态
如果你是用DataSource这个接口来接收的,那么,请先强转为
ComboPooledDataSource
;
例子:
Connection connection = null;
try {
connection = dataSource.getConnection();
ComboPooledDataSource cp = (ComboPooledDataSource) dataSource;
System.out.println(cp.getMaxPoolSize());// 最大连接数
System.out.println(cp.getMinPoolSize());// 最小连接数
System.out.println(cp.getNumBusyConnections());// 正在使用连接数
System.out.println(cp.getNumIdleConnections());// 空闲连接数
System.out.println(cp.getNumConnections());// 总连接数
connection.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
connection.close();
}