- All Known Implementing Classes:
ConnectionProvider allows for abstracting the handling of
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
- Aaron Digulla, Lukas Eder
Method SummaryModifier and TypeMethodDescription
acquire()Acquire a connection from the connection lifecycle handler.
(Connection connection)Release a connection to the connection lifecycle handler.
acquire@Nullable @Nullable Connection acquire() throws DataAccessExceptionAcquire 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
- return a fresh connection instance every time
jOOQ will guarantee that every acquired connection is released through
- A connection for the current
nullis returned (e.g. by NoConnectionProvider), then statements cannot be executed. Attempts to execute statements will result in a
DataAccessException- If anything went wrong while acquiring a connection
(Connection connection) throws DataAccessExceptionRelease a connection to the connection lifecycle handler.
jOOQ will guarantee that every acquired connection is released exactly once.
connection- A connection that was previously obtained from
acquire(). This is never
DataAccessException- If anything went wrong while releasing a connection