Module org.hsqldb
Package org.hsqldb.jdbc.pool

## Class JDBCPooledConnection

- java.lang.Object
- - org.hsqldb.jdbc.pool.JDBCPooledConnection

- All Implemented Interfaces:
    `javax.sql.PooledConnection`, `JDBCConnectionEventListener`
  Direct Known Subclasses:
    `JDBCXAConnection`

      public class JDBCPooledConnection
      extends java.lang.Object
      implements javax.sql.PooledConnection, JDBCConnectionEventListener

  An implementations of `PooledConnection` for use by connection pooling software.

  The class maintains a lifetime connection to the database. The getConnection() method establishes a lease on the lifetime connection and returns a special JDBCConnection (userConnection) that is valid until it is closed.

  This class uses a dedicated HyperSQL method to guarantee each lease on the connection starts with the original state of the connection.

  The ConnectionEventLister objects that have been registered with this PooledConnection are notified when each lease expires, or an unrecoverable error occurs on the connection to the database.

  Since:
    JDK 1.2, HSQLDB 2.0
  Author:
    Fred Toussi (fredt@users dot sourceforge.net)

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JDBCPooledConnection​(JDBCConnection connection)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConnectionEventListener​(javax.sql.ConnectionEventListener listener)` |
    `void` | `addStatementEventListener​(javax.sql.StatementEventListener listener)` |
    `void` | `close()` |
    `void` | `connectionClosed()` |
    `void` | `connectionErrorOccurred​(java.sql.SQLException e)` |
    `java.sql.Connection` | `getConnection()` |
    `boolean` | `isInUse()` | Returns true if getConnection() has been called and a leas has been given.
    `void` | `release()` | Force close the userConnection, and connection, no close event is fired.
    `void` | `removeConnectionEventListener​(javax.sql.ConnectionEventListener listener)` |
    `void` | `removeStatementEventListener​(javax.sql.StatementEventListener listener)` |
    `void` | `reset()` | Force close the userConnection, no close event is fired.

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

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

- - ### Constructor Detail

    - #### JDBCPooledConnection

          public JDBCPooledConnection​(JDBCConnection connection)

  - ### Method Detail

    - #### getConnection

          public java.sql.Connection getConnection()
                                            throws java.sql.SQLException

      Specified by:
        `getConnection` in interface `javax.sql.PooledConnection`
      Throws:
        `java.sql.SQLException`

    - #### close

          public void close()
                     throws java.sql.SQLException

      Specified by:
        `close` in interface `javax.sql.PooledConnection`
      Throws:
        `java.sql.SQLException`

    - #### addConnectionEventListener

          public void addConnectionEventListener​(javax.sql.ConnectionEventListener listener)

      Specified by:
        `addConnectionEventListener` in interface `javax.sql.PooledConnection`

    - #### removeConnectionEventListener

          public void removeConnectionEventListener​(javax.sql.ConnectionEventListener listener)

      Specified by:
        `removeConnectionEventListener` in interface `javax.sql.PooledConnection`

    - #### addStatementEventListener

          public void addStatementEventListener​(javax.sql.StatementEventListener listener)

      Specified by:
        `addStatementEventListener` in interface `javax.sql.PooledConnection`

    - #### removeStatementEventListener

          public void removeStatementEventListener​(javax.sql.StatementEventListener listener)

      Specified by:
        `removeStatementEventListener` in interface `javax.sql.PooledConnection`

    - #### connectionClosed

          public void connectionClosed()

      Specified by:
        `connectionClosed` in interface `JDBCConnectionEventListener`

    - #### connectionErrorOccurred

          public void connectionErrorOccurred​(java.sql.SQLException e)

      Specified by:
        `connectionErrorOccurred` in interface `JDBCConnectionEventListener`

    - #### isInUse

          public boolean isInUse()

      Returns true if getConnection() has been called and a leas has been given.
      Returns:
        boolean

    - #### reset

          public void reset()

      Force close the userConnection, no close event is fired.

    - #### release

          public void release()

      Force close the userConnection, and connection, no close event is fired.