クラス AbstractLobCreatingPreparedStatementCallback
- 実装されたすべてのインターフェース:
PreparedStatementCallback<IntegerSE>
LobCreator
を管理する抽象 PreparedStatementCallback
実装。通常、内部クラスとして使用され、周囲のメソッド引数にアクセスできます。BLOB/CLOB 引数に特定の LobCreator を使用して、PreparedStatement に値を設定する setValues
テンプレートメソッドにデリゲートします。
JdbcTemplate
の使用例:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object LobHandler lobHandler = new DefaultLobHandler(); // reusable object jdbcTemplate.execute( "INSERT INTO imagedb (image_name, content, description) VALUES (?, ?, ?)", new AbstractLobCreatingPreparedStatementCallback(lobHandler) { protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException { ps.setString(1, name); lobCreator.setBlobAsBinaryStream(ps, 2, contentStream, contentLength); lobCreator.setClobAsString(ps, 3, description); } });
- 導入:
- 1.0.2
- 作成者:
- Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
コンストラクター説明指定された LobHandler の新しい AbstractLobCreatingPreparedStatementCallback を作成します。メソッドのサマリー
修飾子と型メソッド説明final IntegerSE
アクティブな JDBC PreparedStatement でJdbcTemplate.execute
によって呼び出されます。protected abstract void
setValues
(PreparedStatementSE ps, LobCreator lobCreator) BLOB/CLOB 引数に指定された LobCreator を使用して、指定された PreparedStatement に値を設定します。
コンストラクターの詳細
AbstractLobCreatingPreparedStatementCallback
指定された LobHandler の新しい AbstractLobCreatingPreparedStatementCallback を作成します。- パラメーター:
lobHandler
- LobCreators を作成する LobHandler
メソッドの詳細
doInPreparedStatement
public final IntegerSE doInPreparedStatement(PreparedStatementSE ps) throws SQLExceptionSE, DataAccessException インターフェースからコピーされた説明:PreparedStatementCallback
アクティブな JDBC PreparedStatement を使用してJdbcTemplate.execute
によって呼び出されます。ステートメントまたは接続のクローズ、またはトランザクションの処理について気にする必要はありません。これはすべて Spring の JdbcTemplate によって処理されます。注意 : 開いた ResultSets はすべて、コールバック実装内の finally ブロックで閉じる必要があります。Spring はコールバックが返された後に Statement オブジェクトを閉じますが、これは必ずしも ResultSet リソースが閉じられることを意味するわけではありません: ステートメントオブジェクトは接続プールによってプールされる可能性があり、
close
呼び出しはオブジェクトをプールに返すだけで、リソースを物理的に閉じません。スレッドにバインドされた JDBC トランザクション(DataSourceTransactionManager によって開始された)なしで呼び出された場合、コードはトランザクションセマンティクスを使用して JDBC 接続で実行されます。JTA 対応の DataSource を使用するように JdbcTemplate が構成されている場合、JTA トランザクションがアクティブな場合、JDBC 接続とコールバックコードはトランザクションになります。
コールバック内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。シングルステップアクションには特別なサポートがあることに注意してください。JdbcTemplate.queryForObject などを参照してください。スローされた RuntimeException はアプリケーション例外として扱われ、テンプレートの呼び出し元に伝達されます。
- 次で指定:
- インターフェース
PreparedStatementCallback<IntegerSE>
のdoInPreparedStatement
- パラメーター:
ps
- アクティブな JDBC PreparedStatement- 戻り値:
- 結果オブジェクト、ない場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合、SQLExceptionTranslator によって DataAccessException に自動変換されます。DataAccessException
- カスタム例外の場合- 関連事項:
setValues
protected abstract void setValues(PreparedStatementSE ps, LobCreator lobCreator) throws SQLExceptionSE, DataAccessException BLOB/CLOB 引数に指定された LobCreator を使用して、指定された PreparedStatement に値を設定します。- パラメーター:
ps
- 使用する PreparedStatementlobCreator
- 使用する LobCreator- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合DataAccessException
- カスタム例外の場合