クラス AbstractLobCreatingPreparedStatementCallback

java.lang.ObjectSE
org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback
実装されたすべてのインターフェース:
PreparedStatementCallback<IntegerSE>

public abstract class AbstractLobCreatingPreparedStatementCallback extends ObjectSE implements 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
関連事項:
  • コンストラクターの詳細

    • AbstractLobCreatingPreparedStatementCallback

      public AbstractLobCreatingPreparedStatementCallback(LobHandler lobHandler)
      指定された 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 - 使用する PreparedStatement
      lobCreator - 使用する LobCreator
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      DataAccessException - カスタム例外の場合