- 既知のすべての実装クラス:
SerialBlob
public interface Blob
BLOB
値のJavaプログラミング言語での(マッピング)表現。 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
インタフェースのすべてのメソッドが完全に実装される必要があります。
- 導入されたバージョン:
- 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
値内の抽出される最初のバイトの位置(序数)。最初のバイトの位置は1length
- コピーされる連続したバイト数。長さの値は、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
オブジェクト内の位置。最初の位置は1bytes
- この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
オブジェクト内の位置。最初の位置は1bytes
- この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 SQLExceptionBlob
値の一部(バイト位置posから長さlengthバイト分)を格納したInputStream
オブジェクトを返します。- パラメータ:
pos
- 取得する部分値の最初のバイトまでのオフセット。Blob
内で最初のバイトの位置は1length
- 取得する部分値の長さ(バイト単位)- 戻り値:
Blob
値の一部を読み取ることのできるInputStream
。- 例外:
SQLException
- posが1より小さい場合、posがBlob
内のバイト数より大きい場合、またはpos+lengthがBlob
内のバイト数より大きい場合SQLFeatureNotSupportedException
- JDBCドライバがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.6
-