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 6.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
    Modifier and Type | Method and Description
    --- | ---
    `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`