- All Known Implementing Classes:
A contract for obtaining JDBC connections and, optionally, for pooling connections.
Implementors must provide a public default constructor.
ConnectionProvidermay 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.
- See Also:
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
closeConnection(Connection conn)Release a connection from Hibernate use.
getConnection()Obtains a connection for Hibernate use according to the underlying strategy of this provider.
supportsAggressiveRelease()Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?
Connection getConnection() throws SQLExceptionObtains a connection for Hibernate use according to the underlying strategy of this provider.
void closeConnection(Connection conn) throws SQLExceptionRelease a connection from Hibernate use.
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
ConnectionReleaseMode.AFTER_STATEMENTto aggressively release JDBC connections. However, the configured
ConnectionProvidermust 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.
trueif aggressive releasing is supported;