de.esprit.appsuite.database.dbase

## Class DBPoolConnection

- java.lang.Object
- - de.esprit.appsuite.database.dbase.DBPoolConnection

- All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper

      public class DBPoolConnection
      extends java.lang.Object
      implements java.sql.Connection

  This class wraps a JDBC database connection and adds some functionality to make it maintainable in a ConnectionPool.
  Author:
    Rainer Buesch

- - ### 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 and Description
    `DBPoolConnection(DBConnectionPool cp, java.sql.Connection dbConn)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abort(java.util.concurrent.Executor executor)`
    `void` | `begin()` Starts a transaction on this connection.
    `void` | `begin(int txIsolationLevel)` Same as begin() but sets the isolation level to TRANSACTION_REPEATABLE_READ.
    `void` | `clearWarnings()`
    `void` | `close()` Releases the connection and returns it to the pool as a free connection.
    `void` | `commit()` Commits a transaction on this connection.
    `java.sql.Array` | `createArrayOf(java.lang.String typeName, java.lang.Object[] elements)`
    `java.sql.Blob` | `createBlob()`
    `java.sql.Clob` | `createClob()`
    `java.sql.NClob` | `createNClob()`
    `java.sql.SQLXML` | `createSQLXML()`
    `java.sql.Statement` | `createStatement()` Delegates to java.sql.Connection.createStatement()
    `java.sql.Statement` | `createStatement(int resultSetType, int resultSetConcurrency)` Delegates to java.sql.Connection.createStatement(int, int)
    `java.sql.Statement` | `createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)` Delegates to java.sql.Connection.createStatement(int, int, int)
    `java.sql.Struct` | `createStruct(java.lang.String typeName, java.lang.Object[] attributes)`
    `void` | `disconnect()` Closes the underlying JDBC connection and leaves this object unusable.
    `int` | `getAccessCount()` Tells how often this connection has been taken from the pool
    `boolean` | `getAutoCommit()`
    `java.lang.String` | `getCatalog()`
    `java.util.Properties` | `getClientInfo()`
    `java.lang.String` | `getClientInfo(java.lang.String name)`
    `java.sql.Connection` | `getConnection()` Returns the underlying JDBC Connection object.
    `DBConnectionPool` | `getConnectionPool()`
    `int` | `getHoldability()` Delegates to java.sql.Connection.getHoldability()
    `int` | `getId()` Returns the unique Connection ID.
    `long` | `getLastUsedTime()` Tells how long this connection has been used for the last action
    `java.sql.DatabaseMetaData` | `getMetaData()`
    `int` | `getNetworkTimeout()`
    `java.lang.String` | `getSchema()`
    `long` | `getTotalUsedTime()` Tells how long this connection has been used in total
    `int` | `getTransactionIsolation()`
    `int` | `getTransactionLevel()`
    `java.util.Map<java.lang.String,java.lang.Class<?>>` | `getTypeMap()`
    `java.sql.SQLWarning` | `getWarnings()`
    `boolean` | `isClosed()` Tells whether this connection has been closed.
    `boolean` | `isReadOnly()`
    `boolean` | `isValid(int timeout)`
    `boolean` | `isWrapperFor(java.lang.Class<?> iface)`
    `java.lang.String` | `nativeSQL(java.lang.String sql)`
    `java.sql.CallableStatement` | `prepareCall(java.lang.String sql)` Delegates to java.sql.Connection.prepareCall(java.lang.String)
    `java.sql.CallableStatement` | `prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)` Delegates to java.sql.Connection.prepareCall(java.lang.String, int, int)
    `java.sql.CallableStatement` | `prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` Delegates to java.sql.Connection.prepareCall(java.lang.String, int, int, int)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql)` Delegates to java.sql.Connection.prepareStatement(java.lang.String)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql, int autoGeneratedKeys)` Delegates to java.sql.Connection.prepareStatement(java.lang.String, int)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql, int[] columnIndexes)` Delegates to java.sql.Connection.prepareStatement(java.lang.String, int)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)` Delegates to java.sql.Connection.prepareStatement(java.lang.String, int, int)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` Delegates to java.sql.Connection.prepareStatement(java.lang.String, int, int, int)
    `java.sql.PreparedStatement` | `prepareStatement(java.lang.String sql, java.lang.String[] columnNames)` Delegates to java.sql.Connection.prepareStatement(java.lang.String, java.lang.String)
    `void` | `releaseSavepoint(java.sql.Savepoint savepoint)` Delegates to java.sql.Connection.releaseSavepoint(Savepoint)
    `void` | `rollback()` The current transaction on this connection is stopped and rolled back.
    `void` | `rollback(java.sql.Savepoint savepoint)` Delegates to java.sql.Connection.rollback(Savepoint)
    `void` | `setAutoCommit(boolean autoCommit)`
    `void` | `setCatalog(java.lang.String catalog)`
    `void` | `setClientInfo(java.util.Properties properties)`
    `void` | `setClientInfo(java.lang.String name, java.lang.String value)`
    `void` | `setHoldability(int holdability)` Delegates to java.sql.Connection.setHoldability(int)
    `void` | `setNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds)`
    `void` | `setReadOnly(boolean readOnly)`
    `java.sql.Savepoint` | `setSavepoint()` Delegates to java.sql.Connection.setSavepoint()
    `java.sql.Savepoint` | `setSavepoint(java.lang.String name)` Delegates to java.sql.Connection.setSavepoint(java.lang.String)
    `void` | `setSchema(java.lang.String schema)`
    `void` | `setTransactionIsolation(int level)`
    `void` | `setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)`
    `void` | `startUse()` Starts measuring the use-time for this connection and increments the access count.
    `void` | `stopUse()` Stops measuring the use-time for this connection.
    `java.lang.String` | `toString()`
    `<T> T` | `unwrap(java.lang.Class<T> iface)`

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

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

- - ### Constructor Detail

    - #### DBPoolConnection

          public DBPoolConnection(DBConnectionPool cp,
                          java.sql.Connection dbConn)

  - ### Method Detail

    - #### getConnectionPool

          public DBConnectionPool getConnectionPool()

    - #### getId

          public int getId()

      Returns the unique Connection ID.

    - #### getTransactionLevel

          public int getTransactionLevel()

    - #### getAccessCount

          public int getAccessCount()

      Tells how often this connection has been taken from the pool

    - #### getConnection

          public java.sql.Connection getConnection()

      Returns the underlying JDBC Connection object.

    - #### startUse

          public void startUse()

      Starts measuring the use-time for this connection and increments the access count.
      See Also:
        `stopUse()`

    - #### stopUse

          public void stopUse()

      Stops measuring the use-time for this connection.
      See Also:
        `startUse()`

    - #### getLastUsedTime

          public long getLastUsedTime()

      Tells how long this connection has been used for the last action

    - #### getTotalUsedTime

          public long getTotalUsedTime()

      Tells how long this connection has been used in total

    - #### disconnect

          public void disconnect()

      Closes the underlying JDBC connection and leaves this object unusable.

    - #### close

          public void close()

      Releases the connection and returns it to the pool as a free connection. Note that this call does not pysicall close the underlying database connection.
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `java.sql.Connection`

    - #### isClosed

          public boolean isClosed()

      Tells whether this connection has been closed. Closed connections are automatically removed from the pool and replaced by new ones.
      Specified by:
        `isClosed` in interface `java.sql.Connection`

    - #### begin

          public void begin()
                     throws java.sql.SQLException

      Starts a transaction on this connection.

      Note that this call MUST be followed by a commit() or rollback() call in order to free the connection after usage. Otherwise this connection will be blocked forever.

      Note further that nesting of transactions is supported. Thus it is permitted for a thread to call begin() n times. If done so you must also call commit() n times until the real COMMIT is done in the database. Any rollback() call however will break the transaction no matter of it's nesting level.

      Throws:
        `java.sql.SQLException`
      See Also:
        `commit()`, `rollback()`

    - #### begin

          public void begin(int txIsolationLevel)
                     throws java.sql.SQLException

      Same as begin() but sets the isolation level to TRANSACTION_REPEATABLE_READ.
      Throws:
        `java.sql.SQLException`

    - #### commit

          public void commit()
                      throws java.sql.SQLException

      Commits a transaction on this connection.
      Specified by:
        `commit` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `begin()`

    - #### rollback

          public void rollback()

      The current transaction on this connection is stopped and rolled back.
      Specified by:
        `rollback` in interface `java.sql.Connection`
      See Also:
        `begin()`

    - #### createStatement

          public java.sql.Statement createStatement()
                                             throws java.sql.SQLException

      Delegates to java.sql.Connection.createStatement()
      Specified by:
        `createStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareCall

          public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                                 throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareCall(java.lang.String)
      Specified by:
        `prepareCall` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### nativeSQL

          public java.lang.String nativeSQL(java.lang.String sql)
                                     throws java.sql.SQLException

      Specified by:
        `nativeSQL` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.nativeSQL(java.lang.String)`

    - #### setAutoCommit

          public void setAutoCommit(boolean autoCommit)
                             throws java.sql.SQLException

      Specified by:
        `setAutoCommit` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.setAutoCommit(boolean)`

    - #### getAutoCommit

          public boolean getAutoCommit()
                                throws java.sql.SQLException

      Specified by:
        `getAutoCommit` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getAutoCommit()`

    - #### getMetaData

          public java.sql.DatabaseMetaData getMetaData()
                                                throws java.sql.SQLException

      Specified by:
        `getMetaData` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getMetaData()`

    - #### setReadOnly

          public void setReadOnly(boolean readOnly)
                           throws java.sql.SQLException

      Specified by:
        `setReadOnly` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.setReadOnly(boolean)`

    - #### isReadOnly

          public boolean isReadOnly()
                             throws java.sql.SQLException

      Specified by:
        `isReadOnly` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.isReadOnly()`

    - #### setCatalog

          public void setCatalog(java.lang.String catalog)
                          throws java.sql.SQLException

      Specified by:
        `setCatalog` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.setCatalog(java.lang.String)`

    - #### getCatalog

          public java.lang.String getCatalog()
                                      throws java.sql.SQLException

      Specified by:
        `getCatalog` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getCatalog()`

    - #### setTransactionIsolation

          public void setTransactionIsolation(int level)
                                       throws java.sql.SQLException

      Specified by:
        `setTransactionIsolation` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.setTransactionIsolation(int)`

    - #### getTransactionIsolation

          public int getTransactionIsolation()
                                      throws java.sql.SQLException

      Specified by:
        `getTransactionIsolation` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getTransactionIsolation()`

    - #### getWarnings

          public java.sql.SQLWarning getWarnings()
                                          throws java.sql.SQLException

      Specified by:
        `getWarnings` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getWarnings()`

    - #### clearWarnings

          public void clearWarnings()
                             throws java.sql.SQLException

      Specified by:
        `clearWarnings` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.clearWarnings()`

    - #### createStatement

          public java.sql.Statement createStatement(int resultSetType,
                                           int resultSetConcurrency)
                                             throws java.sql.SQLException

      Delegates to java.sql.Connection.createStatement(int, int)
      Specified by:
        `createStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                    int resultSetType,
                                                    int resultSetConcurrency)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String, int, int)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareCall

          public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                               int resultSetType,
                                               int resultSetConcurrency)
                                                 throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareCall(java.lang.String, int, int)
      Specified by:
        `prepareCall` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getTypeMap

          public java.util.Map<java.lang.String,java.lang.Class<?>> getTypeMap()
                                                                        throws java.sql.SQLException

      Specified by:
        `getTypeMap` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`
      See Also:
        `Connection.getTypeMap()`

    - #### setHoldability

          public void setHoldability(int holdability)
                              throws java.sql.SQLException

      Delegates to java.sql.Connection.setHoldability(int)
      Specified by:
        `setHoldability` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getHoldability

          public int getHoldability()
                             throws java.sql.SQLException

      Delegates to java.sql.Connection.getHoldability()
      Specified by:
        `getHoldability` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### setSavepoint

          public java.sql.Savepoint setSavepoint()
                                          throws java.sql.SQLException

      Delegates to java.sql.Connection.setSavepoint()
      Specified by:
        `setSavepoint` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### setSavepoint

          public java.sql.Savepoint setSavepoint(java.lang.String name)
                                          throws java.sql.SQLException

      Delegates to java.sql.Connection.setSavepoint(java.lang.String)
      Specified by:
        `setSavepoint` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### rollback

          public void rollback(java.sql.Savepoint savepoint)
                        throws java.sql.SQLException

      Delegates to java.sql.Connection.rollback(Savepoint)
      Specified by:
        `rollback` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### releaseSavepoint

          public void releaseSavepoint(java.sql.Savepoint savepoint)
                                throws java.sql.SQLException

      Delegates to java.sql.Connection.releaseSavepoint(Savepoint)
      Specified by:
        `releaseSavepoint` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createStatement

          public java.sql.Statement createStatement(int resultSetType,
                                           int resultSetConcurrency,
                                           int resultSetHoldability)
                                             throws java.sql.SQLException

      Delegates to java.sql.Connection.createStatement(int, int, int)
      Specified by:
        `createStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                    int resultSetType,
                                                    int resultSetConcurrency,
                                                    int resultSetHoldability)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String, int, int, int)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareCall

          public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                               int resultSetType,
                                               int resultSetConcurrency,
                                               int resultSetHoldability)
                                                 throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareCall(java.lang.String, int, int, int)
      Specified by:
        `prepareCall` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                    int autoGeneratedKeys)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String, int)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                    int[] columnIndexes)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String, int)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### prepareStatement

          public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                    java.lang.String[] columnNames)
                                                      throws java.sql.SQLException

      Delegates to java.sql.Connection.prepareStatement(java.lang.String, java.lang.String)
      Specified by:
        `prepareStatement` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createArrayOf

          public java.sql.Array createArrayOf(java.lang.String typeName,
                                     java.lang.Object[] elements)
                                       throws java.sql.SQLException

      Specified by:
        `createArrayOf` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createBlob

          public java.sql.Blob createBlob()
                                   throws java.sql.SQLException

      Specified by:
        `createBlob` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createClob

          public java.sql.Clob createClob()
                                   throws java.sql.SQLException

      Specified by:
        `createClob` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createNClob

          public java.sql.NClob createNClob()
                                     throws java.sql.SQLException

      Specified by:
        `createNClob` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createSQLXML

          public java.sql.SQLXML createSQLXML()
                                       throws java.sql.SQLException

      Specified by:
        `createSQLXML` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### createStruct

          public java.sql.Struct createStruct(java.lang.String typeName,
                                     java.lang.Object[] attributes)
                                       throws java.sql.SQLException

      Specified by:
        `createStruct` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getClientInfo

          public java.util.Properties getClientInfo()
                                             throws java.sql.SQLException

      Specified by:
        `getClientInfo` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getClientInfo

          public java.lang.String getClientInfo(java.lang.String name)
                                         throws java.sql.SQLException

      Specified by:
        `getClientInfo` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### isValid

          public boolean isValid(int timeout)
                          throws java.sql.SQLException

      Specified by:
        `isValid` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### setClientInfo

          public void setClientInfo(java.util.Properties properties)
                             throws java.sql.SQLClientInfoException

      Specified by:
        `setClientInfo` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLClientInfoException`

    - #### setClientInfo

          public void setClientInfo(java.lang.String name,
                           java.lang.String value)
                             throws java.sql.SQLClientInfoException

      Specified by:
        `setClientInfo` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLClientInfoException`

    - #### setTypeMap

          public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
                          throws java.sql.SQLException

      Specified by:
        `setTypeMap` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### isWrapperFor

          public boolean isWrapperFor(java.lang.Class<?> iface)
                               throws java.sql.SQLException

      Specified by:
        `isWrapperFor` in interface `java.sql.Wrapper`
      Throws:
        `java.sql.SQLException`

    - #### unwrap

          public <T> T unwrap(java.lang.Class<T> iface)
                   throws java.sql.SQLException

      Specified by:
        `unwrap` in interface `java.sql.Wrapper`
      Throws:
        `java.sql.SQLException`

    - #### setSchema

          public void setSchema(java.lang.String schema)
                         throws java.sql.SQLException

      Specified by:
        `setSchema` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getSchema

          public java.lang.String getSchema()
                                     throws java.sql.SQLException

      Specified by:
        `getSchema` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### abort

          public void abort(java.util.concurrent.Executor executor)
                     throws java.sql.SQLException

      Specified by:
        `abort` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### setNetworkTimeout

          public void setNetworkTimeout(java.util.concurrent.Executor executor,
                               int milliseconds)
                                 throws java.sql.SQLException

      Specified by:
        `setNetworkTimeout` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### getNetworkTimeout

          public int getNetworkTimeout()
                                throws java.sql.SQLException

      Specified by:
        `getNetworkTimeout` in interface `java.sql.Connection`
      Throws:
        `java.sql.SQLException`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

Copyright © 2014 EsprIT-Systems. All Rights Reserved.