public interface Blob
BLOB値のJava(TM)プログラミング言語での表現(マッピング)です。 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内で最初のバイトの位置は1 length - 取得する部分値の長さ(バイト単位)Blob値の一部を読み取ることのできるInputStreamSQLException - posが1より小さい場合、posがBlob内のバイト数より大きい場合、またはpos+lengthがBlob内のバイト数より大きい場合SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。