org.springframework.jdbc.support.nativejdbc
Class Jdbc4NativeJdbcExtractor

java.lang.Object
  extended by org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter
      extended by org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor
All Implemented Interfaces:
NativeJdbcExtractor
Direct Known Subclasses:
OracleJdbc4NativeJdbcExtractor

public class Jdbc4NativeJdbcExtractor
extends NativeJdbcExtractorAdapter

NativeJdbcExtractor implementation that delegates to JDBC 4.0's unwrap method, as defined by Wrapper. You will typically need to specify a vendor Connection type / Statement type / ResultSet type to extract, since JDBC 4.0 only actually unwraps to a given target type.

Note: Only use this when actually running against a JDBC 4.0 driver, with a connection pool that supports the JDBC 4.0 API (i.e. at least accepts JDBC 4.0 API calls and passes them through to the underlying driver)! Other than that, there is no need for connection pool specific setup. As of JDBC 4.0, NativeJdbcExtractors will typically be implemented for specific drivers instead of for specific pools (e.g. OracleJdbc4NativeJdbcExtractor).

Since:
2.5
Author:
Juergen Hoeller
See Also:
Wrapper.unwrap(java.lang.Class), SimpleNativeJdbcExtractor, JdbcTemplate.setNativeJdbcExtractor(org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor), OracleLobHandler.setNativeJdbcExtractor(org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor)

Constructor Summary
Jdbc4NativeJdbcExtractor()
           
 
Method Summary
protected  Connection doGetNativeConnection(Connection con)
          Not able to unwrap: return passed-in Connection.
 CallableStatement getNativeCallableStatement(CallableStatement cs)
          Not able to unwrap: return passed-in CallableStatement.
 PreparedStatement getNativePreparedStatement(PreparedStatement ps)
          Not able to unwrap: return passed-in PreparedStatement.
 ResultSet getNativeResultSet(ResultSet rs)
          Not able to unwrap: return passed-in ResultSet.
 Statement getNativeStatement(Statement stmt)
          Not able to unwrap: return passed-in Statement.
 void setCallableStatementType(Class<? extends CallableStatement> callableStatementType)
          Set the vendor's CallableStatement type, e.g.
 void setConnectionType(Class<? extends Connection> connectionType)
          Set the vendor's Connection type, e.g.
 void setPreparedStatementType(Class<? extends PreparedStatement> preparedStatementType)
          Set the vendor's PreparedStatement type, e.g.
 void setResultSetType(Class<? extends ResultSet> resultSetType)
          Set the vendor's ResultSet type, e.g.
 void setStatementType(Class<? extends Statement> statementType)
          Set the vendor's Statement type, e.g.
 
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

Jdbc4NativeJdbcExtractor

public Jdbc4NativeJdbcExtractor()
Method Detail

setConnectionType

public void setConnectionType(Class<? extends Connection> connectionType)
Set the vendor's Connection type, e.g. oracle.jdbc.OracleConnection.


setStatementType

public void setStatementType(Class<? extends Statement> statementType)
Set the vendor's Statement type, e.g. oracle.jdbc.OracleStatement.


setPreparedStatementType

public void setPreparedStatementType(Class<? extends PreparedStatement> preparedStatementType)
Set the vendor's PreparedStatement type, e.g. oracle.jdbc.OraclePreparedStatement.


setCallableStatementType

public void setCallableStatementType(Class<? extends CallableStatement> callableStatementType)
Set the vendor's CallableStatement type, e.g. oracle.jdbc.OracleCallableStatement.


setResultSetType

public void setResultSetType(Class<? extends ResultSet> resultSetType)
Set the vendor's ResultSet type, e.g. oracle.jdbc.OracleResultSet.


doGetNativeConnection

protected Connection doGetNativeConnection(Connection con)
                                    throws SQLException
Description copied from class: NativeJdbcExtractorAdapter
Not able to unwrap: return passed-in Connection.

Overrides:
doGetNativeConnection in class NativeJdbcExtractorAdapter
Throws:
SQLException

getNativeStatement

public Statement getNativeStatement(Statement stmt)
                             throws SQLException
Description copied from class: NativeJdbcExtractorAdapter
Not able to unwrap: return passed-in Statement.

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
Description copied from class: NativeJdbcExtractorAdapter
Not able to unwrap: return passed-in PreparedStatement.

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
Description copied from class: NativeJdbcExtractorAdapter
Not able to unwrap: return passed-in CallableStatement.

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
Description copied from class: NativeJdbcExtractorAdapter
Not able to unwrap: return passed-in ResultSet.

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