org.springframework.jdbc.support.nativejdbc

## Class WebLogicNativeJdbcExtractor

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

- All Implemented Interfaces:
    NativeJdbcExtractor

      public class WebLogicNativeJdbcExtractor
      extends NativeJdbcExtractorAdapter

  Implementation of the `NativeJdbcExtractor` interface for WebLogic, supporting WebLogic Server 9.0 and higher.

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

  Since:
    1.0.2
  Author:
    Thomas Risberg, Juergen Hoeller
  See Also:
    `NativeJdbcExtractorAdapter.getNativeConnection(java.sql.Connection)`, `WLConnection`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WebLogicNativeJdbcExtractor()` This constructor retrieves the WebLogic JDBC extension interface, 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 WebLogic's `getVendorConnection` method.
    `boolean` | `isNativeConnectionNecessaryForNativeCallableStatements()` Return `true`, as WebLogic returns wrapped CallableStatements.
    `boolean` | `isNativeConnectionNecessaryForNativePreparedStatements()` Return `true`, as WebLogic returns wrapped PreparedStatements.
    `boolean` | `isNativeConnectionNecessaryForNativeStatements()` Return `true`, as WebLogic 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

    - #### WebLogicNativeJdbcExtractor

          public WebLogicNativeJdbcExtractor()

      This constructor retrieves the WebLogic JDBC extension interface, so we can get the underlying vendor connection using reflection.

  - ### Method Detail

    - #### isNativeConnectionNecessaryForNativeStatements

          public boolean isNativeConnectionNecessaryForNativeStatements()

      Return `true`, as WebLogic returns wrapped Statements.
      Specified by:
        `isNativeConnectionNecessaryForNativeStatements` in interface `NativeJdbcExtractor`
      Overrides:
        `isNativeConnectionNecessaryForNativeStatements` in class `NativeJdbcExtractorAdapter`

    - #### isNativeConnectionNecessaryForNativePreparedStatements

          public boolean isNativeConnectionNecessaryForNativePreparedStatements()

      Return `true`, as WebLogic returns wrapped PreparedStatements.
      Specified by:
        `isNativeConnectionNecessaryForNativePreparedStatements` in interface `NativeJdbcExtractor`
      Overrides:
        `isNativeConnectionNecessaryForNativePreparedStatements` in class `NativeJdbcExtractorAdapter`

    - #### isNativeConnectionNecessaryForNativeCallableStatements

          public boolean isNativeConnectionNecessaryForNativeCallableStatements()

      Return `true`, as WebLogic 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 WebLogic's `getVendorConnection` method.
      Overrides:
        `doGetNativeConnection` in class `NativeJdbcExtractorAdapter`
      Throws:
        `SQLException`