org.springframework.jdbc.support.nativejdbc
Class JBossNativeJdbcExtractor

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

public class JBossNativeJdbcExtractor
extends NativeJdbcExtractorAdapter

Implementation of the NativeJdbcExtractor interface for JBoss, supporting JBoss Application Server 3.2.4+. As of Spring 3.1.1, it also supports JBoss 7.

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

Since:
03.01.2004
Author:
Juergen Hoeller
See Also:
org.jboss.resource.adapter.jdbc.WrappedConnection#getUnderlyingConnection, org.jboss.resource.adapter.jdbc.WrappedStatement#getUnderlyingStatement, org.jboss.resource.adapter.jdbc.WrappedResultSet#getUnderlyingResultSet

Constructor Summary
JBossNativeJdbcExtractor()
          This constructor retrieves JBoss JDBC wrapper classes, so we can get the underlying vendor connection using reflection.
 
Method Summary
protected  Connection doGetNativeConnection(Connection con)
          Retrieve the Connection via JBoss' getUnderlyingConnection method.
 CallableStatement getNativeCallableStatement(CallableStatement cs)
          Retrieve the Connection via JBoss' getUnderlyingStatement method.
 PreparedStatement getNativePreparedStatement(PreparedStatement ps)
          Retrieve the Connection via JBoss' getUnderlyingStatement method.
 ResultSet getNativeResultSet(ResultSet rs)
          Retrieve the Connection via JBoss' getUnderlyingResultSet method.
 Statement getNativeStatement(Statement stmt)
          Retrieve the Connection via JBoss' getUnderlyingStatement method.
 
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

JBossNativeJdbcExtractor

public JBossNativeJdbcExtractor()
This constructor retrieves JBoss JDBC wrapper classes, so we can get the underlying vendor connection using reflection.

Method Detail

doGetNativeConnection

protected Connection doGetNativeConnection(Connection con)
                                    throws SQLException
Retrieve the Connection via JBoss' getUnderlyingConnection method.

Overrides:
doGetNativeConnection in class NativeJdbcExtractorAdapter
Throws:
SQLException

getNativeStatement

public Statement getNativeStatement(Statement stmt)
                             throws SQLException
Retrieve the Connection via JBoss' getUnderlyingStatement method.

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
Retrieve the Connection via JBoss' getUnderlyingStatement method.

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
Retrieve the Connection via JBoss' getUnderlyingStatement method.

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
Retrieve the Connection via JBoss' getUnderlyingResultSet method.

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