org.springframework.jdbc.support.nativejdbc

## Class WebSphereNativeJdbcExtractor

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

All Implemented Interfaces:
  NativeJdbcExtractor

    public class WebSphereNativeJdbcExtractor
    extends NativeJdbcExtractorAdapter

Implementation of the `NativeJdbcExtractor` interface for WebSphere, supporting WebSphere Application Server 5.1 and higher.

Returns the underlying native Connection to application code instead of WebSphere's wrapper implementation; unwraps the Connection for native statements. 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 WebSphere DataSource: If a given object is not a WebSphere Connection wrapper, it will be returned as-is.

Since:
  1.1
Author:
  Juergen Hoeller

### Constructor Summary

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

### Method Summary

Methods
`protected Connection` `doGetNativeConnection(Connection con)` Retrieve the Connection via WebSphere's `getNativeConnection` method.
`boolean` `isNativeConnectionNecessaryForNativeCallableStatements()` Return `true`, as WebSphere returns wrapped CallableStatements.
`boolean` `isNativeConnectionNecessaryForNativePreparedStatements()` Return `true`, as WebSphere returns wrapped PreparedStatements.
`boolean` `isNativeConnectionNecessaryForNativeStatements()` Return `true`, as WebSphere returns wrapped Statements.

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

`getNativeCallableStatement, getNativeConnection, getNativeConnectionFromStatement, getNativePreparedStatement, getNativeResultSet, getNativeStatement`

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

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

### Constructor Detail

#### WebSphereNativeJdbcExtractor

    public WebSphereNativeJdbcExtractor()

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

### Method Detail

#### isNativeConnectionNecessaryForNativeStatements

    public boolean isNativeConnectionNecessaryForNativeStatements()

Return `true`, as WebSphere returns wrapped Statements.

Specified by:
  `isNativeConnectionNecessaryForNativeStatements` in interface `NativeJdbcExtractor`
Overrides:
  `isNativeConnectionNecessaryForNativeStatements` in class `NativeJdbcExtractorAdapter`

#### isNativeConnectionNecessaryForNativePreparedStatements

    public boolean isNativeConnectionNecessaryForNativePreparedStatements()

Return `true`, as WebSphere returns wrapped PreparedStatements.

Specified by:
  `isNativeConnectionNecessaryForNativePreparedStatements` in interface `NativeJdbcExtractor`
Overrides:
  `isNativeConnectionNecessaryForNativePreparedStatements` in class `NativeJdbcExtractorAdapter`

#### isNativeConnectionNecessaryForNativeCallableStatements

    public boolean isNativeConnectionNecessaryForNativeCallableStatements()

Return `true`, as WebSphere returns wrapped CallableStatements.

Specified by:
  `isNativeConnectionNecessaryForNativeCallableStatements` in interface `NativeJdbcExtractor`
Overrides:
  `isNativeConnectionNecessaryForNativeCallableStatements` in class `NativeJdbcExtractorAdapter`

#### doGetNativeConnection

    protected Connection doGetNativeConnection(Connection con)
                                        throws SQLException

Retrieve the Connection via WebSphere's `getNativeConnection` method.

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