Package org.springframework.jdbc.core.support

# Class JdbcDaoSupport

java.lang.Object
org.springframework.dao.support.DaoSupport
org.springframework.jdbc.core.support.JdbcDaoSupport

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`

Direct Known Subclasses:
  `NamedParameterJdbcDaoSupport`

public abstract class JdbcDaoSupport extends org.springframework.dao.support.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:
  - `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

Modifier and Type
Method
Description
`protected void`
`checkDaoConfig()`
`protected JdbcTemplate`
`createJdbcTemplate(DataSource dataSource)`
Create a JdbcTemplate for the given DataSource.
`protected final Connection`
`getConnection()`
Get a JDBC Connection, either from the current transaction or a new one.
`final DataSource`
`getDataSource()`
Return the JDBC DataSource used by this DAO.
`protected final SQLExceptionTranslator`
`getExceptionTranslator()`
Return the SQLExceptionTranslator of this DAO's JdbcTemplate, for translating SQLExceptions in custom JDBC access code.
`final 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 final void`
`releaseConnection(Connection con)`
Close the given JDBC Connection, created via this DAO's DataSource, if it isn't bound to the thread.
`final void`
`setDataSource(DataSource dataSource)`
Set the JDBC DataSource to be used by this DAO.
`final 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 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:
  - `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()

Specified by:
  `checkDaoConfig` in class `org.springframework.dao.support.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` - the Connection to close
See Also:
  - `DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)`