モジュール java.sql.rowset
パッケージ javax.sql.rowset.serial

クラスSerialBlob

  • すべての実装されたインタフェース:
    Serializable, Cloneable, Blob


    public class SerialBlob
    extends Object
    implements Blob, Serializable, Cloneable
    Javaプログラミング言語でのSQL BLOB値の直列化マッピングです。

    SerialBlobクラスは、Blobオブジェクトからインスタンスを作成するためのコンストラクタを提供します。 Blobオブジェクトは、SerialBlobオブジェクトを構築する前に、クライアントにSQL BLOB値のデータを渡す必要があります。 SQL BLOB値のデータは、クライアント上で、Blob.getBytesメソッドによってバイト配列として生成されます。または、Blob.getBinaryStreamメソッドによって未解釈のバイト・ストリームとして生成されます。

    SerialBlobメソッドは、SerialBlobオブジェクトをバイト配列またはストリームとしてコピーできます。 さらに、SerialBlobオブジェクト内で、指定されたバイト・パターンやBlobオブジェクトを検索し、Blobオブジェクトを更新または切り詰めることもできます。

    スレッドの安全性

    SerialBlobは、複数の並行スレッドによる使用において安全ではありません。 複数のスレッドで使用する場合は、適切な同期処理によってSerialBlobへのアクセスを制御するようにしてください。

    導入されたバージョン:
    1.5
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      SerialBlob​(byte[] b)
      指定されたbyte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。
      SerialBlob​(Blob blob)
      指定されたBlobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Object clone​()
      このSerialBlobのクローンを返します。
      boolean equals​(Object obj)
      このSerialBlobを指定されたオブジェクトと比較します。
      void free​()
      このメソッドは、SerialBlobオブジェクトを解放し、保持しているリソースを解放します。
      InputStream getBinaryStream​()
      このSerialBlobオブジェクトを入力ストリームとして返します。
      InputStream getBinaryStream​(long pos, long length)
      Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。
      byte[] getBytes​(long pos, int length)
      このSerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。
      int hashCode​()
      このSerialBlobのハッシュ・コードを返します。
      long length​()
      このSerialBlobオブジェクトのバイト配列のバイト数を取得します。
      long position​(byte[] pattern, long start)
      このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。
      long position​(Blob pattern, long start)
      このSerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。
      OutputStream setBinaryStream​(long pos)
      このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。
      int setBytes​(long pos, byte[] bytes)
      このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。
      int setBytes​(long pos, byte[] bytes, int offset, int length)
      このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。
      void truncate​(long length)
      このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。
    • コンストラクタの詳細

      • SerialBlob

        public SerialBlob​(byte[] b)
                   throws SerialException,
                          SQLException
        指定されたbyte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。

        新しいSerialBlobオブジェクトは、byte配列のデータで初期化されます。このため、未接続のRowSetオブジェクトは、データ・ソースに手を加えずに直列化されたBlobオブジェクトを作成できます。

        パラメータ:
        b - 直列化されるBlobオブジェクトのデータを格納するbyte配列
        例外:
        SerialException - 直列化でエラーが発生した場合
        SQLException - SQLエラーが発生した場合
      • SerialBlob

        public SerialBlob​(Blob blob)
                   throws SerialException,
                          SQLException
        指定されたBlobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。

        新しいSerialBlobオブジェクトは、Blobオブジェクトのデータで初期化されます。このため、Blobオブジェクトは、あらかじめデータベースからクライアントへSQL BLOB値のデータを渡しておく必要があります。 そうしないと、新しいSerialBlobオブジェクトはデータを持たないオブジェクトになります。

        パラメータ:
        blob - このSerialBlobオブジェクトの構築に使用されるBlobオブジェクト。null以外。
        例外:
        SerialException - 直列化でエラーが発生した場合
        SQLException - このコンストラクタに渡されたBlobnullの場合。
        関連項目:
        Blob
    • メソッドの詳細

      • getBytes

        public byte[] getBytes​(long pos,
                               int length)
                        throws SerialException
        このSerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。

        コピーされるバイト数がこのSerialBlobオブジェクトのバイト配列より長くなる場合、配列の長さに合わせて切り詰められます。

        定義:
        getBytes、インタフェース: Blob
        パラメータ:
        pos - このSerialBlobオブジェクト内のコピーされる最初のバイトの位置。1から開始され、1より小さい値にはならない。また、このSerialBlobオブジェクトの長さ以下でなければならない
        length - コピーされるバイト数
        戻り値:
        このSerialBlobオブジェクトのコピー領域となるバイト配列。指定位置から指定のバイト数分続く
        例外:
        SerialException - 指定された開始位置が範囲外である場合、またはこのオブジェクトでfreeが以前呼び出された場合
        関連項目:
        Blob.setBytes(long, byte[])
      • length

        public long length​()
                    throws SerialException
        このSerialBlobオブジェクトのバイト配列のバイト数を取得します。
        定義:
        length、インタフェース: Blob
        戻り値:
        このSerialBlobオブジェクトのバイト配列のバイト数を示すlong
        例外:
        SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
      • getBinaryStream

        public InputStream getBinaryStream​()
                                    throws SerialException
        このSerialBlobオブジェクトを入力ストリームとして返します。 関連メソッドsetBinaryStreamとは異なり、SerialBlobBlobオブジェクトによって作成されたか、またはbyte配列によって作成されたかに関係なく、ストリームが生成されます。
        定義:
        getBinaryStream、インタフェース: Blob
        戻り値:
        このSerialBlobのバイト配列を格納するjava.io.InputStreamオブジェクト
        例外:
        SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
        関連項目:
        setBinaryStream(long)
      • position

        public long position​(byte[] pattern,
                             long start)
                      throws SerialException,
                             SQLException
        このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。
        定義:
        position、インタフェース: Blob
        パラメータ:
        pattern - 検索対象のバイト・パターン
        start - このSerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は11以上かつ、このSerialBlobオブジェクトの長さ以下でなければならない
        戻り値:
        このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始される
        例外:
        SerialException - Blobの直列化時にエラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
        SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合
      • position

        public long position​(Blob pattern,
                             long start)
                      throws SerialException,
                             SQLException
        このSerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。
        定義:
        position、インタフェース: Blob
        パラメータ:
        pattern - 検索対象のBlobオブジェクト
        start - このSerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は11以上かつ、このSerialBlobオブジェクトの長さ以下でなければならない
        戻り値:
        このSerialBlobオブジェクト内で、指定されたBlobオブジェクトが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始される
        例外:
        SerialException - Blobの直列化時にエラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
        SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合
      • setBytes

        public int setBytes​(long pos,
                            byte[] bytes)
                     throws SerialException,
                            SQLException
        このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。
        定義:
        setBytes、インタフェース: Blob
        パラメータ:
        pos - 書込みが開始されるSQL BLOB値の位置。 最初の位置は11以上かつこのSerialBlobオブジェクトの長さ以下でなければならない。
        bytes - このBlobオブジェクトを表すBLOB値へ書き込まれるバイト配列
        戻り値:
        書き込まれるバイト数
        例外:
        SerialException - BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、またはこのオブジェクトでfreeが以前呼び出された場合
        SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合
        関連項目:
        getBytes(long, int)
      • setBytes

        public int setBytes​(long pos,
                            byte[] bytes,
                            int offset,
                            int length)
                     throws SerialException,
                            SQLException
        このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。 書込みは、BLOB値のposの位置から開始され、書込み先の指定されたバイト配列からlenバイト書き込まれます。
        定義:
        setBytes、インタフェース: Blob
        パラメータ:
        pos - 書込みが開始されるBLOBオブジェクトの位置。 最初の位置は11以上かつこのSerialBlobオブジェクトの長さ以下でなければならない。
        bytes - このBLOB値へ書き込まれるバイト配列
        offset - バイトの読込みを開始する、byte配列のオフセット。 最初のオフセット位置は00以上かつこのbyte配列の長さ以下でなければならない。
        length - bytesバイトの配列からBLOB値に書き込まれるバイト数。
        戻り値:
        書き込まれるバイト数
        例外:
        SerialException - BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、書き込まれるバイト数がSerialBlobの長さを超えている場合、長さとオフセットを合わせた値がBlobバッファより大きい場合、またはこのオブジェクトでfreeが以前呼び出された場合
        SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合。
        関連項目:
        getBytes(long, int)
      • setBinaryStream

        public OutputStream setBinaryStream​(long pos)
                                     throws SerialException,
                                            SQLException
        このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。 ストリームはposの位置から開始します。 このメソッドは、このSerialBlobオブジェクトがBlobによってインスタンス化されている場合に、setBinaryStream()呼出しを配下のBlobに転送します。 このSerialBlobbyte配列によってインスタンス化されている場合はSerialExceptionがスローされます。
        定義:
        setBinaryStream、インタフェース: Blob
        パラメータ:
        pos - 書込みが開始されるBLOB値の位置。
        戻り値:
        データが書き込まれるjava.io.OutputStreamオブジェクト
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合
        SerialException - SerialBlobがsetBinaryStream()をサポートするBlobオブジェクトでインスタンス化されていない場合、またはこのオブジェクトでfreeが以前呼び出された場合
        関連項目:
        getBinaryStream()
      • truncate

        public void truncate​(long length)
                      throws SerialException
        このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。
        定義:
        truncate、インタフェース: Blob
        パラメータ:
        length - このBlobオブジェクトが表すBLOB値が切り詰められる長さ(バイト単位)
        例外:
        SerialException - Blob値にアクセスするときにエラーが発生した場合、切り詰める長さがSerialBlobの長さよりも長い場合、またはこのオブジェクトでfreeが以前呼び出された場合
      • getBinaryStream

        public InputStream getBinaryStream​(long pos,
                                           long length)
                                    throws SQLException
        Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。
        定義:
        getBinaryStream、インタフェース: Blob
        パラメータ:
        pos - 取得する部分値の最初のバイトまでのオフセット。 Blob内で最初のバイトの位置は1
        length - 取得する部分値の長さ(バイト単位)
        戻り値:
        Blob値の一部を読み取ることのできるInputStream
        例外:
        SQLException - posが1より小さい場合、posがBlob内のバイト数より大きい場合、またはpos+lengthがBlob内のバイト数より大きい場合
        SerialException - このオブジェクトでfreeメソッドが以前呼び出された場合
        導入されたバージョン:
        1.6
      • free

        public void free​()
                  throws SQLException
        このメソッドは、SerialBlobオブジェクトを解放し、保持しているリソースを解放します。 freeメソッドが一度呼び出されたあとは、オブジェクトは無効になります。

        freeを複数回呼び出した場合、2回目以降のfree呼出しは何も行わないものとして扱われます。

        定義:
        free、インタフェース: Blob
        例外:
        SQLException - Blobのリソースの解放時にエラーが発生した場合
        導入されたバージョン:
        1.6
      • equals

        public boolean equals​(Object obj)
        このSerialBlobを指定されたオブジェクトと比較します。 引数がnullではなく、このオブジェクトと同じ文字シーケンスを表す SerialBlobオブジェクトである場合にのみ、結果は trueになります。
        オーバーライド:
        equals、クラス: Object
        パラメータ:
        obj - このSerialBlobと比較するオブジェクト
        戻り値:
        指定されたオブジェクトがこのSerialBlobに等しいSerialBlobを表す場合はtrue、それ以外の場合はfalse
        関連項目:
        Object.hashCode(), HashMap
      • clone

        public Object clone​()
        このSerialBlobのクローンを返します。 コピーは、このSerialBlobオブジェクトの内部バイト配列のクローンへの参照を保持するのであって、元の内部バイト配列への参照を保持するわけではありません。 ベースとなるBlobオブジェクトはnullに設定されます。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このSerialBlobのクローン
        関連項目:
        Cloneable