org.springframework.jdbc.support
Class JdbcAccessor

java.lang.Object
  extended by 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
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
JdbcAccessor()
           
 
Method Summary
 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