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 super class for JDBC-based data access objects.Requires a
DataSource
to be set, providing aJdbcTemplate
based on it to subclasses through thegetJdbcTemplate()
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
Constructors Constructor Description JdbcDaoSupport()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
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
@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:
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
if concrete subclasses are not supposed to override this template method themselves.- Specified by:
checkDaoConfig
in classDaoSupport
getExceptionTranslator
protected final SQLExceptionTranslator getExceptionTranslator()
Return the SQLExceptionTranslator of this DAO's JdbcTemplate, for translating SQLExceptions in custom JDBC access code.
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
- the Connection to close- See Also:
DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)