JavaTM Platform
Standard Ed. 6

java.sql
インタフェース Blob

既知の実装クラスの一覧:
SerialBlob

public interface Blob

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

ResultSetCallableStatementPreparedStatement の各インタフェースのメソッド (getBlobsetBlob など) を使用すると、プログラマは SQL の BLOB 値にアクセスできます。Blob インタフェースには、SQL の BLOB (2 進ラージオブジェクト) 値の長さを取得するメソッドや、クライアント上で 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(Blob pattern, long start)
          この Blob オブジェクトによって指定された BLOB 値内で pattern が始まるバイト位置を取得します。
 long position(byte[] 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 - 検索対象のバイト配列
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 値の length + 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 値の length + 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 値の length + 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 値の length + 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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。