PoolBackedDataSourceFactory (c3p0-0.9.5.5 API Documentation)
Date: 2019-12-11

com.mchange.v2.c3p0

## Class PoolBackedDataSourceFactory

- java.lang.Object
- - com.mchange.v2.c3p0.PoolBackedDataSourceFactory

- Deprecated.
  Use the new factories in `DataSources`. See examples.

      public final class PoolBackedDataSourceFactory
      extends java.lang.Object

  A class offering Factory methods for creating DataSources backed by Connection and Statement Pools.

- - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static javax.sql.DataSource` | `create(javax.sql.DataSource unpooledDataSource)` Deprecated. Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections and default values for pool params.
    `static javax.sql.DataSource` | `create(javax.sql.DataSource unpooledDataSource, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements)` Deprecated. Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections.
    `static javax.sql.DataSource` | `create(javax.sql.DataSource unpooledDataSource, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements, java.lang.String factoryLocation)` Deprecated. Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcUrl, java.lang.String user, java.lang.String password)` Deprecated. Creates a pool-backed DataSource using default pool parameters.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements)` Deprecated. Creates a pool-backed DataSource.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements, java.lang.String factoryLocation)` Deprecated. Creates a pool-backed DataSource.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password)` Deprecated. Creates a pool-backed DataSource using default values for pool parameters.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements)` Deprecated. Creates a pool-backed DataSource.
    `static javax.sql.DataSource` | `create(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements, java.lang.String factoryLocation)` Deprecated. Creates a pool-backed DataSource.
    `static javax.sql.DataSource` | `createReferenceable(javax.sql.DataSource unpooledDataSource, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements, java.lang.String factoryLocation)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createReferenceable(javax.sql.DataSource unpooledDataSource, java.lang.String factoryLocation)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createReferenceable(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements, java.lang.String factoryLocation)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createReferenceable(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, java.lang.String factoryLocation)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createSerializable(javax.sql.DataSource unpooledDataSource)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createSerializable(javax.sql.DataSource unpooledDataSource, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createSerializable(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password)` Deprecated. all implementations are now both Referenceable and Serializable. use create()
    `static javax.sql.DataSource` | `createSerializable(java.lang.String jdbcDriverClass, java.lang.String jdbcUrl, java.lang.String user, java.lang.String password, int minPoolSize, int maxPoolSize, int acquireIncrement, int maxIdleTime, int maxStatements)` Deprecated. all implementations are now both Referenceable and Serializable. use create()

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### createReferenceable

          public static javax.sql.DataSource createReferenceable(javax.sql.DataSource unpooledDataSource,
                                                                 int minPoolSize,
                                                                 int maxPoolSize,
                                                                 int acquireIncrement,
                                                                 int maxIdleTime,
                                                                 int maxStatements,
                                                                 java.lang.String factoryLocation)
                                                          throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Referenceable for binding to JNDI name services. For this to work, `unpooledDataSource` must also implement Referenceable.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally.
      Throws:
        `java.sql.SQLException`

    - #### createReferenceable

          public static javax.sql.DataSource createReferenceable(javax.sql.DataSource unpooledDataSource,
                                                                 java.lang.String factoryLocation)
                                                          throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that uses default pool parameters and implements Referenceable for binding to JNDI name services. For this to work, `unpooledDataSource` must also implement Referenceable.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally.
      Throws:
        `java.sql.SQLException`

    - #### createReferenceable

          public static javax.sql.DataSource createReferenceable(java.lang.String jdbcDriverClass,
                                                                 java.lang.String jdbcUrl,
                                                                 java.lang.String user,
                                                                 java.lang.String password,
                                                                 int minPoolSize,
                                                                 int maxPoolSize,
                                                                 int acquireIncrement,
                                                                 int maxIdleTime,
                                                                 int maxStatements,
                                                                 java.lang.String factoryLocation)
                                                          throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Referenceable.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally.
      Throws:
        `java.sql.SQLException`

    - #### createReferenceable

          public static javax.sql.DataSource createReferenceable(java.lang.String jdbcDriverClass,
                                                                 java.lang.String jdbcUrl,
                                                                 java.lang.String user,
                                                                 java.lang.String password,
                                                                 java.lang.String factoryLocation)
                                                          throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Referenceable and uses default pooling parameters.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally.
      Throws:
        `java.sql.SQLException`

    - #### createSerializable

          public static javax.sql.DataSource createSerializable(javax.sql.DataSource unpooledDataSource,
                                                                int minPoolSize,
                                                                int maxPoolSize,
                                                                int acquireIncrement,
                                                                int maxIdleTime,
                                                                int maxStatements)
                                                         throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Serializable for binding to JNDI name services. For this to work, `unpooledDataSource` must also implement Serializable.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
      Throws:
        `java.sql.SQLException`

    - #### createSerializable

          public static javax.sql.DataSource createSerializable(javax.sql.DataSource unpooledDataSource)
                                                         throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that uses default pool parameters and implements Serializable for binding to JNDI name services. For this to work, `unpooledDataSource` must also implement Serializable.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
      Throws:
        `java.sql.SQLException`

    - #### createSerializable

          public static javax.sql.DataSource createSerializable(java.lang.String jdbcDriverClass,
                                                                java.lang.String jdbcUrl,
                                                                java.lang.String user,
                                                                java.lang.String password,
                                                                int minPoolSize,
                                                                int maxPoolSize,
                                                                int acquireIncrement,
                                                                int maxIdleTime,
                                                                int maxStatements)
                                                         throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Serializable.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
      Throws:
        `java.sql.SQLException`

    - #### createSerializable

          public static javax.sql.DataSource createSerializable(java.lang.String jdbcDriverClass,
                                                                java.lang.String jdbcUrl,
                                                                java.lang.String user,
                                                                java.lang.String password)
                                                         throws java.sql.SQLException

      Deprecated. all implementations are now both Referenceable and Serializable. use create()
      Creates a pool-backed DataSource that implements Serializable and uses default pooling parameters.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(javax.sql.DataSource unpooledDataSource,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements,
                                                    java.lang.String factoryLocation)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections. Not necessarily suitable for JNDI binding.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally. Used only if the JNDI service prefers References to Serialized Objects when Objects are bound.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(javax.sql.DataSource unpooledDataSource,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections. Not necessarily suitable for JNDI binding.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(javax.sql.DataSource unpooledDataSource)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource using `unpooledDataSource` as its source for Connections and default values for pool params.
      Parameters:
        `unpooledDataSource` - an unpooledDataSource to use as the primary source for connections.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcDriverClass,
                                                    java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements,
                                                    java.lang.String factoryLocation)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally. Used only if the JNDI service prefers References to Serialized Objects when Objects are bound.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcDriverClass,
                                                    java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements,
                                                    java.lang.String factoryLocation)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource.

      Warning: If you use this method, you must make sure a JDBC driver capable of resolving `jdbcUrl` has been preloaded!

      Parameters:
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
        `factoryLocation` - a codebase url where JNDI clients can find the c3p0 libraries. Use null if clients will be expected to have the libraries available locally. Used only if the JNDI service prefers References to Serialized Objects when Objects are bound.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password,
                                                    int minPoolSize,
                                                    int maxPoolSize,
                                                    int acquireIncrement,
                                                    int maxIdleTime,
                                                    int maxStatements)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource.

      Warning: If you use this method, you must make sure a JDBC driver capable of resolving `jdbcUrl` has been preloaded!

      Parameters:
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
        `minPoolSize` - the minimum (and starting) number of Connections that should be held in the pool.
        `maxPoolSize` - the maximum number of Connections that should be held in the pool.
        `acquireIncrement` - the number of Connections that should be acquired at a time when the pool runs out of Connections
        `maxIdleTime` - the maximum number of seconds a Connection should be allowed to remain idle before it is expired from the pool. A value of 0 means Connections never expire.
        `maxStatements` - the maximum number of PreparedStatements that should be cached by this pool. A value of 0 means that Statement caching should be disabled.
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcDriverClass,
                                                    java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource using default values for pool parameters. Not necessarily suitable for JNDI binding.
      Parameters:
        `jdbcDriverClass` - a jdbc driver class that can resolve `jdbcUrl`.
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
      Throws:
        `java.sql.SQLException`

    - #### create

          public static javax.sql.DataSource create(java.lang.String jdbcUrl,
                                                    java.lang.String user,
                                                    java.lang.String password)
                                             throws java.sql.SQLException

      Deprecated.
      Creates a pool-backed DataSource using default pool parameters.

      Warning: If you use this method, you must make sure a JDBC driver capable of resolving `jdbcUrl` has been preloaded!

      Parameters:
        `jdbcUrl` - the jdbcUrl of the RDBMS that Connections should be made to.
        `user` - a username (may be null) for authentication to the RDBMS
        `password` - a password (may be null) for authentication to the RDBMS
      Throws:
        `java.sql.SQLException`