- 既知のすべての実装クラス:
SerialBlob
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
オブジェクトを解放して、保持されているリソースを解放します。このBlob
インスタンスによって指定されたBLOB
値をストリームとして取り出します。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
このBlob
オブジェクトによって指定されたBLOB
値内でpattern
が始まるバイト位置を取得します。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
-