Top Description Methods
org.hibernate.engine.jdbc.connections.spi

public Interface ConnectionProvider

extends Service, Wrapped
Known Direct Implementers
org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl, org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl, org.hibernate.engine.jdbc.connections.internal.UserSuppliedConnectionProviderImpl
Imports
java.sql.Connection, .SQLException, org.hibernate.service.Service, org.hibernate.service.spi.Wrapped

A contract for obtaining JDBC connections and, optionally, for pooling connections.

Implementors must provide a public default constructor.

A ConnectionProvider may be selected using the configuration property hibernate.connection.provider_class.

It's not usual for an applications to implement its on ConnectionProvider. Instead, the Hibernate project provides pre-built implementations for a variety of connection pools as add-on modules.

On the other hand, this is an extremely important extension point for integration with containers and frameworks.

Authors
Gavin King, Steve Ebersole
See Also
org.hibernate.cfg.AvailableSettings#CONNECTION_PROVIDER

Method Summary

Modifier and TypeMethod and Description
public void
closeConnection(Connection
The JDBC connection to release
conn
)

Release a connection from Hibernate use.

public Connection

Returns:

The obtained JDBC connection
getConnection
()

Obtains a connection for Hibernate use according to the underlying strategy of this provider.

public boolean

Returns:

true if aggressive releasing is supported; false otherwise.
supportsAggressiveRelease
()

Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?

Inherited from org.hibernate.service.spi.Wrapped:
isUnwrappableAsunwrap

Method Detail

closeConnectionback to summary
public void closeConnection(Connection conn) throws SQLException

Release a connection from Hibernate use.

Parameters
conn:Connection

The JDBC connection to release

Exceptions
SQLException:
Indicates a problem closing the connection
HibernateException:
Indicates a problem otherwise releasing a connection.
getConnectionback to summary
public Connection getConnection() throws SQLException

Obtains a connection for Hibernate use according to the underlying strategy of this provider.

Returns:Connection

The obtained JDBC connection

Exceptions
SQLException:
Indicates a problem opening a connection
HibernateException:
Indicates a problem otherwise obtaining a connection.
supportsAggressiveReleaseback to summary
public boolean supportsAggressiveRelease()

Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?

This is used in conjunction with org.hibernate.ConnectionReleaseMode#AFTER_STATEMENT 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.

Returns:boolean

true if aggressive releasing is supported; false otherwise.