Class JdbcDaoSupport

java.lang.Object
org.springframework.dao.support.DaoSupport
org.springframework.jdbc.core.support.JdbcDaoSupport
All Implemented Interfaces:
InitializingBean
Direct Known Subclasses:
NamedParameterJdbcDaoSupport

public abstract class JdbcDaoSupport extends DaoSupport
Convenient superclass for JDBC-based data access objects.

Requires a DataSource to be set, providing a JdbcTemplate based on it to subclasses through the getJdbcTemplate() method.

This base class is mainly intended for JdbcTemplate usage but can also be used when working with a Connection directly or when using org.springframework.jdbc.object operation objects.

Since:
28.07.2003
Author:
Juergen Hoeller
See Also:
  • Constructor Details

    • JdbcDaoSupport

      public JdbcDaoSupport()
  • Method Details

    • setDataSource

      public final void setDataSource(DataSource dataSource)
      Set the JDBC DataSource to be used by this DAO.
    • createJdbcTemplate

      protected JdbcTemplate createJdbcTemplate(DataSource dataSource)
      Create a JdbcTemplate for the given DataSource. Only invoked if populating the DAO with a DataSource reference!

      Can be overridden in subclasses to provide a JdbcTemplate instance with different configuration, or a custom JdbcTemplate subclass.

      Parameters:
      dataSource - the JDBC DataSource to create a JdbcTemplate for
      Returns:
      the new JdbcTemplate instance
      See Also:
    • getDataSource

      @Nullable public final DataSource getDataSource()
      Return the JDBC DataSource used by this DAO.
    • setJdbcTemplate

      public final void setJdbcTemplate(@Nullable JdbcTemplate jdbcTemplate)
      Set the JdbcTemplate for this DAO explicitly, as an alternative to specifying a DataSource.
    • getJdbcTemplate

      @Nullable public final JdbcTemplate getJdbcTemplate()
      Return the JdbcTemplate for this DAO, pre-initialized with the DataSource or set explicitly.
    • initTemplateConfig

      protected void initTemplateConfig()
      Initialize the template-based configuration of this DAO. Called after a new JdbcTemplate has been set, either directly or through a DataSource.

      This implementation is empty. Subclasses may override this to configure further objects based on the JdbcTemplate.

      See Also:
    • checkDaoConfig

      protected void checkDaoConfig()
      Description copied from class: DaoSupport
      Abstract subclasses must override this to check their configuration.

      Implementors should be marked as final if concrete subclasses are not supposed to override this template method themselves.

      Specified by:
      checkDaoConfig in class DaoSupport
    • getExceptionTranslator

      protected final SQLExceptionTranslator getExceptionTranslator()
      Return the SQLExceptionTranslator of this DAO's JdbcTemplate, for translating SQLExceptions in custom JDBC access code.
      See Also:
    • getConnection

      protected final Connection getConnection() throws CannotGetJdbcConnectionException
      Get a JDBC Connection, either from the current transaction or a new one.
      Returns:
      the JDBC Connection
      Throws:
      CannotGetJdbcConnectionException - if the attempt to get a Connection failed
      See Also:
    • releaseConnection

      protected final void releaseConnection(Connection con)
      Close the given JDBC Connection, created via this DAO's DataSource, if it isn't bound to the thread.
      Parameters:
      con - the Connection to close
      See Also: