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