- java.lang.Object
-
- javax.sql.rowset.serial.SerialBlob
-
- 实现的所有接口
-
Serializable,Cloneable,Blob
public class SerialBlob extends Object implements Blob, Serializable, Cloneable
SQL编程语言中的序列化映射,具有SQLBLOB值。SerialBlob类提供了一个用于从Blob对象创建实例的Blob函数。 需要注意的是Blob对象应该已经将SQLBLOB一个前值的数据置于客户端SerialBlob对象从它建造。 SQLBLOB值的数据可以在客户端上实现为字节数组(使用方法Blob.getBytes)或未解释的字节流(使用方法Blob.getBinaryStream)。SerialBlob方法可以将SerialBlob对象的副本复制为字节数组或流。 它们还可以在Blob对象中定位给定的字节模式或SerialBlob对象,并更新或截断Blob对象。线程安全
SerialBlob不适合多个并发线程使用。 如果要由多个线程使用SerialBlob,则应通过适当的同步来控制对SerialBlob的访问。
- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 SerialBlob(byte[] b)构造一个SerialBlob对象,该对象是给定byte数组的序列化版本。SerialBlob(Blob blob)构造一个SerialBlob对象,该对象是给定Blob对象的序列化版本。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Objectclone()返回此SerialBlob。booleanequals(Object obj)将此SerialBlob与指定的对象进行比较。voidfree()此方法释放SerialBlob对象并释放它所拥有的资源。InputStreamgetBinaryStream()将此SerialBlob对象作为输入流返回。InputStreamgetBinaryStream(long pos, long length)返回一个InputStream对象,该对象包含一个部分Blob值,以pos指定的字节开头,长度为length个字节。byte[]getBytes(long pos, int length)将指定位置的指定字节数从此SerialBlob对象SerialBlob到另一个字节数组。inthashCode()返回此SerialBlob的哈希码。longlength()检索此SerialBlob对象的字节数组中的字节数。longposition(byte[] pattern, long start)返回此SerialBlob对象中给定的字节模式开始的位置,从指定位置开始搜索。longposition(Blob pattern, long start)返回给定Blob对象开始的SerialBlob对象中的位置,从指定位置开始搜索。OutputStreamsetBinaryStream(long pos)检索可用于写入此Blob对象表示的BLOB值的流。intsetBytes(long pos, byte[] bytes)将给定的字节数组写入此Blob对象所代表的BLOB值,从位置pos开始,并返回写入的字节数。intsetBytes(long pos, byte[] bytes, int offset, int length)将全部或部分给定的byte数组写入此Blob对象表示的BLOB值,并返回写入的字节数。voidtruncate(long length)截断此Blob对象表示的BLOB值为len字节长度。
-
-
-
构造方法详细信息
-
SerialBlob
public SerialBlob(byte[] b) throws SerialException, SQLException构造一个SerialBlob对象,该对象是给定byte数组的序列化版本。使用来自
byte阵列的数据初始化新的SerialBlob对象,从而允许断开连接的RowSet对象以建立序列化的Blob对象而不触及数据源。- 参数
-
b- 包含要序列化的Blob对象的数据的byte数组 - 异常
-
SerialException- 如果序列化期间发生错误 -
SQLException- 如果发生SQL错误
-
SerialBlob
public SerialBlob(Blob blob) throws SerialException, SQLException
构造一个SerialBlob对象,该对象是给定Blob对象的序列化版本。使用
SerialBlob对象中的数据初始化新的Blob对象; 因此,Blob对象之前应该已将SQLBLOB值的数据从数据库传输到客户端。 否则,新的SerialBlob对象将不包含任何数据。- 参数
-
blob-Blob构造此SerialBlob对象的SerialBlob对象; 不能为空。 - 异常
-
SerialException- 如果序列化期间发生错误 -
SQLException-如果Blob传递给该给此构造是null。 - 另请参见:
-
Blob
-
-
方法详细信息
-
getBytes
public byte[] getBytes(long pos, int length) throws SerialException将指定位置的指定字节数从此SerialBlob对象SerialBlob到另一个字节数组。请注意,如果要复制的给定字节数大于此
SerialBlob对象的字节数组的长度,则给定的数字将缩短为数组的长度。- Specified by:
-
getBytes在界面Blob - 参数
-
pos- 要复制的SerialBlob对象中第一个字节的序号位置; 编号从1开始; 不得小于1且且必须小于或等于此SerialBlob对象的长度 -
length- 要复制的字节数 - 结果
-
一个字节数组,它是此
SerialBlob对象的一个区域的副本,从给定位置开始并包含给定数量的连续字节 - 异常
-
SerialException- 如果给定的起始位置超出范围; 如果之前已在此对象free - 另请参见:
-
Blob.setBytes(long, byte[])
-
length
public long length() throws SerialException检索此SerialBlob对象的字节数组中的字节数。- Specified by:
-
lengthin interfaceBlob - 结果
-
long表示此SerialBlob对象的字节数组的字节长度 - 异常
-
SerialException- 如果发生错误; 如果先前已在此对象上调用了free
-
getBinaryStream
public InputStream getBinaryStream() throws SerialException
将此SerialBlob对象作为输入流返回。 与相关方法setBinaryStream不同,无论SerialBlob是使用Blob对象还是byte阵列创建,都会生成流。- Specified by:
-
getBinaryStreamin interfaceBlob - 结果
-
一个
java.io.InputStream对象包含此SerialBlob字节对象的阵列 - 异常
-
SerialException- 如果发生错误; 如果之前已在此对象free - 另请参见:
-
setBinaryStream(long)
-
position
public long position(byte[] pattern, long start) throws SerialException, SQLException返回此SerialBlob对象中给定的字节模式开始的位置,从指定位置开始搜索。- Specified by:
-
positionin interfaceBlob - 参数
-
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
返回给定Blob对象开始的SerialBlob对象中的位置,从指定位置开始搜索。- Specified by:
-
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开始,并返回写入的字节数。- Specified by:
-
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将全部或部分给定的byte数组写入此Blob对象表示的BLOB值,并返回写入的字节数。 写入从位于pos的BLOB值开始; 写入来自给定字节数组的len个字节。- Specified by:
-
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)
-
setBinaryStream
public OutputStream setBinaryStream(long pos) throws SerialException, SQLException
检索可用于写入此Blob对象表示的BLOB值的流。 该流开始于位置pos。 此方法转发setBinaryStream()呼叫到底层Blob在事件,这SerialBlob对象被实例化与Blob。 如果使用byte阵列实例化此SerialBlob,则抛出SerialException。- Specified by:
-
setBinaryStreamin interfaceBlob - 参数
-
pos- 开始写入的值在BLOB值中的位置 - 结果
-
可以写入数据的
java.io.OutputStream对象 - 异常
-
SQLException- 如果访问BLOB值时出错 -
SerialException- 如果SerialBlob未使用支持setBinaryStream()的Blob对象实例化; 如果之前已在此对象free - 另请参见:
-
getBinaryStream()
-
truncate
public void truncate(long length) throws SerialException截断此Blob对象表示的BLOB值,长度为len个字节。- Specified by:
-
truncate,接口Blob - 参数
-
length- 应该截断此Blob对象表示的BLOB值的长度(以字节为单位) - 异常
-
SerialException- 如果访问Blob值时出错; 或者截断的长度大于SerialBlob的长度; 如果先前已在此对象上调用了free
-
getBinaryStream
public InputStream getBinaryStream(long pos, long length) throws SQLException
返回一个InputStream对象,该对象包含部分Blob值,以pos指定的字节开头,长度为length个字节。- Specified by:
-
getBinaryStream在接口Blob - 参数
-
pos- 要检索的部分值的第一个字节的偏移量。Blob的第一个字节位于位置1 -
length- 要检索的部分值的长度(以字节为单位) - 结果
-
InputStream通过其可以读取部分Blob值。 - 异常
-
SQLException- 如果pos小于1或者如果pos大于Blob的字节数,或者如果pos + length大于Blob的字节数 -
SerialException- 如果先前已在此对象上调用了free方法 - 从以下版本开始:
- 1.6
-
free
public void free() throws SQLException此方法释放SerialBlob对象并释放它所拥有的资源。 调用free方法后,该对象无效。如果
free被多次调用,在后续调用free被视为无操作。- Specified by:
-
free接口Blob - 异常
-
SQLException- 如果发生错误,则释放Blob的资源 - 从以下版本开始:
- 1.6
-
equals
public boolean equals(Object obj)
将此SerialBlob与指定的对象进行比较。 当且仅当参数不是null并且是SerialBlob对象时,结果为true,该对象表示与此对象相同的字节序列。- 重写:
-
equals类Object - 参数
-
obj-要比较的对象这个SerialBlob反对 - 结果
-
true如果给定的对象表示SerialBlob相当于此SerialBlob,false否则 - 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public int hashCode()
返回此SerialBlob的哈希码。- 重写:
-
hashCode类Object - 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-