## 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
`CommonsDbcpNativeJdbcExtractor()`

Method Summary
`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