public interface ConnectionCallback<T>
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.
JdbcTemplate.execute(ConnectionCallback),
JdbcTemplate.query(java.lang.String, org.springframework.jdbc.core.ResultSetExtractor<T>),
JdbcTemplate.update(java.lang.String)| Modifier and Type | Method and Description |
|---|---|
T |
doInConnection(Connection con)
Gets called by
JdbcTemplate.execute with an active JDBC
Connection. |
T doInConnection(Connection con) throws SQLException, org.springframework.dao.DataAccessException
JdbcTemplate.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.
con - active JDBC Connectionnull if noneSQLException - if thrown by a JDBC method, to be auto-converted
to a DataAccessException by a SQLExceptionTranslatororg.springframework.dao.DataAccessException - in case of custom exceptionsJdbcTemplate.queryForObject(String, Class),
JdbcTemplate.queryForRowSet(String)