Example usage for org.apache.commons.dbcp PoolableConnectionFactory PoolableConnectionFactory

List of usage examples for org.apache.commons.dbcp PoolableConnectionFactory PoolableConnectionFactory

Introduction

In this page you can find the example usage for org.apache.commons.dbcp PoolableConnectionFactory PoolableConnectionFactory.

Prototype

public PoolableConnectionFactory(ConnectionFactory connFactory, ObjectPool pool,
        KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout,
        Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation,
        String defaultCatalog, AbandonedConfig config) 

Source Link

Document

Create a new PoolableConnectionFactory.

Usage

From source file:org.apache.cayenne.conf.CustomDBCPDataSourceBuilder.java

private ObjectPool createConnectionPool() {

    ConnectionFactory factory = createConnectionFactory();
    GenericObjectPool.Config poolConfig = createConnectionPoolConfig();
    KeyedObjectPoolFactory statementPool = createPreparedStatementPool();

    String validationQuery = config.getString(VALIDATION_QUERY);
    boolean defaultReadOnly = config.getBoolean(READ_ONLY, false);
    boolean defaultAutoCommit = config.getBoolean(AUTO_COMMIT, false);
    int defaultTransactionIsolation = config.getTransactionIsolation(TRANSACTION_ISOLATION,
            Connection.TRANSACTION_SERIALIZABLE);
    String defaultCatalog = config.getString(CATALOG);

    String initSql = config.getString(INIT_SQL);
    List<String> initSqls = null;
    if (initSql != null && !initSql.isEmpty()) {
        initSqls = new ArrayList<String>();
        initSqls.add(initSql);//from w  ww  .  j  a  va 2  s .co  m
    }

    ObjectPool connectionPool = new GenericObjectPool(null, poolConfig);

    // a side effect of PoolableConnectionFactory constructor call is that newly
    // created factory object is assigned to "connectionPool", which is
    // definitely a
    // very confusing part of DBCP - new object is not visibly assigned to
    // anything,
    // still it is preserved...
    new PoolableConnectionFactory(factory, connectionPool, statementPool, validationQuery, initSqls,
            defaultReadOnly ? Boolean.TRUE : Boolean.FALSE, defaultAutoCommit, defaultTransactionIsolation,
            defaultCatalog, null);

    return connectionPool;
}