モジュール 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