-
- All Known Implementing Classes:
DataSourceConnectionProvider,DefaultConnectionProvider,MockConnectionProvider,NoConnectionProvider
public interface ConnectionProviderA connection lifecycle handler API.The
ConnectionProviderallows for abstracting the handling of customConnectionlifecycles outside of jOOQ, injecting behaviour into jOOQ's internals. jOOQ will try to acquire a new JDBCConnectionfrom the connection provider as early as needed, and will release it as early as possible.TransactionProviderimplementations may choose to influenceConnectionProviderbehaviour, e.g. by acquiring connections uponTransactionProvider.begin(TransactionContext)and by releasing connections only uponTransactionProvider.commit(TransactionContext), orTransactionProvider.rollback(TransactionContext).- Author:
- Aaron Digulla, Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Connectionacquire()Acquire a connection from the connection lifecycle handler.voidrelease(Connection connection)Release a connection to the connection lifecycle handler.
-
-
-
Method Detail
-
acquire
Connection acquire() throws DataAccessException
Acquire a connection from the connection lifecycle handler.This method is called by jOOQ exactly once per execution lifecycle, i.e. per
ExecuteContext. Implementations may freely chose, whether subsequent calls to this method:- return the same connection instance
- return the same connection instance for the same thread
- return the same connection instance for the same transaction (e.g. a
javax.transaction.UserTransaction) - return a fresh connection instance every time
jOOQ will guarantee that every acquired connection is released through
release(Connection)exactly once.- Returns:
- A connection for the current
ExecuteContext. - Throws:
DataAccessException- If anything went wrong while acquiring a connection
-
release
void release(Connection connection) throws DataAccessException
Release a connection to the connection lifecycle handler.jOOQ will guarantee that every acquired connection is released exactly once.
- Parameters:
connection- A connection that was previously obtained fromacquire(). This is nevernull.- Throws:
DataAccessException- If anything went wrong while releasing a connection
-
-