- All Implemented Interfaces:
ConnectionProvider
DataSource-oriented
ConnectionProvider
This implementation wraps a JDBC DataSource. jOOQ will use that data
source for initialising connections, and creating statements.
Use this connection provider if you want to run distributed transactions,
such as javax.transaction.UserTransaction. jOOQ will
close() all connections after query execution (and
result fetching) in order to return the connection to the connection pool. If
you do not use distributed transactions, this will produce driver-specific
behaviour at the end of query execution at close() invocation
(e.g. a transaction rollback). Use a DefaultConnectionProvider
instead, to control the connection's lifecycle, or implement your own
ConnectionProvider.
- Author:
- Aaron Digulla, Lukas Eder
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription@NotNull Connectionacquire()Acquire a connection from the connection lifecycle handler.@NotNull DataSourcevoidrelease(Connection connection) Release a connection to the connection lifecycle handler.
-
Constructor Details
-
DataSourceConnectionProvider
-
-
Method Details
-
dataSource
-
acquire
Description copied from interface:ConnectionProviderAcquire 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
ConnectionProvider.release(Connection)exactly once.- Specified by:
acquirein interfaceConnectionProvider- 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.
-
release
Description copied from interface:ConnectionProviderRelease a connection to the connection lifecycle handler.jOOQ will guarantee that every acquired connection is released exactly once.
- Specified by:
releasein interfaceConnectionProvider- Parameters:
connection- A connection that was previously obtained fromConnectionProvider.acquire(). This is nevernull.
-