T
- 結果の型 @FunctionalInterfaceSE public interface ConnectionCallback<T>
これは、接続が機能することを期待して SQLException をスローする既存のデータアクセスコードに委譲する場合に特に便利です。新しく記述されたコードの場合、query
または update
バリアントなど、JdbcTemplate のより具体的な操作を使用することを強くお勧めします。
修飾子と型 | メソッドと説明 |
---|---|
T | doInConnection(ConnectionSE con) アクティブな JDBC 接続で JdbcTemplate.execute によって呼び出されます。 |
@Nullable T doInConnection(ConnectionSE con) throws SQLExceptionSE, DataAccessException
JdbcTemplate.execute
によって呼び出されます。接続のアクティブ化またはクローズ、またはトランザクションの処理について気にする必要はありません。スレッドにバインドされた JDBC トランザクション(DataSourceTransactionManager によって開始される)なしで呼び出された場合、コードはトランザクションセマンティクスを使用して JDBC 接続で実行されるだけです。JdbcTemplate が JTA 対応の DataSource を使用するように構成されている場合、JDBC 接続、つまり JTA トランザクションがアクティブであれば、コールバックコードはトランザクションになります。
コールバック内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。シングルステップアクションには特別なサポートがあることに注意してください。JdbcTemplate.queryForObject
などを参照してください。スローされた RuntimeException は、アプリケーションの例外として扱われます。テンプレートの呼び出し元に伝播されます。
con
- アクティブな JDBC 接続 null
SQLExceptionSE
- JDBC メソッドによってスローされた場合、SQLExceptionTranslator によって DataAccessException に自動変換されます。DataAccessException
- カスタム例外の場合 JdbcTemplate.queryForObject(String, Class)
, JdbcTemplate.queryForRowSet(String)