クラス SQLErrorCodeSQLExceptionTranslator
java.lang.ObjectSE
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator
- 実装されたすべてのインターフェース:
SQLExceptionTranslator
ベンダー固有のエラーコードを分析する
SQLExceptionTranslator
の実装。SQL 状態に基づいた実装よりも正確ですが、ベンダー固有のものです。このクラスは、次の一致ルールを適用します。
- サブクラスで実装されたカスタム変換を試してください。このクラスは具象であり、通常はそれ自体が使用されることに注意してください。この場合、この規則は適用されません。
- エラーコードの一致を適用します。エラーコードは、デフォルトで SQLErrorCodesFactory から取得されます。このファクトリは、クラスパスから "sql-error-codes.xml" ファイルをロードし、データベースメタデータからデータベース名のエラーコードマッピングを定義します。
- フォールバックトランスレータへのフォールバック。
SQLStateSQLExceptionTranslator
はデフォルトのフォールバックトランスレータであり、例外の SQL 状態のみを分析します。独自のSQLException
サブクラス階層を導入する Java 6 は、デフォルトでSQLExceptionSubclassTranslator
を使用します。これは、特定のサブクラスに遭遇しない場合、Spring 独自の SQL 状態変換にフォールバックします。
"sql-error-codes.xml" という名前の構成ファイルは、デフォルトでこのパッケージから読み取られます。Spring JDBC パッケージが同じ ClassLoader からロードされている限り、クラスパスのルート("/WEB-INF/classes" ディレクトリなど)にある同じ名前のファイルを介してオーバーライドできます。
- 作成者:
- Rod Johnson, Thomas Risberg, Juergen Hoeller, Sam Brannen
- 関連事項:
フィールドサマリー
クラス org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクターコンストラクター説明JavaBean として使用するコンストラクター。指定されたデータベース製品名の SQL エラーコードトランスレータを作成します。SQLErrorCodeSQLExceptionTranslator
(DataSourceSE dataSource) 指定された DataSource の SQL エラーコードトランスレータを作成します。これらのエラーコードを指定して、SQLErrorCode トランスレータを作成します。メソッドのサマリー
修飾子と型メソッド説明protected DataAccessException
createCustomException
(StringSE task, StringSE sql, SQLExceptionSE sqlEx, ClassSE<?> exceptionClass) CustomSQLErrorCodesTranslation
定義の特定の例外クラスに基づいて、カスタムDataAccessException
を作成します。protected DataAccessException
customTranslate
(StringSE task, StringSE sql, SQLExceptionSE sqlEx) サブクラスはこのメソッドをオーバーライドして、SQLException
SE からDataAccessException
へのカスタムマッピングを試みることができます。protected DataAccessException
doTranslate
(StringSE task, StringSE sql, SQLExceptionSE ex) 指定された例外を実際に変換するためのテンプレートメソッド。このトランスレータが使用するエラーコードを返します。void
setDatabaseProductName
(StringSE dbName) このトランスレーターのデータベース製品名を設定します。void
setDataSource
(DataSourceSE dataSource) このトランスレーターの DataSource を設定します。void
変換に使用するカスタムエラーコードを設定します。クラス org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator から継承されたメソッド
buildMessage, getFallbackTranslator, setFallbackTranslator, translate
コンストラクターの詳細
SQLErrorCodeSQLExceptionTranslator
public SQLErrorCodeSQLExceptionTranslator()JavaBean として使用するコンストラクター。SqlErrorCodes または DataSource プロパティを設定する必要があります。SQLErrorCodeSQLExceptionTranslator
指定された DataSource の SQL エラーコードトランスレータを作成します。このコンストラクターを呼び出すと、DataSource から接続が取得され、メタデータが取得されます。- パラメーター:
dataSource
- メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSource- 関連事項:
SQLErrorCodeSQLExceptionTranslator
指定されたデータベース製品名の SQL エラーコードトランスレータを作成します。このコンストラクターを呼び出すと、DataSource から接続を取得してメタデータを取得することが回避されます。- パラメーター:
dbName
- エラーコードエントリを識別するデータベース製品名- 関連事項:
SQLErrorCodeSQLExceptionTranslator
これらのエラーコードを指定して、SQLErrorCode トランスレータを作成します。接続を使用してデータベースのメタデータ検索を実行する必要はありません。- パラメーター:
sec
- エラーコード
メソッドの詳細
setDataSource
このトランスレーターの DataSource を設定します。このプロパティを設定すると、DataSource から接続が取得され、メタデータが取得されます。
- パラメーター:
dataSource
- メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSource- 関連事項:
setDatabaseProductName
このトランスレーターのデータベース製品名を設定します。このプロパティを設定すると、DataSource から接続を取得してメタデータを取得することを回避できます。
- パラメーター:
dbName
- エラーコードエントリを識別するデータベース製品名- 関連事項:
setSqlErrorCodes
変換に使用するカスタムエラーコードを設定します。- パラメーター:
sec
- 使用するカスタムエラーコード
getSqlErrorCodes
このトランスレータが使用するエラーコードを返します。通常、DataSource を介して決定されます。doTranslate
@Nullable protected DataAccessException doTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE ex) クラスからコピーされた説明:AbstractFallbackSQLExceptionTranslator
指定された例外を実際に変換するためのテンプレートメソッド。渡された引数は事前にチェックされています。さらに、このメソッドは
null
を返し、例外の一致が見つからなかったこと、およびフォールバック変換が開始されることを示すことができます。- 次で指定:
- クラス
AbstractFallbackSQLExceptionTranslator
のdoTranslate
- パラメーター:
task
- 試行されているタスクを説明する読み取り可能なテキストsql
- 問題を引き起こした SQL クエリまたは更新 (既知の場合)ex
- 問題のあるSQLException
- 戻り値:
SQLException
をラップする DataAccessException。例外一致が見つからない場合はnull
customTranslate
@Nullable protected DataAccessException customTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx) サブクラスはこのメソッドをオーバーライドして、SQLException
SE からDataAccessException
へのカスタムマッピングを試みることができます。- パラメーター:
task
- 試行されているタスクを説明する読み取り可能なテキストsql
- 問題を引き起こした SQL クエリまたは更新 (null
の場合があります)sqlEx
- 問題のある SQLException- 戻り値:
- カスタム変換が適用されない場合は
null
、それ以外の場合はカスタム変換の結果であるDataAccessException
。この例外には、ネストされた根本原因としてsqlEx
パラメーターを含める必要があります。この実装は常にnull
を返します。つまり、トランスレータは常にデフォルトのエラーコードにフォールバックします。
createCustomException
@Nullable protected DataAccessException createCustomException(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx, ClassSE<?> exceptionClass) CustomSQLErrorCodesTranslation
定義の特定の例外クラスに基づいて、カスタムDataAccessException
を作成します。- パラメーター:
task
- 試行されているタスクを説明する読み取り可能なテキストsql
- 問題を引き起こした SQL クエリまたは更新 (null
の場合があります)sqlEx
- 問題のある SQLExceptionexceptionClass
-CustomSQLErrorCodesTranslation
定義で定義されている、使用する例外クラス- 戻り値:
- カスタム例外を作成できなかった場合は
null
、それ以外の場合は結果のDataAccessException
。この例外には、ネストされた根本原因としてsqlEx
パラメーターを含める必要があります。 - 関連事項: