org.springframework.jdbc.support.nativejdbc

## Class CommonsDbcpNativeJdbcExtractor

- java.lang.Object
- - org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter
  - - org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor

- All Implemented Interfaces:
    NativeJdbcExtractor

      public class CommonsDbcpNativeJdbcExtractor
      extends NativeJdbcExtractorAdapter

  Implementation of the `NativeJdbcExtractor` interface for the Jakarta Commons DBCP connection pool, version 1.1 or higher.

  Returns the underlying native Connection, Statement, etc to application code instead of DBCP's wrapper implementations. The returned JDBC classes can then safely be cast, e.g. to `oracle.jdbc.OracleConnection`.

  This NativeJdbcExtractor can be set just to allow working with a Commons DBCP DataSource: If a given object is not a Commons DBCP wrapper, it will be returned as-is.

  Note that this version of CommonsDbcpNativeJdbcExtractor will work against the original Commons DBCP in `org.apache.commons.dbcp` as well as against Tomcat 5.5's relocated Commons DBCP version in the `org.apache.tomcat.dbcp.dbcp` package.

  Since:
    25.08.2003
  Author:
    Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CommonsDbcpNativeJdbcExtractor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Connection` | `doGetNativeConnection(Connection con)` Not able to unwrap: return passed-in Connection.
    `CallableStatement` | `getNativeCallableStatement(CallableStatement cs)` Not able to unwrap: return passed-in CallableStatement.
    `PreparedStatement` | `getNativePreparedStatement(PreparedStatement ps)` Not able to unwrap: return passed-in PreparedStatement.
    `ResultSet` | `getNativeResultSet(ResultSet rs)` Not able to unwrap: return passed-in ResultSet.
    `Statement` | `getNativeStatement(Statement stmt)` Not able to unwrap: return passed-in Statement.

    - ### Methods inherited from class org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter

      `getNativeConnection, getNativeConnectionFromStatement, isNativeConnectionNecessaryForNativeCallableStatements, isNativeConnectionNecessaryForNativePreparedStatements, isNativeConnectionNecessaryForNativeStatements`

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

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

- - ### Constructor Detail

    - #### CommonsDbcpNativeJdbcExtractor

          public CommonsDbcpNativeJdbcExtractor()

  - ### Method Detail

    - #### doGetNativeConnection

          protected Connection doGetNativeConnection(Connection con)
                                              throws SQLException

      Description copied from class: `NativeJdbcExtractorAdapter`
      Not able to unwrap: return passed-in Connection.
      Overrides:
        `doGetNativeConnection` in class `NativeJdbcExtractorAdapter`
      Throws:
        `SQLException`

    - #### getNativeStatement

          public Statement getNativeStatement(Statement stmt)
                                       throws SQLException

      Description copied from class: `NativeJdbcExtractorAdapter`
      Not able to unwrap: return passed-in Statement.
      Specified by:
        `getNativeStatement` in interface `NativeJdbcExtractor`
      Overrides:
        `getNativeStatement` in class `NativeJdbcExtractorAdapter`
      Parameters:
        `stmt` - the Statement handle, potentially wrapped by a connection pool
      Returns:
        the underlying native JDBC Statement, if possible; else, the original Statement
      Throws:
        `SQLException` - if thrown by JDBC methods

    - #### getNativePreparedStatement

          public PreparedStatement getNativePreparedStatement(PreparedStatement ps)
                                                       throws SQLException

      Description copied from class: `NativeJdbcExtractorAdapter`
      Not able to unwrap: return passed-in PreparedStatement.
      Specified by:
        `getNativePreparedStatement` in interface `NativeJdbcExtractor`
      Overrides:
        `getNativePreparedStatement` in class `NativeJdbcExtractorAdapter`
      Parameters:
        `ps` - the PreparedStatement handle, potentially wrapped by a connection pool
      Returns:
        the underlying native JDBC PreparedStatement, if possible; else, the original PreparedStatement
      Throws:
        `SQLException` - if thrown by JDBC methods

    - #### getNativeCallableStatement

          public CallableStatement getNativeCallableStatement(CallableStatement cs)
                                                       throws SQLException

      Description copied from class: `NativeJdbcExtractorAdapter`
      Not able to unwrap: return passed-in CallableStatement.
      Specified by:
        `getNativeCallableStatement` in interface `NativeJdbcExtractor`
      Overrides:
        `getNativeCallableStatement` in class `NativeJdbcExtractorAdapter`
      Parameters:
        `cs` - the CallableStatement handle, potentially wrapped by a connection pool
      Returns:
        the underlying native JDBC CallableStatement, if possible; else, the original CallableStatement
      Throws:
        `SQLException` - if thrown by JDBC methods

    - #### getNativeResultSet

          public ResultSet getNativeResultSet(ResultSet rs)
                                       throws SQLException

      Description copied from class: `NativeJdbcExtractorAdapter`
      Not able to unwrap: return passed-in ResultSet.
      Specified by:
        `getNativeResultSet` in interface `NativeJdbcExtractor`
      Overrides:
        `getNativeResultSet` in class `NativeJdbcExtractorAdapter`
      Parameters:
        `rs` - the ResultSet handle, potentially wrapped by a connection pool
      Returns:
        the underlying native JDBC ResultSet, if possible; else, the original ResultSet
      Throws:
        `SQLException` - if thrown by JDBC methods