public class SerialBlob extends Object implements Blob, Serializable, Cloneable
BLOB值。
SerialBlob类提供了一个用于从Blob对象创建实例的Blob函数。 需要注意的是Blob的对象应该已经将SQL BLOB值的数据置于客户端之前SerialBlob对象从它建造。 一个SQL的数据BLOB值可以在客户端上以字节(使用方法的阵列Blob.getBytes ),或者作为未解释的字节流(使用方法Blob.getBinaryStream )。
SerialBlob方法可以使SerialBlob对象的副本作为字节数组或流。 它们还可以在Blob对象中找到给定的字节模式或SerialBlob对象,并更新或截断Blob对象。
SerialBlob不能安全地被多个并发线程使用。 如果一个SerialBlob要由多个线程使用,则应该通过适当的同步来控制对SerialBlob的访问。
| Constructor and Description |
|---|
SerialBlob(Blob blob)
构造一个
SerialBlob对象,它是给定的
Blob对象的序列化版本。
|
SerialBlob(byte[] b)
构造一个
SerialBlob对象,它是给定的
byte数组的序列化版本。
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
返回此
SerialBlob的克隆。
|
boolean |
equals(Object obj)
将此SerialBlob与指定对象进行比较。
|
void |
free()
此方法可以释放
SeriableBlob对象并释放它所拥有的资源。
|
InputStream |
getBinaryStream()
返回此
SerialBlob对象作为输入流。
|
InputStream |
getBinaryStream(long pos, long length)
返回一个包含部分
Blob值的
InputStream对象,从pos指定的字节开始,长度为字节长度。
|
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)
将给定的
byte数组的全部或部分写入
Blob对象表示的
BLOB值,并返回写入的字节数。
|
void |
truncate(long length)
截断此
Blob对象表示的长度为
len字节的
BLOB值。
|
public SerialBlob(byte[] b)
throws SerialException,
SQLException
SerialBlob对象,它是给定的byte数组的序列化版本。
新的SerialBlob对象使用byte阵列的数据进行byte ,从而允许断开RowSet对象建立序列化的Blob对象,而无需触及数据源。
b - 包含
byte序列化的
Blob对象的数据的
byte数组
SerialException - 如果在序列化期间发生错误
SQLException - 如果发生SQL错误
public SerialBlob(Blob blob) throws SerialException, SQLException
SerialBlob对象,它是给定的Blob对象的序列化版本。
新的SerialBlob对象使用SerialBlob对象的数据进行Blob ; 因此, Blob对象之前应该已经将SQL BLOB的数据从数据库提交给客户端。 否则,新的SerialBlob对象将不包含任何数据。
blob - 要Blob此SerialBlob对象的SerialBlob对象;
不能为空。
SerialException - 如果在序列化期间发生错误
SQLException - 如果
Blob传递给这个构造函数是
null 。
Blob
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[])
public long length()
throws SerialException
SerialBlob对象的字节数组中的字节数。
length在界面
Blob
long指示此
SerialBlob对象的字节数组的字节长度
SerialException - 如果发生错误;
如果free以前曾被调用此对象
public InputStream getBinaryStream() throws SerialException
SerialBlob对象作为输入流。
与相关方法setBinaryStream不同,无论SerialBlob是使用Blob对象还是byte阵列创建,都会生成流。
getBinaryStream在界面
Blob
java.io.InputStream对象包含此
SerialBlob对象的字节数组
SerialException - 如果发生错误;
如果free以前曾被调用此对象
setBinaryStream(long)
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值是否有错误
public long position(Blob pattern, long start) throws SerialException, SQLException
SerialBlob对象中的位置,给定的
Blob对象开始,开始在指定位置的搜索。
position在界面
Blob
pattern - 要搜索的
Blob对象;
start - SerialBlob开始搜索的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在界面
Blob
pos - 在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
byte数组的全部或部分写入Blob对象表示的BLOB值,并返回写入的字节数。
写作起始于pos的BLOB值;
写入来自给定字节数组的len字节。
setBytes在界面
Blob
pos - 在开始写作的BLOB对象中的位置。
第一名是1 ;
不得小于1也不得大于此SerialBlob对象的长度。
bytes - 要写入
BLOB值的字节数组
offset - 在开始读取字节的byte数组中的偏移量。
第一个偏移位置是0 ;
不得小于0也不得大于byte阵列的长度
length - 要从字节数组字节写入
BLOB值的字节
数 。
SerialException - 访问BLOB值时是否有错误;
如果设置无效位置;
如果设置了无效的偏移值;
要写入的字节数大于SerialBlob长度;
或长度和偏移的组合值大于Blob缓冲区;
如果free先前已被调用此对象
SQLException - 如果从数据库
BLOB值出错。
getBytes(long, int)
public OutputStream setBinaryStream(long pos) throws SerialException, SQLException
Blob对象所代表的BLOB值的流。
流从位置pos开始。
如果此SerialBlob对象使用Blob Blob ,则此方法将setBinaryStream()调用转发到setBinaryStream() Blob 。
如果这SerialBlob与实例byte阵列,一个SerialException被抛出。
setBinaryStream在界面
Blob
pos - 在开始写作的
BLOB值的位置
java.io.OutputStream对象
SQLException - 访问
BLOB值时是否存在错误
SerialException - 如果SerialBlob未实例化与支持setBinaryStream()的Blob对象;
如果free以前已经被调用了这个对象
getBinaryStream()
public void truncate(long length)
throws SerialException
Blob对象表示的长度为
len字节的
BLOB值。
truncate在界面
Blob
length - 此
Blob对象所代表的
BLOB值的长度(以字节为单位)应被截断
SerialException - 访问Blob值是否有错误;
或者截断长度大于SerialBlob长度;
如果free以前已经被调用了这个对象
public InputStream getBinaryStream(long pos, long length) throws SQLException
InputStream对象,该对象包含部分
Blob值,以pos指定的字节开头,长度为长度字节。
getBinaryStream在界面
Blob
pos - 要检索的部分值的第一个字节的偏移量。
Blob的第一个字节在位置1
length - 要检索的部分值的字节长度
InputStream可以读取部分
Blob值。
SQLException - 如果pos小于1,或者如果pos大于
Blob中的字节数,或者如果pos +长度大于
Blob中的字节数
SerialException - 如果
free方法以前是在此对象上调用的
public void free()
throws SQLException
SeriableBlob对象并释放它所拥有的资源。
调用free方法后,该对象无效。
如果free被多次调用,在后续调用free被视为无操作。
free在界面
Blob
SQLException - 如果发布错误发布Blob的资源
public boolean equals(Object obj)
true当且仅当参数不是null并且是SerialBlob对象,它表示与该对象相同的字节序列。
equals在类别
Object
obj - 对比这个
SerialBlob的对象
true如果给定的对象表示
SerialBlob相当于此SerialBlob,
false否则
Object.hashCode() , HashMap
public int hashCode()
SerialBlob的哈希码。
hashCode在类别
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.