Package org.apache.cayenne.datasource

## Class PoolAwareConnection

- java.lang.Object
- - org.apache.cayenne.datasource.PoolAwareConnection

- All Implemented Interfaces:
    `AutoCloseable`, `Connection`, `Wrapper`

      public class PoolAwareConnection
      extends Object
      implements Connection

  A `Connection` wrapper that interacts with the `UnmanagedPoolingDataSource`, allowing to recycle connections and track failures.
  Since:
    4.0

- - ### Field Summary

    - ### Fields inherited from interface java.sql.Connection

      `TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PoolAwareConnection​(UnmanagedPoolingDataSource parent, Connection connection, String validationQuery)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `abort​(Executor executor)` |
    `void` | `clearWarnings()` |
    `void` | `close()` |
    `void` | `commit()` |
    `Array` | `createArrayOf​(String typeName, Object[] elements)` |
    `Blob` | `createBlob()` |
    `Clob` | `createClob()` |
    `NClob` | `createNClob()` |
    `SQLXML` | `createSQLXML()` |
    `Statement` | `createStatement()` |
    `Statement` | `createStatement​(int resultSetType, int resultSetConcurrency)` |
    `Statement` | `createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability)` |
    `Struct` | `createStruct​(String typeName, Object[] attributes)` |
    `boolean` | `getAutoCommit()` |
    `String` | `getCatalog()` |
    `Properties` | `getClientInfo()` |
    `String` | `getClientInfo​(String name)` |
    `int` | `getHoldability()` |
    `DatabaseMetaData` | `getMetaData()` |
    `int` | `getNetworkTimeout()` |
    `String` | `getSchema()` |
    `int` | `getTransactionIsolation()` |
    `Map<String,​Class<?>>` | `getTypeMap()` |
    `SQLWarning` | `getWarnings()` |
    `boolean` | `isClosed()` |
    `boolean` | `isReadOnly()` |
    `boolean` | `isValid​(int timeout)` |
    `boolean` | `isWrapperFor​(Class<?> iface)` |
    `String` | `nativeSQL​(String sql)` |
    `CallableStatement` | `prepareCall​(String sql)` |
    `CallableStatement` | `prepareCall​(String sql, int resultSetType, int resultSetConcurrency)` |
    `CallableStatement` | `prepareCall​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` |
    `PreparedStatement` | `prepareStatement​(String sql)` |
    `PreparedStatement` | `prepareStatement​(String sql, int autoGeneratedKeys)` |
    `PreparedStatement` | `prepareStatement​(String sql, int[] columnIndexes)` |
    `PreparedStatement` | `prepareStatement​(String sql, int resultSetType, int resultSetConcurrency)` |
    `PreparedStatement` | `prepareStatement​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` |
    `PreparedStatement` | `prepareStatement​(String sql, String[] columnNames)` |
    `void` | `releaseSavepoint​(Savepoint savepoint)` |
    `void` | `rollback()` |
    `void` | `rollback​(Savepoint savepoint)` |
    `void` | `setAutoCommit​(boolean autoCommit)` |
    `void` | `setCatalog​(String catalog)` |
    `void` | `setClientInfo​(String name, String value)` |
    `void` | `setClientInfo​(Properties properties)` |
    `void` | `setHoldability​(int holdability)` |
    `void` | `setNetworkTimeout​(Executor executor, int milliseconds)` |
    `void` | `setReadOnly​(boolean readOnly)` |
    `Savepoint` | `setSavepoint()` |
    `Savepoint` | `setSavepoint​(String name)` |
    `void` | `setSchema​(String schema)` |
    `void` | `setTransactionIsolation​(int level)` |
    `void` | `setTypeMap​(Map<String,​Class<?>> map)` |
    `<T> T` | `unwrap​(Class<T> iface)` |

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

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

    - ### Methods inherited from interface java.sql.Connection

      `beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid`

- - ### Constructor Detail

    - #### PoolAwareConnection

          public PoolAwareConnection​(UnmanagedPoolingDataSource parent,
                                     Connection connection,
                                     String validationQuery)

  - ### Method Detail

    - #### clearWarnings

          public void clearWarnings()
                             throws SQLException

      Specified by:
        `clearWarnings` in interface `Connection`
      Throws:
        `SQLException`

    - #### close

          public void close()
                     throws SQLException

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Connection`
      Throws:
        `SQLException`

    - #### commit

          public void commit()
                      throws SQLException

      Specified by:
        `commit` in interface `Connection`
      Throws:
        `SQLException`

    - #### createStatement

          public Statement createStatement()
                                    throws SQLException

      Specified by:
        `createStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### createStatement

          public Statement createStatement​(int resultSetType,
                                           int resultSetConcurrency)
                                    throws SQLException

      Specified by:
        `createStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### getAutoCommit

          public boolean getAutoCommit()
                                throws SQLException

      Specified by:
        `getAutoCommit` in interface `Connection`
      Throws:
        `SQLException`

    - #### getCatalog

          public String getCatalog()
                            throws SQLException

      Specified by:
        `getCatalog` in interface `Connection`
      Throws:
        `SQLException`

    - #### getMetaData

          public DatabaseMetaData getMetaData()
                                       throws SQLException

      Specified by:
        `getMetaData` in interface `Connection`
      Throws:
        `SQLException`

    - #### getTransactionIsolation

          public int getTransactionIsolation()
                                      throws SQLException

      Specified by:
        `getTransactionIsolation` in interface `Connection`
      Throws:
        `SQLException`

    - #### getWarnings

          public SQLWarning getWarnings()
                                 throws SQLException

      Specified by:
        `getWarnings` in interface `Connection`
      Throws:
        `SQLException`

    - #### isClosed

          public boolean isClosed()
                           throws SQLException

      Specified by:
        `isClosed` in interface `Connection`
      Throws:
        `SQLException`

    - #### isReadOnly

          public boolean isReadOnly()
                             throws SQLException

      Specified by:
        `isReadOnly` in interface `Connection`
      Throws:
        `SQLException`

    - #### nativeSQL

          public String nativeSQL​(String sql)
                           throws SQLException

      Specified by:
        `nativeSQL` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareCall

          public CallableStatement prepareCall​(String sql)
                                        throws SQLException

      Specified by:
        `prepareCall` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareCall

          public CallableStatement prepareCall​(String sql,
                                               int resultSetType,
                                               int resultSetConcurrency)
                                        throws SQLException

      Specified by:
        `prepareCall` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql,
                                                    int resultSetType,
                                                    int resultSetConcurrency)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### rollback

          public void rollback()
                        throws SQLException

      Specified by:
        `rollback` in interface `Connection`
      Throws:
        `SQLException`

    - #### setAutoCommit

          public void setAutoCommit​(boolean autoCommit)
                             throws SQLException

      Specified by:
        `setAutoCommit` in interface `Connection`
      Throws:
        `SQLException`

    - #### setCatalog

          public void setCatalog​(String catalog)
                          throws SQLException

      Specified by:
        `setCatalog` in interface `Connection`
      Throws:
        `SQLException`

    - #### setReadOnly

          public void setReadOnly​(boolean readOnly)
                           throws SQLException

      Specified by:
        `setReadOnly` in interface `Connection`
      Throws:
        `SQLException`

    - #### setTransactionIsolation

          public void setTransactionIsolation​(int level)
                                       throws SQLException

      Specified by:
        `setTransactionIsolation` in interface `Connection`
      Throws:
        `SQLException`

    - #### getTypeMap

          public Map<String,​Class<?>> getTypeMap()
                                                throws SQLException

      Specified by:
        `getTypeMap` in interface `Connection`
      Throws:
        `SQLException`

    - #### setTypeMap

          public void setTypeMap​(Map<String,​Class<?>> map)
                          throws SQLException

      Specified by:
        `setTypeMap` in interface `Connection`
      Throws:
        `SQLException`

    - #### setHoldability

          public void setHoldability​(int holdability)
                              throws SQLException

      Specified by:
        `setHoldability` in interface `Connection`
      Throws:
        `SQLException`

    - #### getHoldability

          public int getHoldability()
                             throws SQLException

      Specified by:
        `getHoldability` in interface `Connection`
      Throws:
        `SQLException`

    - #### setSavepoint

          public Savepoint setSavepoint()
                                 throws SQLException

      Specified by:
        `setSavepoint` in interface `Connection`
      Throws:
        `SQLException`

    - #### setSavepoint

          public Savepoint setSavepoint​(String name)
                                 throws SQLException

      Specified by:
        `setSavepoint` in interface `Connection`
      Throws:
        `SQLException`

    - #### rollback

          public void rollback​(Savepoint savepoint)
                        throws SQLException

      Specified by:
        `rollback` in interface `Connection`
      Throws:
        `SQLException`

    - #### releaseSavepoint

          public void releaseSavepoint​(Savepoint savepoint)
                                throws SQLException

      Specified by:
        `releaseSavepoint` in interface `Connection`
      Throws:
        `SQLException`

    - #### createStatement

          public Statement createStatement​(int resultSetType,
                                           int resultSetConcurrency,
                                           int resultSetHoldability)
                                    throws SQLException

      Specified by:
        `createStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql,
                                                    int resultSetType,
                                                    int resultSetConcurrency,
                                                    int resultSetHoldability)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareCall

          public CallableStatement prepareCall​(String sql,
                                               int resultSetType,
                                               int resultSetConcurrency,
                                               int resultSetHoldability)
                                        throws SQLException

      Specified by:
        `prepareCall` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql,
                                                    int autoGeneratedKeys)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql,
                                                    int[] columnIndexes)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### prepareStatement

          public PreparedStatement prepareStatement​(String sql,
                                                    String[] columnNames)
                                             throws SQLException

      Specified by:
        `prepareStatement` in interface `Connection`
      Throws:
        `SQLException`

    - #### createArrayOf

          public Array createArrayOf​(String typeName,
                                     Object[] elements)
                              throws SQLException

      Specified by:
        `createArrayOf` in interface `Connection`
      Throws:
        `SQLException`

    - #### createBlob

          public Blob createBlob()
                          throws SQLException

      Specified by:
        `createBlob` in interface `Connection`
      Throws:
        `SQLException`

    - #### createClob

          public Clob createClob()
                          throws SQLException

      Specified by:
        `createClob` in interface `Connection`
      Throws:
        `SQLException`

    - #### createStruct

          public Struct createStruct​(String typeName,
                                     Object[] attributes)
                              throws SQLException

      Specified by:
        `createStruct` in interface `Connection`
      Throws:
        `SQLException`

    - #### getClientInfo

          public Properties getClientInfo()
                                   throws SQLException

      Specified by:
        `getClientInfo` in interface `Connection`
      Throws:
        `SQLException`

    - #### getClientInfo

          public String getClientInfo​(String name)
                               throws SQLException

      Specified by:
        `getClientInfo` in interface `Connection`
      Throws:
        `SQLException`

    - #### isValid

          public boolean isValid​(int timeout)
                          throws SQLException

      Specified by:
        `isValid` in interface `Connection`
      Throws:
        `SQLException`

    - #### isWrapperFor

          public boolean isWrapperFor​(Class<?> iface)
                               throws SQLException

      Specified by:
        `isWrapperFor` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### unwrap

          public <T> T unwrap​(Class<T> iface)
                       throws SQLException

      Specified by:
        `unwrap` in interface `Wrapper`
      Throws:
        `SQLException`

    - #### createNClob

          public NClob createNClob()
                            throws SQLException

      Specified by:
        `createNClob` in interface `Connection`
      Throws:
        `SQLException`

    - #### createSQLXML

          public SQLXML createSQLXML()
                              throws SQLException

      Specified by:
        `createSQLXML` in interface `Connection`
      Throws:
        `SQLException`

    - #### setClientInfo

          public void setClientInfo​(Properties properties)
                             throws SQLClientInfoException

      Specified by:
        `setClientInfo` in interface `Connection`
      Throws:
        `SQLClientInfoException`

    - #### setClientInfo

          public void setClientInfo​(String name,
                                    String value)
                             throws SQLClientInfoException

      Specified by:
        `setClientInfo` in interface `Connection`
      Throws:
        `SQLClientInfoException`

    - #### setSchema

          public void setSchema​(String schema)
                         throws SQLException

      Specified by:
        `setSchema` in interface `Connection`
      Throws:
        `SQLException`

    - #### getSchema

          public String getSchema()
                           throws SQLException

      Specified by:
        `getSchema` in interface `Connection`
      Throws:
        `SQLException`

    - #### abort

          public void abort​(Executor executor)
                     throws SQLException

      Specified by:
        `abort` in interface `Connection`
      Throws:
        `SQLException`

    - #### setNetworkTimeout

          public void setNetworkTimeout​(Executor executor,
                                        int milliseconds)
                                 throws SQLException

      Specified by:
        `setNetworkTimeout` in interface `Connection`
      Throws:
        `SQLException`

    - #### getNetworkTimeout

          public int getNetworkTimeout()
                                throws SQLException

      Specified by:
        `getNetworkTimeout` in interface `Connection`
      Throws:
        `SQLException`