org.springframework.jdbc.support

## Class JdbcAccessor

- java.lang.Object
- - org.springframework.jdbc.support.JdbcAccessor

All Implemented Interfaces:
  InitializingBean

Direct Known Subclasses:
  JdbcTemplate, SqlMapClientTemplate

    public abstract class JdbcAccessor
    extends Object
    implements InitializingBean

Base class for `JdbcTemplate` and other JDBC-accessing DAO helpers, defining common properties such as DataSource and exception translator.

Not intended to be used directly. See `JdbcTemplate`.

Since:
  28.11.2003
Author:
  Juergen Hoeller
See Also:
  `JdbcTemplate`

### Field Summary

Fields
`protected Log` `logger` Logger available to subclasses

### Constructor Summary

Constructors
Constructor and Description
`JdbcAccessor()`

### Method Summary

Methods
`void` `afterPropertiesSet()` Eagerly initialize the exception translator, if demanded, creating a default one for the specified DataSource if none set.
`DataSource` `getDataSource()` Return the DataSource used by this template.
`SQLExceptionTranslator` `getExceptionTranslator()` Return the exception translator for this instance.
`boolean` `isLazyInit()` Return whether to lazily initialize the SQLExceptionTranslator for this accessor.
`void` `setDatabaseProductName(String dbName)` Specify the database product name for the DataSource that this accessor uses.
`void` `setDataSource(DataSource dataSource)` Set the JDBC DataSource to obtain connections from.
`void` `setExceptionTranslator(SQLExceptionTranslator exceptionTranslator)` Set the exception translator for this instance.
`void` `setLazyInit(boolean lazyInit)` Set whether to lazily initialize the SQLExceptionTranslator for this accessor, on first encounter of a SQLException.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### logger

    protected final Log logger

Logger available to subclasses

### Constructor Detail

#### JdbcAccessor

    public JdbcAccessor()

### Method Detail

#### setDataSource

    public void setDataSource(DataSource dataSource)

Set the JDBC DataSource to obtain connections from.

#### getDataSource

    public DataSource getDataSource()

Return the DataSource used by this template.

#### setDatabaseProductName

    public void setDatabaseProductName(String dbName)

Specify the database product name for the DataSource that this accessor uses. This allows to initialize a SQLErrorCodeSQLExceptionTranslator without obtaining a Connection from the DataSource to get the metadata.

Parameters:
  `dbName` - the database product name that identifies the error codes entry
See Also:
  `SQLErrorCodeSQLExceptionTranslator.setDatabaseProductName(java.lang.String)`, `DatabaseMetaData.getDatabaseProductName()`

#### setExceptionTranslator

    public void setExceptionTranslator(SQLExceptionTranslator exceptionTranslator)

Set the exception translator for this instance.

If no custom translator is provided, a default `SQLErrorCodeSQLExceptionTranslator` is used which examines the SQLException's vendor-specific error code.

See Also:
  `SQLErrorCodeSQLExceptionTranslator`, `SQLStateSQLExceptionTranslator`

#### getExceptionTranslator

    public SQLExceptionTranslator getExceptionTranslator()

Return the exception translator for this instance.

Creates a default `SQLErrorCodeSQLExceptionTranslator` for the specified DataSource if none set, or a `SQLStateSQLExceptionTranslator` in case of no DataSource.

See Also:
  `getDataSource()`

#### setLazyInit

    public void setLazyInit(boolean lazyInit)

Set whether to lazily initialize the SQLExceptionTranslator for this accessor, on first encounter of a SQLException. Default is "true"; can be switched to "false" for initialization on startup.

Early initialization just applies if `afterPropertiesSet()` is called.

See Also:
  `getExceptionTranslator()`, `afterPropertiesSet()`

#### isLazyInit

    public boolean isLazyInit()

Return whether to lazily initialize the SQLExceptionTranslator for this accessor.

See Also:
  `getExceptionTranslator()`

#### afterPropertiesSet

    public void afterPropertiesSet()

Eagerly initialize the exception translator, if demanded, creating a default one for the specified DataSource if none set.

Specified by:
  `afterPropertiesSet` in interface `InitializingBean`