org.springframework.jdbc.datasource
Class ConnectionHolder

java.lang.Object
  extended by org.springframework.transaction.support.ResourceHolderSupport
      extended by org.springframework.jdbc.datasource.ConnectionHolder

public class ConnectionHolder
extends ResourceHolderSupport

Connection holder, wrapping a JDBC Connection. DataSourceTransactionManager binds instances of this class to the thread, for a given DataSource.

Inherits rollback-only support for nested JDBC transactions and reference count functionality from the base class.

Note: This is an SPI class, not intended to be used by applications.

Since:
06.05.2003
Author:
Juergen Hoeller
See Also:
DataSourceTransactionManager, DataSourceUtils

Constructor Summary
ConnectionHolder(Connection connection)
          Create a new ConnectionHolder for the given JDBC Connection, wrapping it with a SimpleConnectionHandle.
ConnectionHolder(ConnectionHandle connectionHandle)
          Create a new ConnectionHolder for the given ConnectionHandle.
 
Method Summary
 Connection getConnection()
          Return the current Connection held by this ConnectionHolder.
 ConnectionHandle getConnectionHandle()
          Return the ConnectionHandle held by this ConnectionHolder.
 void released()
          Releases the current Connection held by this ConnectionHolder.
 
Methods inherited from class org.springframework.transaction.support.ResourceHolderSupport
clear, getDeadline, getTimeToLiveInMillis, getTimeToLiveInSeconds, hasTimeout, isOpen, isRollbackOnly, isSynchronizedWithTransaction, requested, setRollbackOnly, setSynchronizedWithTransaction, setTimeoutInMillis, setTimeoutInSeconds
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionHolder

public ConnectionHolder(ConnectionHandle connectionHandle)
Create a new ConnectionHolder for the given ConnectionHandle.

Parameters:
connectionHandle - the ConnectionHandle to hold

ConnectionHolder

public ConnectionHolder(Connection connection)
Create a new ConnectionHolder for the given JDBC Connection, wrapping it with a SimpleConnectionHandle.

Parameters:
connection - the JDBC Connection to hold
See Also:
SimpleConnectionHandle
Method Detail

getConnectionHandle

public ConnectionHandle getConnectionHandle()
Return the ConnectionHandle held by this ConnectionHolder.


getConnection

public Connection getConnection()
Return the current Connection held by this ConnectionHolder.

This will be the same Connection until released gets called on the ConnectionHolder, which will reset the held Connection, fetching a new Connection on demand.

See Also:
ConnectionHandle.getConnection(), released()

released

public void released()
Releases the current Connection held by this ConnectionHolder.

This is necessary for ConnectionHandles that expect "Connection borrowing", where each returned Connection is only temporarily leased and needs to be returned once the data operation is done, to make the Connection available for other operations within the same transaction. This is the case with JDO 2.0 DataStoreConnections, for example.

Overrides:
released in class ResourceHolderSupport
See Also:
DefaultJdoDialect.getJdbcConnection(javax.jdo.PersistenceManager, boolean)


Copyright (c) 2002-2005 The Spring Framework Project.