org.springframework.jdbc.support.nativejdbc
Class JBossNativeJdbcExtractor

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

public class JBossNativeJdbcExtractor
extends NativeJdbcExtractorAdapter

Implementation of the NativeJdbcExtractor interface for the JBoss 3.2 connection pool. 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 OracleConnection.

Note that JBoss started wrapping ResultSets as of 3.2.4, which is supported by this implementation, while still being compatible with 3.2.x

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
Throws:
SQLException

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
Throws:
SQLException

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
Throws:
SQLException

getNativeResultSet

public ResultSet getNativeResultSet(ResultSet rs)
                             throws SQLException
Retrieve the Connection via JBoss' getUnderlyingResultSet method.

We access WrappedResultSet via direct reflection, since this class only appeared in JBoss 3.2.4 and we want to stay compatible with at least 3.2.2+.

Specified by:
getNativeResultSet in interface NativeJdbcExtractor
Overrides:
getNativeResultSet in class NativeJdbcExtractorAdapter
Throws:
SQLException


Copyright (C) 2003-2004 The Spring Framework Project.