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

public abstract class JdbcDaoSupport
extends DaoSupport

Convenient super class for JDBC data access objects. Requires a DataSource to be set, providing a JdbcTemplate based on it to subclasses.

This base class is mainly intended for JdbcTemplate usage but can also be used when working with DataSourceUtils directly or with org.springframework.jdbc.object classes.

Since:
28.07.2003
Author:
Juergen Hoeller
See Also:
setDataSource(javax.sql.DataSource), JdbcTemplate, DataSourceUtils

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  void closeConnectionIfNecessary(Connection con)
          Deprecated. in favor of releaseConnection
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 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.


checkDaoConfig

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

Implementors should be marked as final, to make it clear that concrete subclasses are not supposed to override this template method themselves.

Specified by:
checkDaoConfig in class DaoSupport

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)

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

closeConnectionIfNecessary

protected final void closeConnectionIfNecessary(Connection con)
Deprecated. in favor of releaseConnection

Close the given JDBC Connection, created via this DAO's DataSource, if it isn't bound to the thread.

See Also:
releaseConnection(java.sql.Connection)

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)


Copyright (c) 2002-2007 The Spring Framework Project.