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.

    public interface ConnectionCallback<T>
    Generic callback interface for code that operates on a JDBC Connection. Allows to execute any number of operations on a single Connection, using any type and number of Statements.

    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.

    Juergen Hoeller
    See Also:
    JdbcTemplate.execute(ConnectionCallback), JdbcTemplate.query(java.lang.String, org.springframework.jdbc.core.ResultSetExtractor<T>), JdbcTemplate.update(java.lang.String)
    • Method Detail

      • doInConnection

        T doInConnection(java.sql.Connection con)
                            throws java.sql.SQLException,
        Gets called by 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 Connection
        a result object, or null if none
        java.sql.SQLException - if thrown by a JDBC method, to be auto-converted to a DataAccessException by a SQLExceptionTranslator
        DataAccessException - in case of custom exceptions
        See Also:
        JdbcTemplate.queryForObject(String, Class), JdbcTemplate.queryForRowSet(String)