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
).
Wrapper.unwrap(java.lang.Class<T>)
,
SimpleNativeJdbcExtractor
,
JdbcTemplate.setNativeJdbcExtractor(org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor)
,
OracleLobHandler.setNativeJdbcExtractor(org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor)
Modifier and Type | Field and Description |
---|---|
private java.lang.Class<? extends java.sql.CallableStatement> |
callableStatementType |
private java.lang.Class<? extends java.sql.Connection> |
connectionType |
private java.lang.Class<? extends java.sql.PreparedStatement> |
preparedStatementType |
private java.lang.Class<? extends java.sql.ResultSet> |
resultSetType |
private java.lang.Class<? extends java.sql.Statement> |
statementType |
Constructor and Description |
---|
Jdbc4NativeJdbcExtractor() |
Modifier and Type | Method and Description |
---|---|
protected java.sql.Connection |
doGetNativeConnection(java.sql.Connection con)
Not able to unwrap: return passed-in Connection.
|
java.sql.CallableStatement |
getNativeCallableStatement(java.sql.CallableStatement cs)
Not able to unwrap: return passed-in CallableStatement.
|
java.sql.PreparedStatement |
getNativePreparedStatement(java.sql.PreparedStatement ps)
Not able to unwrap: return passed-in PreparedStatement.
|
java.sql.ResultSet |
getNativeResultSet(java.sql.ResultSet rs)
Not able to unwrap: return passed-in ResultSet.
|
java.sql.Statement |
getNativeStatement(java.sql.Statement stmt)
Not able to unwrap: return passed-in Statement.
|
void |
setCallableStatementType(java.lang.Class<? extends java.sql.CallableStatement> callableStatementType)
Set the vendor's CallableStatement type, e.g.
|
void |
setConnectionType(java.lang.Class<? extends java.sql.Connection> connectionType)
Set the vendor's Connection type, e.g.
|
void |
setPreparedStatementType(java.lang.Class<? extends java.sql.PreparedStatement> preparedStatementType)
Set the vendor's PreparedStatement type, e.g.
|
void |
setResultSetType(java.lang.Class<? extends java.sql.ResultSet> resultSetType)
Set the vendor's ResultSet type, e.g.
|
void |
setStatementType(java.lang.Class<? extends java.sql.Statement> statementType)
Set the vendor's Statement type, e.g.
|
getNativeConnection, getNativeConnectionFromStatement, isNativeConnectionNecessaryForNativeCallableStatements, isNativeConnectionNecessaryForNativePreparedStatements, isNativeConnectionNecessaryForNativeStatements
private java.lang.Class<? extends java.sql.Connection> connectionType
private java.lang.Class<? extends java.sql.Statement> statementType
private java.lang.Class<? extends java.sql.PreparedStatement> preparedStatementType
private java.lang.Class<? extends java.sql.CallableStatement> callableStatementType
private java.lang.Class<? extends java.sql.ResultSet> resultSetType
public void setConnectionType(java.lang.Class<? extends java.sql.Connection> connectionType)
oracle.jdbc.OracleConnection
.public void setStatementType(java.lang.Class<? extends java.sql.Statement> statementType)
oracle.jdbc.OracleStatement
.public void setPreparedStatementType(java.lang.Class<? extends java.sql.PreparedStatement> preparedStatementType)
oracle.jdbc.OraclePreparedStatement
.public void setCallableStatementType(java.lang.Class<? extends java.sql.CallableStatement> callableStatementType)
oracle.jdbc.OracleCallableStatement
.public void setResultSetType(java.lang.Class<? extends java.sql.ResultSet> resultSetType)
oracle.jdbc.OracleResultSet
.protected java.sql.Connection doGetNativeConnection(java.sql.Connection con) throws java.sql.SQLException
NativeJdbcExtractorAdapter
doGetNativeConnection
in class NativeJdbcExtractorAdapter
java.sql.SQLException
public java.sql.Statement getNativeStatement(java.sql.Statement stmt) throws java.sql.SQLException
NativeJdbcExtractorAdapter
getNativeStatement
in interface NativeJdbcExtractor
getNativeStatement
in class NativeJdbcExtractorAdapter
stmt
- the Statement handle, potentially wrapped by a connection pooljava.sql.SQLException
- if thrown by JDBC methodspublic java.sql.PreparedStatement getNativePreparedStatement(java.sql.PreparedStatement ps) throws java.sql.SQLException
NativeJdbcExtractorAdapter
getNativePreparedStatement
in interface NativeJdbcExtractor
getNativePreparedStatement
in class NativeJdbcExtractorAdapter
ps
- the PreparedStatement handle, potentially wrapped by a connection pooljava.sql.SQLException
- if thrown by JDBC methodspublic java.sql.CallableStatement getNativeCallableStatement(java.sql.CallableStatement cs) throws java.sql.SQLException
NativeJdbcExtractorAdapter
getNativeCallableStatement
in interface NativeJdbcExtractor
getNativeCallableStatement
in class NativeJdbcExtractorAdapter
cs
- the CallableStatement handle, potentially wrapped by a connection pooljava.sql.SQLException
- if thrown by JDBC methodspublic java.sql.ResultSet getNativeResultSet(java.sql.ResultSet rs) throws java.sql.SQLException
NativeJdbcExtractorAdapter
getNativeResultSet
in interface NativeJdbcExtractor
getNativeResultSet
in class NativeJdbcExtractorAdapter
rs
- the ResultSet handle, potentially wrapped by a connection pooljava.sql.SQLException
- if thrown by JDBC methods