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
値の一部を読み取ることのできるInputStream
SQLException
- 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も参照してください。