public class SerialBlob extends Object implements Blob, Serializable, Cloneable
BLOB値の直列化マッピングです。
SerialBlobクラスは、Blobオブジェクトからインスタンスを作成するためのコンストラクタを提供します。 Blobオブジェクトは、SerialBlobオブジェクトを構築する前に、クライアントにSQL BLOB値のデータを渡す必要があります。 SQL BLOB値のデータは、クライアント上で、Blob.getBytesメソッドによってバイト配列として生成されます。または、Blob.getBinaryStreamメソッドによって未解釈のバイト・ストリームとして生成されます。
SerialBlobメソッドは、SerialBlobオブジェクトをバイト配列またはストリームとしてコピーできます。 さらに、SerialBlobオブジェクト内で、指定されたバイト・パターンやBlobオブジェクトを検索し、Blobオブジェクトを更新または切り詰めることもできます。
SerialBlobは、複数の並行スレッドによる使用において安全ではありません。 複数のスレッドで使用する場合は、適切な同期処理によってSerialBlobへのアクセスを制御するようにしてください。
| コンストラクタ | 説明 |
|---|---|
SerialBlob(Blob blob) |
指定された
Blobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。 |
SerialBlob(byte[] b) |
指定された
byte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
Object |
clone() |
この
SerialBlobのクローンを返します。 |
boolean |
equals(Object obj) |
このSerialBlobを指定されたオブジェクトと比較します。
|
void |
free() |
このメソッドは、
SeriableBlobオブジェクトを解放して、保持されているリソースを解放します。 |
InputStream |
getBinaryStream() |
この
SerialBlobオブジェクトを入力ストリームとして返します。 |
InputStream |
getBinaryStream(long pos, long length) |
Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。 |
byte[] |
getBytes(long pos, int length) |
この
SerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。 |
int |
hashCode() |
この
SerialBlobのハッシュ・コードを返します。 |
long |
length() |
この
SerialBlobオブジェクトのバイト配列のバイト数を取得します。 |
long |
position(Blob pattern, long start) |
この
SerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。 |
long |
position(byte[] pattern, long start) |
この
SerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。 |
OutputStream |
setBinaryStream(long pos) |
この
Blobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。 |
int |
setBytes(long pos, byte[] bytes) |
この
Blobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。 |
int |
setBytes(long pos, byte[] bytes, int offset, int length) |
この
Blobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。 |
void |
truncate(long length) |
この
Blobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。 |
public SerialBlob(byte[] b)
throws SerialException,
SQLException
byte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。
新しいSerialBlobオブジェクトは、byte配列のデータで初期化されます。このため、未接続のRowSetオブジェクトは、データ・ソースに手を加えずに直列化されたBlobオブジェクトを作成できます。
b - 直列化されるBlobオブジェクトのデータを格納するbyte配列SerialException - 直列化でエラーが発生した場合SQLException - SQLエラーが発生した場合public SerialBlob(Blob blob) throws SerialException, SQLException
Blobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。
新しいSerialBlobオブジェクトは、Blobオブジェクトのデータで初期化されます。このため、Blobオブジェクトは、あらかじめデータベースからクライアントへSQL BLOB値のデータを渡しておく必要があります。 そうしないと、新しいSerialBlobオブジェクトはデータを持たないオブジェクトになります。
blob - このSerialBlobオブジェクトの構築に使用されるBlobオブジェクト。null以外。SerialException - 直列化でエラーが発生した場合SQLException - このコンストラクタに渡されたBlobがnullの場合。Blobpublic byte[] getBytes(long pos,
int length)
throws SerialException
SerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。
コピーされるバイト数がこのSerialBlobオブジェクトのバイト配列より長くなる場合、配列の長さに合わせて切り詰められます。
getBytes、インタフェースBlobpos - このSerialBlobオブジェクト内のコピーされる最初のバイトの位置。1から開始され、1より小さい値にはならない。また、このSerialBlobオブジェクトの長さ以下でなければならないlength - コピーされるバイト数SerialBlobオブジェクトのコピー領域となるバイト配列。指定位置から指定のバイト数分続くSerialException - 指定された開始位置が範囲外である場合、またはこのオブジェクトでfreeが以前呼び出された場合Blob.setBytes(long, byte[])public long length()
throws SerialException
SerialBlobオブジェクトのバイト配列のバイト数を取得します。length、インタフェースBlobSerialBlobオブジェクトのバイト配列のバイト数を示すlongSerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合public InputStream getBinaryStream() throws SerialException
SerialBlobオブジェクトを入力ストリームとして返します。 関連メソッドsetBinaryStreamとは異なり、SerialBlobがBlobオブジェクトによって作成されたか、またはbyte配列によって作成されたかに関係なく、ストリームが生成されます。 getBinaryStream、インタフェースBlobSerialBlobのバイト配列を格納するjava.io.InputStreamオブジェクトSerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合setBinaryStream(long)public long position(byte[] pattern,
long start)
throws SerialException,
SQLException
SerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。position、インタフェースBlobpattern - 検索対象のバイト・パターンstart - このSerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は1。1以上かつ、このSerialBlobオブジェクトの長さ以下でなければならないSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始されるSerialException - Blobの直列化時にエラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合public long position(Blob pattern, long start) throws SerialException, SQLException
SerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。position、インタフェースBlobpattern - 検索対象のBlobオブジェクトstart - このSerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は1。1以上かつ、このSerialBlobオブジェクトの長さ以下でなければならないSerialBlobオブジェクト内で、指定されたBlobオブジェクトが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始されるSerialException - Blobの直列化時にエラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合public int setBytes(long pos,
byte[] bytes)
throws SerialException,
SQLException
Blobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。setBytes、インタフェースBlobpos - 書込みが開始されるSQL BLOB値の位置。 最初の位置は1。1以上かつこのSerialBlobオブジェクトの長さ以下でなければならない。 bytes - このBlobオブジェクトを表すBLOB値へ書き込まれるバイト配列SerialException - BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、またはこのオブジェクトでfreeが以前呼び出された場合SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合getBytes(long, int)public int setBytes(long pos,
byte[] bytes,
int offset,
int length)
throws SerialException,
SQLException
Blobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。 書込みは、BLOB値のposの位置から開始され、書込み先の指定されたバイト配列からlenバイト書き込まれます。 setBytes、インタフェースBlobpos - 書込みが開始されるBLOBオブジェクトの位置。 最初の位置は1。1以上かつこのSerialBlobオブジェクトの長さ以下でなければならない。 bytes - このBLOB値へ書き込まれるバイト配列offset - バイトの読込みを開始する、byte配列のオフセット。 最初のオフセット位置は0。0以上かつこのbyte配列の長さ以下でなければならない。 length - bytesバイトの配列からBLOB値に書き込まれるバイト数。SerialException - BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、書き込まれるバイト数がSerialBlobの長さを超えている場合、長さとオフセットを合わせた値がBlobバッファより大きい場合、またはこのオブジェクトでfreeが以前呼び出された場合SQLException - データベースからBLOB値にアクセスするときにエラーが発生した場合。getBytes(long, int)public OutputStream setBinaryStream(long pos) throws SerialException, SQLException
Blobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。 ストリームはposの位置から開始します。 このメソッドは、このSerialBlobオブジェクトがBlobによってインスタンス化されている場合に、setBinaryStream()呼出しを配下のBlobに転送します。 このSerialBlobがbyte配列によってインスタンス化されている場合はSerialExceptionがスローされます。 setBinaryStream、インタフェースBlobpos - 書込みが開始されるBLOB値の位置。java.io.OutputStreamオブジェクトSQLException - BLOB値にアクセスするときにエラーが発生した場合SerialException - SerialBlobがsetBinaryStream()をサポートするBlobオブジェクトでインスタンス化されていない場合、またはこのオブジェクトでfreeが以前呼び出された場合getBinaryStream()public void truncate(long length)
throws SerialException
Blobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。truncate、インタフェースBloblength - このBlobオブジェクトが表すBLOB値が切り詰められる長さ(バイト単位)SerialException - Blob値にアクセスするときにエラーが発生した場合、切り詰める長さがSerialBlobの長さよりも長い場合、またはこのオブジェクトでfreeが以前呼び出された場合public InputStream getBinaryStream(long pos, long length) throws SQLException
Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。getBinaryStream、インタフェースBlobpos - 取得する部分値の最初のバイトまでのオフセット。 Blob内で最初のバイトの位置は1 length - 取得する部分値の長さ(バイト単位)Blob値の一部を読み取ることのできるInputStream。SQLException - posが1より小さい場合、posがBlob内のバイト数より大きい場合、またはpos+lengthがBlob内のバイト数より大きい場合SerialException - このオブジェクトでfreeメソッドが以前呼び出された場合public void free()
throws SQLException
SeriableBlobオブジェクトを解放して、保持されているリソースを解放します。 freeメソッドが一度呼び出されたあとは、オブジェクトは無効になります。 freeを複数回呼び出した場合、2回目以降のfree呼出しは何も行わないものとして扱われます。
free、インタフェースBlobSQLException - Blobのリソースの解放時にエラーが発生した場合public boolean equals(Object obj)
nullではなく、このオブジェクトと同じ文字シーケンスを表すSerialBlobオブジェクトである場合にのみ、結果はtrueになります。 equals、クラスObjectobj - このSerialBlobと比較するオブジェクトSerialBlobを表す場合はtrue、それ以外の場合はfalseObject.hashCode(), HashMappublic int hashCode()
SerialBlobのハッシュ・コードを返します。hashCode、クラスObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。