返回到文章

采纳

编辑于

java获取C3P0连接池当前的状态

java
java_shares

在C3P0的使用过程中,如果想实时获取连接池的状态,可通过以下方法。

  1. ComboPooledDataSource主要使用这个类的方法获取状态

  2. 如果你是用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();
}