org.springframework.jdbc.support.nativejdbc
Class C3P0NativeJdbcExtractor

java.lang.Object
  extended by org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter
      extended by org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor
All Implemented Interfaces:
NativeJdbcExtractor

public class C3P0NativeJdbcExtractor
extends NativeJdbcExtractorAdapter

Implementation of the NativeJdbcExtractor interface for the C3P0 connection pool.

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

Note that this class requires C3P0 0.8.5 or later; for earlier C3P0 versions, use SimpleNativeJdbcExtractor (which won't work for C3P0 0.8.5 or later).

Since:
1.1.5
Author:
Juergen Hoeller
See Also:
C3P0ProxyConnection.rawConnectionOperation(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]), SimpleNativeJdbcExtractor

Constructor Summary
C3P0NativeJdbcExtractor()
           
 
Method Summary
protected  Connection doGetNativeConnection(Connection con)
          Retrieve the Connection via C3P0's rawConnectionOperation API, using the getRawConnection as callback to get access to the raw Connection (which is otherwise not directly supported by C3P0).
static Connection getRawConnection(Connection con)
          This method is not meant to be used directly; it rather serves as callback method for C3P0's "rawConnectionOperation" API.
 boolean isNativeConnectionNecessaryForNativeCallableStatements()
          Return false by default.
 boolean isNativeConnectionNecessaryForNativePreparedStatements()
          Return false by default.
 boolean isNativeConnectionNecessaryForNativeStatements()
          Return false by default.
 
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

C3P0NativeJdbcExtractor

public C3P0NativeJdbcExtractor()
Method Detail

getRawConnection

public static Connection getRawConnection(Connection con)
This method is not meant to be used directly; it rather serves as callback method for C3P0's "rawConnectionOperation" API.

Parameters:
con - a native Connection handle
Returns:
the native Connection handle, as-is

isNativeConnectionNecessaryForNativeStatements

public boolean isNativeConnectionNecessaryForNativeStatements()
Description copied from class: NativeJdbcExtractorAdapter
Return false by default.

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

isNativeConnectionNecessaryForNativePreparedStatements

public boolean isNativeConnectionNecessaryForNativePreparedStatements()
Description copied from class: NativeJdbcExtractorAdapter
Return false by default.

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

isNativeConnectionNecessaryForNativeCallableStatements

public boolean isNativeConnectionNecessaryForNativeCallableStatements()
Description copied from class: NativeJdbcExtractorAdapter
Return false by default.

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

doGetNativeConnection

protected Connection doGetNativeConnection(Connection con)
                                    throws SQLException
Retrieve the Connection via C3P0's rawConnectionOperation API, using the getRawConnection as callback to get access to the raw Connection (which is otherwise not directly supported by C3P0).

Overrides:
doGetNativeConnection in class NativeJdbcExtractorAdapter
Throws:
SQLException
See Also:
getRawConnection(java.sql.Connection)