- すべての実装されたインタフェース:
- Serializable,- Cloneable,- Blob
BLOB値の直列化マッピングです。
 
 SerialBlobクラスは、Blobオブジェクトからインスタンスを作成するためのコンストラクタを提供します。 Blobオブジェクトは、SerialBlobオブジェクトを構築する前に、クライアントにSQL BLOB値のデータを渡す必要があります。 SQL BLOB値のデータは、クライアント上で、Blob.getBytesメソッドによってバイト配列として生成されます。または、Blob.getBinaryStreamメソッドによって未解釈のバイト・ストリームとして生成されます。 
 
 SerialBlobメソッドは、SerialBlobオブジェクトをバイト配列またはストリームとしてコピーできます。 さらに、SerialBlobオブジェクト内で、指定されたバイト・パターンやBlobオブジェクトを検索し、Blobオブジェクトを更新または切り詰めることもできます。 
 
スレッドの安全性
SerialBlobは、複数の並行スレッドによる使用において安全ではありません。 複数のスレッドで使用する場合は、適切な同期処理によってSerialBlobへのアクセスを制御するようにしてください。
- 導入されたバージョン:
- 1.5
- 関連項目:
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明SerialBlob(byte[] b) 指定されたbyte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。SerialBlob(Blob blob) 指定されたBlobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。
- 
メソッドのサマリー修飾子と型メソッド説明clone()このSerialBlobのクローンを返します。booleanこのSerialBlobを指定されたオブジェクトと比較します。voidfree()このメソッドは、SerialBlobオブジェクトを解放し、保持しているリソースを解放します。このSerialBlobオブジェクトを入力ストリームとして返します。getBinaryStream(long pos, long length) Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。byte[]getBytes(long pos, int length) このSerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。inthashCode()このSerialBlobのハッシュ・コードを返します。longlength()このSerialBlobオブジェクトのバイト配列のバイト数を取得します。longposition(byte[] pattern, long start) このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。longこのSerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。setBinaryStream(long pos) このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。intsetBytes(long pos, byte[] bytes) このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。intsetBytes(long pos, byte[] bytes, int offset, int length) このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。voidtruncate(long length) このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。
- 
コンストラクタの詳細- 
SerialBlobpublic SerialBlob(byte[] b) throws SerialException, SQLException 指定されたbyte配列の直列化されたバージョンであるSerialBlobオブジェクトを構築します。新しい SerialBlobオブジェクトは、byte配列のデータで初期化されます。このため、未接続のRowSetオブジェクトは、データ・ソースに手を加えずに直列化されたBlobオブジェクトを作成できます。- パラメータ:
- b- 直列化される- Blobオブジェクトのデータを格納する- byte配列
- throws:
- SerialException- 直列化でエラーが発生した場合
- SQLException- SQLエラーが発生した場合
 
- 
SerialBlobpublic SerialBlob(Blob blob) throws SerialException, SQLException 指定されたBlobオブジェクトの直列化されたバージョンであるSerialBlobオブジェクトを構築します。新しい SerialBlobオブジェクトは、Blobオブジェクトのデータで初期化されます。このため、Blobオブジェクトは、あらかじめデータベースからクライアントへSQLBLOB値のデータを渡しておく必要があります。 そうしないと、新しいSerialBlobオブジェクトはデータを持たないオブジェクトになります。- パラメータ:
- blob- この- SerialBlobオブジェクトの構築に使用される- Blobオブジェクト。null以外。
- throws:
- SerialException- 直列化でエラーが発生した場合
- SQLException- このコンストラクタに渡された- Blobが- nullの場合。
- 関連項目:
 
 
- 
- 
メソッドの詳細- 
getBytespublic byte[] getBytes(long pos, int length) throws SerialException このSerialBlobオブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。コピーされるバイト数がこの SerialBlobオブジェクトのバイト配列より長くなる場合、配列の長さに合わせて切り詰められます。- 定義:
- getBytes、インタフェース- Blob
- パラメータ:
- pos- この- SerialBlobオブジェクト内のコピーされる最初のバイトの位置。- 1から開始され、- 1より小さい値にはならない。また、この- SerialBlobオブジェクトの長さ以下でなければならない
- length- コピーされるバイト数
- 戻り値:
- このSerialBlobオブジェクトのコピー領域となるバイト配列。指定位置から指定のバイト数分続く
- throws:
- SerialException- 指定された開始位置が範囲外である場合、またはこのオブジェクトで- freeが以前呼び出された場合
- 関連項目:
 
- 
lengthpublic long length() throws SerialExceptionこのSerialBlobオブジェクトのバイト配列のバイト数を取得します。- 定義:
- length、インタフェース- Blob
- 戻り値:
- このSerialBlobオブジェクトのバイト配列のバイト数を示すlong
- throws:
- SerialException- エラーが発生した場合、またはこのオブジェクトで- freeが以前呼び出された場合
 
- 
getBinaryStreampublic InputStream getBinaryStream() throws SerialExceptionこのSerialBlobオブジェクトを入力ストリームとして返します。 関連メソッドsetBinaryStreamとは異なり、SerialBlobがBlobオブジェクトによって作成されたか、またはbyte配列によって作成されたかに関係なく、ストリームが生成されます。- 定義:
- getBinaryStream、インタフェース- Blob
- 戻り値:
- このSerialBlobのバイト配列を格納するjava.io.InputStreamオブジェクト
- throws:
- SerialException- エラーが発生した場合、またはこのオブジェクトで- freeが以前呼び出された場合
- 関連項目:
 
- 
positionpublic long position(byte[] pattern, long start) throws SerialException, SQLException このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置を返します。検索は指定位置から開始されます。- 定義:
- position、インタフェース- Blob
- パラメータ:
- pattern- 検索対象のバイト・パターン
- start- この- SerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は- 1。- 1以上かつ、この- SerialBlobオブジェクトの長さ以下でなければならない
- 戻り値:
- このSerialBlobオブジェクト内で、指定されたバイト・パターンが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始される
- throws:
- SerialException- Blobの直列化時にエラーが発生した場合、またはこのオブジェクトで- freeが以前呼び出された場合
- SQLException- データベースから- BLOB値にアクセスするときにエラーが発生した場合
 
- 
positionpublic long position(Blob pattern, long start) throws SerialException, SQLException このSerialBlobオブジェクト内で、指定のBlobオブジェクトが開始される位置を返します。検索は指定位置から開始されます。- 定義:
- position、インタフェース- Blob
- パラメータ:
- pattern- 検索対象の- Blobオブジェクト
- start- この- SerialBlobオブジェクト内で、検索が開始されるバイトの位置。最初の位置は- 1。- 1以上かつ、この- SerialBlobオブジェクトの長さ以下でなければならない
- 戻り値:
- このSerialBlobオブジェクト内で、指定されたBlobオブジェクトが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は-1。戻り値の位置番号は1から開始される
- throws:
- SerialException- Blobの直列化時にエラーが発生した場合、またはこのオブジェクトで- freeが以前呼び出された場合
- SQLException- データベースから- BLOB値にアクセスするときにエラーが発生した場合
 
- 
setBytespublic int setBytes(long pos, byte[] bytes) throws SerialException, SQLException このBlobオブジェクトが表すBLOB値へ指定されたバイト配列をposの位置から書き込み、書き込まれたバイト数を返します。- 定義:
- setBytes、インタフェース- Blob
- パラメータ:
- pos- 書込みが開始されるSQL- BLOB値の位置。 最初の位置は- 1。- 1以上かつこの- SerialBlobオブジェクトの長さ以下でなければならない。
- bytes- この- Blobオブジェクトを表す- BLOB値へ書き込まれるバイト配列
- 戻り値:
- 書き込まれるバイト数
- throws:
- SerialException-- BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、またはこのオブジェクトで- freeが以前呼び出された場合
- SQLException- データベースから- BLOB値にアクセスするときにエラーが発生した場合
- 関連項目:
 
- 
setBytespublic int setBytes(long pos, byte[] bytes, int offset, int length) throws SerialException, SQLException このBlobオブジェクトが表すBLOB値へ指定されたbyte配列の全部または一部を書き込み、書き込まれたバイト数を返します。 書込みは、BLOB値のposの位置から開始され、書込み先の指定されたバイト配列からlenバイト書き込まれます。- 定義:
- setBytes、インタフェース- Blob
- パラメータ:
- pos- 書込みが開始される- BLOBオブジェクトの位置。 最初の位置は- 1。- 1以上かつこの- SerialBlobオブジェクトの長さ以下でなければならない。
- bytes- この- BLOB値へ書き込まれるバイト配列
- offset- バイトの読込みを開始する、- byte配列のオフセット。 最初のオフセット位置は- 0。- 0以上かつこの- byte配列の長さ以下でなければならない。
- length- bytesバイトの配列から- BLOB値に書き込まれるバイト数。
- 戻り値:
- 書き込まれるバイト数
- throws:
- SerialException-- BLOB値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、書き込まれるバイト数が- SerialBlobの長さを超えている場合、長さとオフセットを合わせた値がBlobバッファより大きい場合、またはこのオブジェクトで- freeが以前呼び出された場合
- SQLException- データベースから- BLOB値にアクセスするときにエラーが発生した場合。
- 関連項目:
 
- 
setBinaryStreampublic OutputStream setBinaryStream(long pos) throws SerialException, SQLException このBlobオブジェクトが表すBLOB値への書込みに使用できるストリームを取得します。 ストリームはposの位置から開始します。 このメソッドは、このSerialBlobオブジェクトがBlobによってインスタンス化されている場合に、setBinaryStream()呼出しを配下のBlobに転送します。 このSerialBlobがbyte配列によってインスタンス化されている場合はSerialExceptionがスローされます。- 定義:
- setBinaryStream、インタフェース- Blob
- パラメータ:
- pos- 書込みが開始される- BLOB値の位置。
- 戻り値:
- データが書き込まれるjava.io.OutputStreamオブジェクト
- throws:
- SQLException-- BLOB値にアクセスするときにエラーが発生した場合
- SerialException- SerialBlobが- setBinaryStream()をサポートする- Blobオブジェクトでインスタンス化されていない場合、またはこのオブジェクトで- freeが以前呼び出された場合
- 関連項目:
 
- 
truncatepublic void truncate(long length) throws SerialException このBlobオブジェクトが表すBLOB値をlenバイトの長さに切り詰めます。- 定義:
- truncate、インタフェース- Blob
- パラメータ:
- length- この- Blobオブジェクトが表す- BLOB値が切り詰められる長さ(バイト単位)
- throws:
- SerialException- Blob値にアクセスするときにエラーが発生した場合、切り詰める長さがSerialBlobの長さよりも長い場合、またはこのオブジェクトで- freeが以前呼び出された場合
 
- 
getBinaryStreampublic InputStream getBinaryStream(long pos, long length) throws SQLException Blob値の一部(バイト位置posから長さlengthバイト分)を格納したInputStreamオブジェクトを返します。- 定義:
- getBinaryStream、インタフェース- Blob
- パラメータ:
- pos- 取得する部分値の最初のバイトまでのオフセット。- Blob内で最初のバイトの位置は1
- length- 取得する部分値の長さ(バイト単位)
- 戻り値:
- Blob値の一部を読み取ることのできる- InputStream。
- throws:
- SQLException- posが1より小さい場合、posが- Blob内のバイト数より大きい場合、またはpos+lengthが- Blob内のバイト数より大きい場合
- SerialException- このオブジェクトで- freeメソッドが以前呼び出された場合
- 導入されたバージョン:
- 1.6
 
- 
freepublic void free() throws SQLExceptionこのメソッドは、SerialBlobオブジェクトを解放し、保持しているリソースを解放します。freeメソッドが一度呼び出されたあとは、オブジェクトは無効になります。freeを複数回呼び出した場合、2回目以降のfree呼出しは何も行わないものとして扱われます。- 定義:
- free、インタフェース- Blob
- throws:
- SQLException- Blobのリソースの解放時にエラーが発生した場合
- 導入されたバージョン:
- 1.6
 
- 
equalspublic boolean equals(Object obj) このSerialBlobを指定されたオブジェクトと比較します。 引数がnullではなく、このオブジェクトと同じ文字シーケンスを表すSerialBlobオブジェクトである場合にのみ、結果はtrueになります。
- 
hashCodepublic int hashCode()このSerialBlobのハッシュ・コードを返します。
- 
clonepublic Object clone()このSerialBlobのクローンを返します。 コピーは、このSerialBlobオブジェクトの内部バイト配列のクローンへの参照を保持するのであって、元の内部バイト配列への参照を保持するわけではありません。 ベースとなるBlobオブジェクトはnullに設定されます。
 
-