org.springframework.jdbc.support

## Interface SQLExceptionTranslator

- All Known Implementing Classes:
    AbstractFallbackSQLExceptionTranslator, SQLErrorCodeSQLExceptionTranslator, SQLExceptionSubclassTranslator, SQLStateSQLExceptionTranslator

      public interface SQLExceptionTranslator

  Strategy interface for translating between `SQLExceptions` and Spring's data access strategy-agnostic `DataAccessException` hierarchy.

  Implementations can be generic (for example, using `SQLState` codes for JDBC) or wholly proprietary (for example, using Oracle error codes) for greater precision.

  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `DataAccessException`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `DataAccessException` | `translate(String task, String sql, SQLException ex)` Translate the given `SQLException` into a generic `DataAccessException`.

- - ### Method Detail

    - #### translate

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

      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.

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