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+. As of Spring 3.1.1, it also supports JBoss 7.

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:
  `WrappedConnection`, `WrappedStatement`, `WrappedResultSet`

### Constructor Summary

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

### Method Summary

Methods
`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