インターフェース LobCreator

すべてのスーパーインターフェース:
AutoCloseableSECloseableSE
すべての既知の実装クラス:
DefaultLobHandler.DefaultLobCreatorTemporaryLobCreator

public interface LobCreator extends CloseableSE
大きなバイナリフィールドと大きなテキストフィールドのデータベース固有の作成を抽象化するインターフェース。一部の JDBC ドライバーはこれらの型をサポートしていないため、API の java.sql.Blob および java.sql.Clob インスタンスでは機能しません。

通常、LobHandler の実装が異なるのは LOB 作成部分です。考えられる戦略には、PreparedStatement.setBinaryStream/setCharacterStream の使用だけでなく、ストリーム引数または java.sql.Blob/Clob ラッパーオブジェクトを使用した PreparedStatement.setBlob/setClob の使用も含まれます。

LobCreator は BLOB を作成するためのセッションを表します。これはスレッドセーフではなく、ステートメントの実行ごとまたはトランザクションごとにインスタンス化する必要があります。各 LobCreator は完了後に閉じる必要があります。

PreparedStatement と LobCreator を使いやすくするために、AbstractLobCreatingPreparedStatementCallback 実装で JdbcTemplate を使用することを検討してください。詳細については、後者の javadoc を参照してください。

導入:
04.12.2003
作成者:
Juergen Hoeller
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    この LobCreator セッションを閉じて、一時的に作成された BLOB と CLOB を解放します。
    void
    setBlobAsBinaryStream(PreparedStatementSE ps, int paramIndex, InputStreamSE contentStream, int contentLength)
    指定されたパラメーターインデックスを使用して、指定されたコンテンツを指定されたステートメントのバイナリストリームとして設定します。
    void
    setBlobAsBytes(PreparedStatementSE ps, int paramIndex, byte[] content)
    指定されたパラメーターインデックスを使用して、指定されたステートメントで指定されたコンテンツをバイトとして設定します。
    void
    setClobAsAsciiStream(PreparedStatementSE ps, int paramIndex, InputStreamSE asciiStream, int contentLength)
    指定されたパラメーターインデックスを使用して、指定されたステートメントの ASCII ストリームとして指定されたコンテンツを設定します。
    void
    setClobAsCharacterStream(PreparedStatementSE ps, int paramIndex, ReaderSE characterStream, int contentLength)
    指定されたパラメーターインデックスを使用して、指定された文の文字ストリームとして指定されたコンテンツを設定します。
    void
    setClobAsString(PreparedStatementSE ps, int paramIndex, StringSE content)
    指定されたパラメーターインデックスを使用して、指定されたステートメントで指定されたコンテンツを文字列として設定します。
  • メソッドの詳細

    • setBlobAsBytes

      void setBlobAsBytes(PreparedStatementSE ps, int paramIndex, @Nullable byte[] content) throws SQLExceptionSE
      指定されたパラメーターインデックスを使用して、指定されたステートメントで指定されたコンテンツをバイトとして設定します。データベースとドライバーに応じて、PreparedStatement.setBytes を単に呼び出すか、そのための Blob インスタンスを作成するだけです。
      パラメーター:
      ps - コンテンツを設定する PreparedStatement
      paramIndex - 使用するパラメーターインデックス
      content - バイト配列としてのコンテンツ、または SQL NULL の場合は null 
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項:
    • setBlobAsBinaryStream

      void setBlobAsBinaryStream(PreparedStatementSE ps, int paramIndex, @Nullable InputStreamSE contentStream, int contentLength) throws SQLExceptionSE
      指定されたパラメーターインデックスを使用して、指定されたコンテンツを指定されたステートメントのバイナリストリームとして設定します。データベースとドライバーに応じて、PreparedStatement.setBinaryStream を単に呼び出すか、そのための Blob インスタンスを作成するだけです。
      パラメーター:
      ps - コンテンツを設定する PreparedStatement
      paramIndex - 使用するパラメーターインデックス
      contentStream - バイナリストリームとしてのコンテンツ、または SQL NULL の場合は null 
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項:
    • setClobAsString

      void setClobAsString(PreparedStatementSE ps, int paramIndex, @Nullable StringSE content) throws SQLExceptionSE
      指定されたパラメーターインデックスを使用して、指定されたステートメントで指定されたコンテンツを文字列として設定します。データベースとドライバーに応じて、単に PreparedStatement.setString を呼び出すか、そのための Clob インスタンスを作成します。
      パラメーター:
      ps - コンテンツを設定する PreparedStatement
      paramIndex - 使用するパラメーターインデックス
      content - 文字列としてのコンテンツ、または SQL NULL の場合は null 
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項:
    • setClobAsAsciiStream

      void setClobAsAsciiStream(PreparedStatementSE ps, int paramIndex, @Nullable InputStreamSE asciiStream, int contentLength) throws SQLExceptionSE
      指定されたパラメーターインデックスを使用して、指定されたステートメントの ASCII ストリームとして指定されたコンテンツを設定します。データベースとドライバーに応じて、単に PreparedStatement.setAsciiStream を呼び出すか、そのための Clob インスタンスを作成します。
      パラメーター:
      ps - コンテンツを設定する PreparedStatement
      paramIndex - 使用するパラメーターインデックス
      asciiStream - ASCII ストリームとしてのコンテンツ、または SQL NULL の場合は null 
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項:
    • setClobAsCharacterStream

      void setClobAsCharacterStream(PreparedStatementSE ps, int paramIndex, @Nullable ReaderSE characterStream, int contentLength) throws SQLExceptionSE
      指定されたパラメーターインデックスを使用して、指定された文の文字ストリームとして指定されたコンテンツを設定します。データベースとドライバーに応じて、単に PreparedStatement.setCharacterStream を呼び出すか、そのための Clob インスタンスを作成します。
      パラメーター:
      ps - コンテンツを設定する PreparedStatement
      paramIndex - 使用するパラメーターインデックス
      characterStream - 文字ストリームとしてのコンテンツ、または SQL NULL の場合は null 
      例外:
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項:
    • close

      void close()
      この LobCreator セッションを閉じて、一時的に作成された BLOB と CLOB を解放します。PreparedStatement の標準メソッドを使用する場合は何もする必要はありませんが、独自の手段を使用する場合はデータベースリソースを解放する必要がある場合があります。

      注意 : 関連する PreparedStatements が実行された後、または影響を受けた O/R マッピングセッションがフラッシュされた後に呼び出す必要があります。そうしないと、一時 BLOB のデータベースリソースが割り当てられたままになる可能性があります。

      次で指定:
      インターフェース AutoCloseableSEclose 
      次で指定:
      インターフェース CloseableSEclose