public interface Blob
BLOB 値の JavaTM プログラミング言語での表現 (マッピング) です。SQL の BLOB は、バイナリラージオブジェクトをデータベーステーブルの行内に列の値として格納する組み込みの型です。デフォルトでは、ドライバは SQL の locator(BLOB) を使用して Blob を実装します。つまり、Blob オブジェクトはデータそのものではなく SQL BLOB データへの論理ポインタを格納します。Blob オブジェクトは、それが生成されたトランザクションの期間中に有効です。
ResultSet、CallableStatement、および PreparedStatement の各インタフェースのメソッド (getBlob、setBlob など) を使用すると、プログラマは SQL の BLOB 値にアクセスできます。Blob インタフェースには、SQL の BLOB (バイナリラージオブジェクト) 値の長さを取得するメソッドや、クライアント上で BLOB 値を生成するメソッド、および BLOB 値内のバイトのパターンの位置を判断するメソッドが用意されています。さらにこのインタフェースは BLOB 値を更新するためのメソッドを備えています。
JDBC ドライバがそのデータ型をサポートする場合は、Blob インタフェースのすべてのメソッドが完全に実装される必要があります。
| 修飾子と型 | メソッドと説明 |
|---|---|
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 バイトの長さに切り詰めます。 |
long length()
throws SQLException
Blob オブジェクトによって指定される BLOB 値内にあるバイトの数を返します。BLOB の長さ (バイト単位)SQLException - BLOB の長さにアクセスするときにエラーが発生した場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合byte[] getBytes(long pos,
int length)
throws SQLException
Blob オブジェクトが表す BLOB 値の全部または一部をバイト配列として取り出します。byte 配列には、pos の位置から length の連続するバイト数が格納されます。pos - BLOB 値内の抽出される最初のバイトの位置 (序数)。最初のバイトの位置は 1length - コピーされる連続したバイト数。長さの値は、0 以上である必要があるBlob オブジェクトによって指定された BLOB 値内の、pos の位置から length の連続するバイト数が格納されている配列SQLException - BLOB 値にアクセスするときにエラーが発生した場合。pos が 1 より小さいか、または length が 0 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合setBytes(long, byte[])InputStream getBinaryStream() throws SQLException
Blob インスタンスによって指定された BLOB 値をストリームとして取り出します。BLOB データを格納するストリームSQLException - BLOB 値にアクセスするときにエラーが発生した場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合setBinaryStream(long)long position(byte[] pattern,
long start)
throws SQLException
Blob オブジェクトが表す BLOB 値内で指定されたバイト配列 pattern が始まるバイト位置を取得します。pattern の検索は start の位置から始まります。pattern - 検索対象の byte の配列start - 検索を開始する位置。最初の位置は 1SQLException - BLOB にアクセスするときにエラーが発生した場合、または start が 1 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合long position(Blob pattern, long start) throws SQLException
Blob オブジェクトによって指定された BLOB 値内で pattern が始まるバイト位置を取得します。検索は、start の位置から始まります。pattern - 検索対象の BLOB 値を指定する Blob オブジェクトstart - 検索を開始する BLOB 値内の位置。最初の位置は 1SQLException - BLOB 値にアクセスするときにエラーが発生した場合、または start が 1 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合int setBytes(long pos,
byte[] bytes)
throws SQLException
Blob オブジェクトが表す BLOB 値へ指定されたバイト配列を pos の位置から書き込み、書き込まれたバイト数を返します。このバイト配列は、pos の位置から始まる Blob オブジェクトの既存バイトを上書きします。バイト配列の書き込み中に Blob 値の終わりに達すると、余分なバイトを格納するために Blob 値の長さが増加します。
注:pos に指定された値が BLOB 値の length + 1 より大きい場合、動作は未定義です。JDBC ドライバによって、SQLException をスローするものもあれば、この操作をサポートするものもある可能性があります。
pos - 書き込みを開始する BLOB オブジェクト内の位置。最初の位置は 1bytes - この Blob オブジェクトを表す BLOB 値へ書き込まれるバイト配列SQLException - BLOB 値にアクセスするときにエラーが発生した場合、または pos が 1 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合getBytes(long, int)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 オブジェクト内の位置。最初の位置は 1bytes - この BLOB オブジェクトへ書き込まれるバイト配列offset - 設定するバイトの読み込みを開始する、配列 bytes へのオフセットlen - bytes バイトの配列から BLOB 値に書き込まれるバイト数SQLException - BLOB 値にアクセスするときにエラーが発生した場合、または pos が 1 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合getBytes(long, int)OutputStream setBinaryStream(long pos) throws SQLException
Blob オブジェクトが表す BLOB 値への書き込みに使用できるストリームを取得します。ストリームは pos の位置から開始します。ストリームに書き込まれるバイトは、pos の位置から始まる Blob オブジェクトの既存バイトを上書きします。ストリームへの書き込み中に Blob 値の終わりに達すると、余分なバイトを格納するために Blob 値の長さが増加します。
注:pos に指定された値が BLOB 値の length + 1 より大きい場合、動作は未定義です。JDBC ドライバによって、SQLException をスローするものもあれば、この操作をサポートするものもある可能性があります。
pos - 書き込みを開始する BLOB 値内の位置。最初の位置は 1java.io.OutputStream オブジェクトSQLException - BLOB 値にアクセスするときにエラーが発生した場合、または pos が 1 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合getBinaryStream()void truncate(long len)
throws SQLException
Blob オブジェクトが表す BLOB 値を len バイトの長さに切り詰めます。
注:pos に指定された値が BLOB 値の length + 1 より大きい場合、動作は未定義です。JDBC ドライバによって、SQLException をスローするものもあれば、この操作をサポートするものもある可能性があります。
len - この Blob オブジェクトが表す BLOB 値が切り詰められる長さ (バイト単位)SQLException - BLOB 値にアクセスするときにエラーが発生した場合、または len が 0 より小さい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合void free()
throws SQLException
Blob オブジェクトを解放して、保持されているリソースを解放します。free メソッドが一度呼び出されたあとは、オブジェクトは無効になります。
free が呼び出されると、free 以外のメソッドを呼び出そうとしても、SQLException がスローされます。free を複数回呼び出した場合、2 回目以降の free 呼び出しは何も行わないものとして扱われます。
SQLException - Blob のリソースの解放時にエラーが発生した場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合InputStream getBinaryStream(long pos, long length) throws SQLException
Blob 値の一部 (バイト位置 pos から長さ length バイト分) を格納した InputStream オブジェクトを返します。pos - 取得する部分値の最初のバイトまでのオフセット。Blob 内で最初のバイトの位置は 1length - 取得する部分値の長さ (バイト単位)Blob 値の一部を読み取ることのできる InputStreamSQLException - pos が 1 より小さい場合、pos が Blob 内のバイト数より大きい場合、または pos + length が Blob 内のバイト数より大きい場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.