モジュール java.sql
パッケージ java.sql

インタフェースBlob

  • 既知のすべての実装クラス:
    SerialBlob


    public interface Blob
    SQL BLOB値のJava(TM)プログラミング言語での表現(マッピング)です。 SQLのBLOBは、バイナリ・ラージ・オブジェクトをデータベース表の行内に列の値として格納する組込みの型です。 デフォルトでは、ドライバはSQLのlocator(BLOB)を使用してBlobを実装します。つまり、BlobオブジェクトはデータそのものではなくSQL BLOBデータへの論理ポインタを格納します。 Blobオブジェクトは、それが生成されたトランザクションの期間中に有効です。

    ResultSetCallableStatement、およびPreparedStatementの各インタフェースのメソッド(getBlobsetBlobなど)を使用すると、プログラマはSQLのBLOB値にアクセスできます。 Blobインタフェースには、SQLのBLOB (バイナリ・ラージ・オブジェクト)値の長さを取得するメソッドや、クライアント上でBLOB値を生成するメソッド、およびBLOB値内のバイトのパターンの位置を判断するメソッドが用意されています。 さらにこのインタフェースはBLOB値を更新するためのメソッドを備えています。

    JDBCドライバがそのデータ型をサポートする場合は、Blobインタフェースのすべてのメソッドが完全に実装される必要があります。

    導入されたバージョン:
    1.2
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      void free​()
      このメソッドは、Blobオブジェクトを解放して、保持されているリソースを解放します。
      InputStream getBinaryStream​()
      このBlobインスタンスによって指定されたBLOB値をストリームとして取り出します。
      InputStream getBinaryStream​(long pos, long length)
      Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。
      byte[] getBytes​(long pos, int length)
      このBlobオブジェクトが表すBLOB値の全部または一部をバイト配列として取り出します。
      long length​()
      このBlobオブジェクトによって指定されるBLOB値内にあるバイトの数を返します。
      long position​(byte[] pattern, long start)
      このBlobオブジェクトが表すBLOB値内で指定されたバイト配列patternが始まるバイト位置を取得します。
      long position​(Blob pattern, long start)
      このBlobオブジェクトによって指定されたBLOB値内でpatternが始まるバイト位置を取得します。
      OutputStream setBinaryStream​(long pos)
      このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。
      int setBytes​(long pos, byte[] bytes)
      このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。
      int setBytes​(long pos, byte[] bytes, int offset, int len)
      このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。
      void truncate​(long len)
      このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。
    • メソッドの詳細

      • length

        long length​()
             throws SQLException
        このBlobオブジェクトによって指定されるBLOB値内にあるバイトの数を返します。
        戻り値:
        BLOBの長さ(バイト単位)
        例外:
        SQLException - BLOBの長さにアクセスするときにエラーが発生した場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.2
      • getBytes

        byte[] getBytes​(long pos,
                        int length)
                 throws SQLException
        このBlobオブジェクトが表すBLOB値の全部または一部をバイト配列として取り出します。 byte配列には、posの位置からlengthの連続するバイト数が格納されます。
        パラメータ:
        pos - BLOB値内の抽出される最初のバイトの位置(序数)。最初のバイトの位置は1
        length - コピーされる連続したバイト数。長さの値は、0以上である必要がある
        戻り値:
        このBlobオブジェクトによって指定されたBLOB値内の、posの位置からlengthの連続するバイト数が格納されている配列
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合。posが1より小さいか、またはlengthが0より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.2
        関連項目:
        setBytes(long, byte[])
      • getBinaryStream

        InputStream getBinaryStream​()
                             throws SQLException
        このBlobインスタンスによって指定されたBLOB値をストリームとして取り出します。
        戻り値:
        BLOBデータを格納するストリーム
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.2
        関連項目:
        setBinaryStream(long)
      • position

        long position​(byte[] pattern,
                      long start)
               throws SQLException
        このBlobオブジェクトが表すBLOB値内で指定されたバイト配列patternが始まるバイト位置を取得します。 patternの検索はstartの位置から始まります。
        パラメータ:
        pattern - 検索対象のbyteの配列
        start - 検索を開始する位置。最初の位置は1
        戻り値:
        パターンが見つかった位置。見つからなかった場合は -1
        例外:
        SQLException - BLOBにアクセスするときにエラーが発生した場合、またはstartが1より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.2
      • position

        long position​(Blob pattern,
                      long start)
               throws SQLException
        このBlobオブジェクトによって指定されたBLOB値内でpatternが始まるバイト位置を取得します。 検索は、startの位置から始まります。
        パラメータ:
        pattern - 検索対象のBLOB値を指定するBlobオブジェクト
        start - 検索を開始するBLOB値内の位置。最初の位置は1
        戻り値:
        パターンを開始する位置。それ以外は -1
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合、またはstartが1より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.2
      • setBytes

        int setBytes​(long pos,
                     byte[] bytes)
              throws SQLException
        このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。 このバイト配列は、posの位置から始まるBlobオブジェクトの既存バイトを上書きします。 バイト配列の書込み中にBlob値の終わりに達すると、余分なバイトを格納するためにBlob値の長さが増加します。

        ノート: posに指定された値がBLOB値の長さ+ 1より大きい場合、その動作は未定義です。 JDBCドライバの中には、SQLExceptionをスローするものもあれば、他のドライバがこの操作をサポートしているものもあります。

        パラメータ:
        pos - 書込みを開始するBLOBオブジェクト内の位置。最初の位置は1
        bytes - このBlobオブジェクトを表すBLOB値へ書き込まれるバイト配列
        戻り値:
        書き込まれるバイト数
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合、またはposが1より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.4
        関連項目:
        getBytes(long, int)
      • setBytes

        int setBytes​(long pos,
                     byte[] bytes,
                     int offset,
                     int len)
              throws SQLException
        このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。 書込みは、BLOB値のposの位置から開始され、指定されたバイト配列からlenバイト書き込まれます。 このバイト配列は、posの位置から始まるBlobオブジェクトの既存バイトを上書きします。 バイト配列の書込み中にBlob値の終わりに達すると、余分なバイトを格納するためにBlob値の長さが増加します。

        ノート: posに指定された値がBLOB値の長さ+ 1より大きい場合、その動作は未定義です。 JDBCドライバの中には、SQLExceptionをスローするものもあれば、他のドライバがこの操作をサポートしているものもあります。

        パラメータ:
        pos - 書込みを開始するBLOBオブジェクト内の位置。最初の位置は1
        bytes - このBLOBオブジェクトへ書き込まれるバイト配列
        offset - 設定するバイトの読込みを開始する、配列bytesへのオフセット
        len - bytesバイトの配列からBLOB値に書き込まれるバイト数
        戻り値:
        書き込まれるバイト数
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合、またはposが1より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.4
        関連項目:
        getBytes(long, int)
      • setBinaryStream

        OutputStream setBinaryStream​(long pos)
                              throws SQLException
        このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。 ストリームはposの位置から開始します。 ストリームに書き込まれるバイトは、posの位置から始まるBlobオブジェクトの既存バイトを上書きします。 ストリームへの書込み中にBlob値の終わりに達すると、余分なバイトを格納するためにBlob値の長さが増加します。

        ノート: posに指定された値がBLOB値の長さ+ 1より大きい場合、その動作は未定義です。 JDBCドライバの中には、SQLExceptionをスローするものもあれば、他のドライバがこの操作をサポートしているものもあります。

        パラメータ:
        pos - 書込みを開始するBLOB値内の位置。最初の位置は1
        戻り値:
        データが書き込まれるjava.io.OutputStreamオブジェクト
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合、またはposが1より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.4
        関連項目:
        getBinaryStream()
      • truncate

        void truncate​(long len)
               throws SQLException
        このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。

        ノート: posに指定された値がBLOB値の長さ+ 1より大きい場合、その動作は未定義です。 JDBCドライバの中には、SQLExceptionをスローするものもあれば、他のドライバがこの操作をサポートしているものもあります。

        パラメータ:
        len - このBlobオブジェクトが表すBLOB値が切り詰められる長さ(バイト単位)
        例外:
        SQLException - BLOB値にアクセスするときにエラーが発生した場合、またはlenが0より小さい場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.4
      • free

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

        freeが呼び出された後、free以外のメソッドを呼び出そうとすると、SQLExceptionがスローされます。 freeを複数回呼び出した場合、2回目以降のfree呼出しは何も行わないものとして扱われます。

        例外:
        SQLException - Blobのリソースの解放時にエラーが発生した場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.6
      • getBinaryStream

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