org.springframework.jdbc.core.support
Class JdbcDaoSupport

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

public abstract class JdbcDaoSupport
extends DaoSupport

Convenient super class 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:
setDataSource(javax.sql.DataSource), getJdbcTemplate(), JdbcTemplate

Field Summary
 
Fields inherited from class org.springframework.dao.support.DaoSupport
logger
 
Constructor Summary
JdbcDaoSupport()
           
 
Method Summary
protected  void checkDaoConfig()
          Abstract subclasses must override this to check their configuration.
protected  JdbcTemplate createJdbcTemplate(DataSource dataSource)
          Create a JdbcTemplate for the given DataSource.
protected  Connection getConnection()
          Get a JDBC Connection, either from the current transaction or a new one.
 DataSource getDataSource()
          Return the JDBC DataSource used by this DAO.
protected  SQLExceptionTranslator getExceptionTranslator()
          Return the SQLExceptionTranslator of this DAO's JdbcTemplate, for translating SQLExceptions in custom JDBC access code.
 JdbcTemplate getJdbcTemplate()
          Return the JdbcTemplate for this DAO, pre-initialized with the DataSource or set explicitly.
protected  void initTemplateConfig()
          Initialize the template-based configuration of this DAO.
protected  void releaseConnection(Connection con)
          Close the given JDBC Connection, created via this DAO's DataSource, if it isn't bound to the thread.
 void setDataSource(DataSource dataSource)
          Set the JDBC DataSource to be used by this DAO.
 void setJdbcTemplate(JdbcTemplate jdbcTemplate)
          Set the JdbcTemplate for this DAO explicitly, as an alternative to specifying a DataSource.
 
Methods inherited from class org.springframework.dao.support.DaoSupport
afterPropertiesSet, initDao
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JdbcDaoSupport

public JdbcDaoSupport()
Method Detail

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:
setDataSource(javax.sql.DataSource)

getDataSource

public final DataSource getDataSource()
Return the JDBC DataSource used by this DAO.


setJdbcTemplate

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


getJdbcTemplate

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:
getJdbcTemplate()

checkDaoConfig

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

Implementors should be marked as final

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:
JdbcAccessor.getExceptionTranslator()

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:
DataSourceUtils.getConnection(javax.sql.DataSource)

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 - Connection to close
See Also:
DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)