org.hibernate.connection
Class DatasourceConnectionProvider

java.lang.Object
  extended by org.hibernate.connection.DatasourceConnectionProvider
All Implemented Interfaces:
ConnectionProvider

public class DatasourceConnectionProvider
extends Object
implements ConnectionProvider

A connection provider that uses a DataSource registered with JNDI. Hibernate will use this ConnectionProvider by default if the property hibernate.connection.datasource is set.

Author:
Gavin King
See Also:
ConnectionProvider

Constructor Summary
DatasourceConnectionProvider()
           
 
Method Summary
 void close()
          Release all resources held by this provider.
 void closeConnection(Connection conn)
          Dispose of a used connection.
 void configure(Properties props)
          Initialize the connection provider from given properties.
 Connection getConnection()
          Grab a connection, with the autocommit mode specified by hibernate.connection.autocommit.
 javax.sql.DataSource getDataSource()
           
 void setDataSource(javax.sql.DataSource ds)
           
 boolean supportsAggressiveRelease()
          Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with org.hibernate.cfg.Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections.

 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DatasourceConnectionProvider

public DatasourceConnectionProvider()
Method Detail

getDataSource

public javax.sql.DataSource getDataSource()

setDataSource

public void setDataSource(javax.sql.DataSource ds)

configure

public void configure(Properties props)
               throws HibernateException
Description copied from interface: ConnectionProvider
Initialize the connection provider from given properties.

Specified by:
configure in interface ConnectionProvider
Parameters:
props - SessionFactory properties
Throws:
HibernateException

getConnection

public Connection getConnection()
                         throws SQLException
Description copied from interface: ConnectionProvider
Grab a connection, with the autocommit mode specified by hibernate.connection.autocommit.

Specified by:
getConnection in interface ConnectionProvider
Returns:
a JDBC connection
Throws:
SQLException

closeConnection

public void closeConnection(Connection conn)
                     throws SQLException
Description copied from interface: ConnectionProvider
Dispose of a used connection.

Specified by:
closeConnection in interface ConnectionProvider
Parameters:
conn - a JDBC connection
Throws:
SQLException

close

public void close()
Description copied from interface: ConnectionProvider
Release all resources held by this provider. JavaDoc requires a second sentence.

Specified by:
close in interface ConnectionProvider

supportsAggressiveRelease

public boolean supportsAggressiveRelease()
Description copied from interface: ConnectionProvider
Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with org.hibernate.cfg.Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections. However, the configured ConnectionProvider must support re-acquisition of the same underlying connection for that semantic to work.

Typically, this is only true in managed environments where a container tracks connections by transaction or thread. Note that JTA semantic depends on the fact that the underlying connection provider does support aggressive release.

Specified by:
supportsAggressiveRelease in interface ConnectionProvider
See Also:
ConnectionProvider.supportsAggressiveRelease()