Interface ConnectionCallback<T>
- Type Parameters:
T
- the result type
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
This is particularly useful for delegating to existing data access code
that expects a Connection to work on and throws SQLException. For newly
written code, it is strongly recommended to use JdbcTemplate's more specific
operations, for example a query
or update
variant.
- Since:
- 1.1.3
- Author:
- Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondoInConnection
(Connection con) Gets called byJdbcTemplate.execute
with an active JDBC Connection.
-
Method Details
-
doInConnection
Gets called byJdbcTemplate.execute
with an active JDBC Connection. Does not need to care about activating or closing the Connection, or handling transactions.If called without a thread-bound JDBC transaction (initiated by DataSourceTransactionManager), the code will simply get executed on the JDBC connection with its transactional semantics. If JdbcTemplate is configured to use a JTA-aware DataSource, the JDBC Connection and thus the callback code will be transactional if a JTA transaction is active.
Allows for returning a result object created within the callback, i.e. a domain object or a collection of domain objects. Note that there's special support for single step actions: see
JdbcTemplate.queryForObject
etc. A thrown RuntimeException is treated as application exception: it gets propagated to the caller of the template.- Parameters:
con
- active JDBC Connection- Returns:
- a result object, or
null
if none - Throws:
SQLException
- if thrown by a JDBC method, to be auto-converted to a DataAccessException by an SQLExceptionTranslatorDataAccessException
- in case of custom exceptions- See Also:
-