インターフェース PreparedStatementCallback<T>
- 型パラメーター:
T
- 結果の型
- すべての既知の実装クラス:
AbstractLobCreatingPreparedStatementCallback
- 関数インターフェース:
- これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。
executeUpdate
呼び出しや、さまざまなパラメーターを使用した繰り返しの executeUpdate
呼び出しです。JdbcTemplate によって内部的に使用されますが、アプリケーションコードにも役立ちます。渡された PreparedStatement は、フレームワークまたはカスタム PreparedStatementCreator によって作成された可能性があることに注意してください。ただし、後者はほとんど必要ありません。ほとんどのカスタムコールバックアクションが更新を実行するため、標準の PreparedStatement で十分です。カスタムアクションは常にパラメーター値を設定するため、PreparedStatementCreator 機能も必要ありません。
- 導入:
- 16.03.2004
- 作成者:
- Juergen Hoeller
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明アクティブな JDBC PreparedStatement でJdbcTemplate.execute
によって呼び出されます。
メソッドの詳細
doInPreparedStatement
@Nullable T doInPreparedStatement(PreparedStatementSE ps) throws SQLExceptionSE, DataAccessException アクティブな JDBC PreparedStatement を使用してJdbcTemplate.execute
によって呼び出されます。ステートメントまたは接続のクローズ、またはトランザクションの処理について気にする必要はありません。これはすべて Spring の JdbcTemplate によって処理されます。注意 : 開いた ResultSets はすべて、コールバック実装内の finally ブロックで閉じる必要があります。Spring はコールバックが返された後に Statement オブジェクトを閉じますが、これは必ずしも ResultSet リソースが閉じられることを意味するわけではありません: ステートメントオブジェクトは接続プールによってプールされる可能性があり、
close
呼び出しはオブジェクトをプールに返すだけで、リソースを物理的に閉じません。スレッドにバインドされた JDBC トランザクション(DataSourceTransactionManager によって開始された)なしで呼び出された場合、コードはトランザクションセマンティクスを使用して JDBC 接続で実行されます。JTA 対応の DataSource を使用するように JdbcTemplate が構成されている場合、JTA トランザクションがアクティブな場合、JDBC 接続とコールバックコードはトランザクションになります。
コールバック内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。シングルステップアクションには特別なサポートがあることに注意してください。JdbcTemplate.queryForObject などを参照してください。スローされた RuntimeException はアプリケーション例外として扱われ、テンプレートの呼び出し元に伝達されます。
- パラメーター:
ps
- アクティブな JDBC PreparedStatement- 戻り値:
- 結果オブジェクト、ない場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合、SQLExceptionTranslator によって DataAccessException に自動変換されます。DataAccessException
- カスタム例外の場合- 関連事項: