The Spring Framework

## org.springframework.jdbc.support
Class SQLExceptionSubclassTranslator

    java.lang.Object
      org.springframework.jdbc.support.SQLExceptionSubclassTranslator

All Implemented Interfaces:
  SQLExceptionTranslator

    public class SQLExceptionSubclassTranslator

extends Object
implements SQLExceptionTranslator

`SQLExceptionTranslator` implementation that analyzes the `SQLException` subclass that was returned. This is only available with JDBC 4.0 and later drivers when using Java 6 or later.

Since:
  2.5
Author:
  Thomas Risberg
See Also:
  `SQLException`

Field Summary
`protected Log` `logger` Logger available to subclasses

Constructor Summary
`SQLExceptionSubclassTranslator()`

Method Summary
`protected String` `buildMessage(String task, String sql, SQLException ex)` Build a message `String` for the given `SQLException`.
`DataAccessException` `translate(String task, String sql, SQLException ex)` Translate the given `SQLException` into a generic `DataAccessException`.

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

### SQLExceptionSubclassTranslator

    public SQLExceptionSubclassTranslator()

Method Detail

### translate

    public DataAccessException translate(String task,
                                         String sql,
                                         SQLException ex)

  Description copied from interface: `SQLExceptionTranslator`
  Translate the given `SQLException` into a generic `DataAccessException`.

  The returned DataAccessException is supposed to contain the original `SQLException` as root cause. However, client code may not generally rely on this due to DataAccessExceptions possibly being caused by other resource APIs as well. That said, a `getRootCause() instanceof SQLException` check (and subsequent cast) is considered reliable when expecting JDBC-based access to have happened.

  Specified by:
    `translate` in interface `SQLExceptionTranslator`
  Parameters:
    `task` - readable text describing the task being attempted
    `sql` - SQL query or update that caused the problem (may be `null`)
    `ex` - the offending `SQLException`
  Returns:
    the DataAccessException, wrapping the `SQLException`
  See Also:
    `NestedRuntimeException.getRootCause()`

### buildMessage

    protected String buildMessage(String task,
                                  String sql,
                                  SQLException ex)

  Build a message `String` for the given `SQLException`.

  Called when creating an instance of a generic `DataAccessException` class.

  Parameters:
    `task` - readable text describing the task being attempted
    `sql` - the SQL statement that caused the problem. May be `null`.
    `ex` - the offending `SQLException`
  Returns:
    the message `String` to use

The Spring Framework

Copyright © 2002-2008 The Spring Framework.