Как вернуть соединение в c3p0

Я использую c3p0 - ComboPooledDataSource. Я инициализирую один раз, как показано ниже.

private void init() {
cpds = new ComboPooledDataSource();
cpds.setDriverClass(driverName);
cpds.setJdbcUrl(url);
cpds.setUser(userName);
cpds.setPassword(pwd);
}

Я получаю соединение из пула, как показано ниже

public synchronized Connection getLocalConnection(String ipAddr)
    throws SQLException {
return cpds.getConnection();
}

Но я не уверен, вернем ли его путь обратно к пулу, когда я закончу выполнение запроса. Я думаю,

conn.close()

просто возвращает соединение обратно в пул вместо ДЕЙСТВИТЕЛЬНОГО ЗАКРЫТИЯ соединения. Правильно ли я, или есть другой способ? Помощь Pls.

Ответ 1

Это инициализирующий код

private DataSource init() {

    DataSource unpooled = DataSources.unpooledDataSource(DB_URL, DB_USERNAME, DB_PASSWORD);

    Map<String, Object> overrideProps = new HashMap<String, Object>();

    overrideProps.put("maxPoolSize", MAX_POOL_SIZE);
    overrideProps.put("minPoolSize", MIN_POOL_SIZE);

    return DataSources.pooledDataSource(unpooled, overrideProps);
}

И вы получаете соединение с DataSource.

public Connection getConnection() throws SQLException {
    return dataSource.getConnection();
}

И чтобы закрыть соединение, просто вызовите метод close().

connection.close();