## org.springframework.jdbc.support.nativejdbc
Class JBossNativeJdbcExtractor

    java.lang.Object
      org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter
          org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractor

All Implemented Interfaces:
  NativeJdbcExtractor

    public class JBossNativeJdbcExtractor

extends NativeJdbcExtractorAdapter

Implementation of the `NativeJdbcExtractor` interface for JBoss, supporting JBoss Application Server 3.2.4+.

Returns the underlying native Connection, Statement, etc to application code instead of JBoss' 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 JBoss connection pool: If a given object is not a JBoss wrapper, it will be returned as-is.

Since:
  03.01.2004
Author:
  Juergen Hoeller
See Also:
  `org.jboss.resource.adapter.jdbc.WrappedConnection#getUnderlyingConnection`, `org.jboss.resource.adapter.jdbc.WrappedStatement#getUnderlyingStatement`, `org.jboss.resource.adapter.jdbc.WrappedResultSet#getUnderlyingResultSet`

Constructor Summary
`JBossNativeJdbcExtractor()` This constructor retrieves JBoss JDBC wrapper classes, so we can get the underlying vendor connection using reflection.

Method Summary
`protected Connection` `doGetNativeConnection(Connection con)` Retrieve the Connection via JBoss' `getUnderlyingConnection` method.
`CallableStatement` `getNativeCallableStatement(CallableStatement cs)` Retrieve the Connection via JBoss' `getUnderlyingStatement` method.
`PreparedStatement` `getNativePreparedStatement(PreparedStatement ps)` Retrieve the Connection via JBoss' `getUnderlyingStatement` method.
`ResultSet` `getNativeResultSet(ResultSet rs)` Retrieve the Connection via JBoss' `getUnderlyingResultSet` method.
`Statement` `getNativeStatement(Statement stmt)` Retrieve the Connection via JBoss' `getUnderlyingStatement` method.

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

### JBossNativeJdbcExtractor

    public JBossNativeJdbcExtractor()

  This constructor retrieves JBoss JDBC wrapper classes, so we can get the underlying vendor connection using reflection.

Method Detail

### doGetNativeConnection

    protected Connection doGetNativeConnection(Connection con)
                                        throws SQLException

  Retrieve the Connection via JBoss' `getUnderlyingConnection` method.

  Overrides:
    `doGetNativeConnection` in class `NativeJdbcExtractorAdapter`
  Throws:
    `SQLException`

### getNativeStatement

    public Statement getNativeStatement(Statement stmt)
                                 throws SQLException

  Retrieve the Connection via JBoss' `getUnderlyingStatement` method.

  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

  Retrieve the Connection via JBoss' `getUnderlyingStatement` method.

  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

  Retrieve the Connection via JBoss' `getUnderlyingStatement` method.

  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

  Retrieve the Connection via JBoss' `getUnderlyingResultSet` method.

  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

Copyright © 2002-2008 The Spring Framework.