- All Known Implementing Classes:
DataSourceConnectionProvider,DefaultConnectionProvider,MockConnectionProvider,NoConnectionProvider
The ConnectionProvider allows for abstracting the handling of
custom Connection lifecycles outside of jOOQ, injecting
behaviour into jOOQ's internals. jOOQ will try to acquire a new JDBC
Connection from the connection provider as early as needed, and will
release it as early as possible.
TransactionProvider implementations may choose to influence
ConnectionProvider behaviour, e.g. by acquiring connections upon
TransactionProvider.begin(TransactionContext) and by releasing
connections only upon TransactionProvider.commit(TransactionContext),
or TransactionProvider.rollback(TransactionContext).
- Author:
- Aaron Digulla, Lukas Eder
-
Method Summary
Modifier and TypeMethodDescription@Nullable Connectionacquire()Acquire a connection from the connection lifecycle handler.voidrelease(Connection connection) Release a connection to the connection lifecycle handler.
-
Method Details
-
acquire
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. Ifnullis returned (e.g. by NoConnectionProvider), then statements cannot be executed. Attempts to execute statements will result in aDetachedException. - Throws:
DataAccessException- If anything went wrong while acquiring a connection
-
release
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
-