- java.lang.Object
-
- javax.sql.rowset.serial.SerialClob
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Clob
public class SerialClob extends Object implements Clob, Serializable, Cloneable
一个序列化的映射在Java编程语言中的一个SQLCLOB
值。SerialClob
类提供了一个从Clob
对象创建实例的Clob
函数。 需要注意的是Clob
对象应该已经将SQLCLOB
值的数据置于客户端之前SerialClob
对象从它建造。 SQLCLOB
值的数据可以作为Unicode字符流在客户端上实现。SerialClob
方法可以从SerialClob
对象获取一个子字符串,或查找字符模式的开始。线程安全
SerialClob不能安全地被多个并发线程使用。 如果一个SerialClob要由多个线程使用,则应该通过适当的同步来控制对SerialClob的访问。
- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 SerialClob(char[] ch)
构造一个SerialClob
对象,它是给定的char
数组的序列化版本。SerialClob(Clob clob)
构造一个SerialClob
对象,它是给定的Clob
对象的序列化版本。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Object
clone()
返回此SerialClob
的克隆。boolean
equals(Object obj)
将此SerialClob与指定对象进行比较。void
free()
该方法可以释放SerialClob
对象并释放它所拥有的资源。InputStream
getAsciiStream()
检索由该SerialClob
对象指定的CLOB
值作为ascii流。Reader
getCharacterStream()
将此SerialClob
对象的数据作为Unicode字符流返回。Reader
getCharacterStream(long pos, long length)
返回一个包含部分SerialClob
值的Reader
对象,以pos指定的字符开头,长度为长度字符。String
getSubString(long pos, int length)
返回此SerialClob
对象中包含的子字符串的副本,从给定位置开始并继续指定的数字或字符。int
hashCode()
返回此SerialClob
的哈希码。long
length()
检索此SerialClob
对象的字符数组中的字符数。long
position(String searchStr, long start)
返回此SerialClob
对象中的位置,给定的String
对象开始,开始在指定位置的搜索。long
position(Clob searchStr, long start)
返回此SerialClob
对象中给定的Clob
签名开始的位置,开始在指定位置的搜索。OutputStream
setAsciiStream(long pos)
检索用于将Ascii字符写入SerialClob
对象表示的CLOB
值的流,从位置pos
开始。Writer
setCharacterStream(long pos)
检索要用于将Unicode字符流写入SerialClob
对象表示的位置pos
的CLOB
值的流。int
setString(long pos, String str)
将给定的JavaString
写入SerialClob
对象表示的CLOB
值,位置pos
。int
setString(long pos, String str, int offset, int length)
写入len
的字符str
,起始于字符offset
到CLOB
值,这Clob
表示。void
truncate(long length)
截断该SerialClob
对象表示的CLOB
值,使其长度为len
字符。
-
-
-
构造方法详细信息
-
SerialClob
public SerialClob(char[] ch) throws SerialException, SQLException
构造一个SerialClob
对象,它是给定的char
数组的序列化版本。新
SerialClob
对象初始化与来自数据char
阵列,因此允许未连接RowSet
对象建立一个序列化Clob
对象而不接触的数据源。- 参数
-
ch
- 表示要序列化的Clob
对象的字符数组 - 异常
-
SerialException
- 如果在序列化期间发生错误 -
SQLException
- 如果发生SQL错误
-
SerialClob
public SerialClob(Clob clob) throws SerialException, SQLException
构造一个SerialClob
对象,它是给定的Clob
对象的序列化版本。新
SerialClob
对象初始化与从所述数据Clob
对象; 因此,Clob
对象应该已经将SQLCLOB
的数据从数据库提交给客户端。 否则,新的SerialClob
对象对象将不包含任何数据。注意:提供给此构造函数的
Clob
对象必须为Clob.getCharacterStream()
和Clob.getAsciiStream
方法返回非空值。 此SerialClob
构造函数无法在此实例中序列化一个Clob
对象,并将抛出一个SQLException
对象。- 参数
-
clob
-所述Clob
对象作为此SerialClob
目的是要构造; 不能为空 - 异常
-
SerialException
- 如果在序列化期间发生错误 -
SQLException
- 如果在捕获CLOB时发生SQL错误; 如果Clob
对象为null; 或者如果Clob.getCharacterStream()
中的Clob.getCharacterStream()
和Clob.getAsciiStream()
中的Clob
一个返回null - 另请参见:
-
Clob
-
-
方法详细信息
-
length
public long length() throws SerialException
检索此SerialClob
对象的字符数组中的字符数。- Specified by:
-
length
在接口Clob
- 结果
-
一个
long
表示该SerialClob
对象的字符数组的字符长度 - 异常
-
SerialException
- 如果发生错误; 如果free
以前已经被调用了这个对象
-
getCharacterStream
public Reader getCharacterStream() throws SerialException
将此SerialClob
对象的数据作为Unicode字符流返回。 与相关方法getAsciiStream
不同,无论SerialClob
对象是使用Clob
对象还是char
阵列创建,Clob
生成char
。- Specified by:
-
getCharacterStream
在接口Clob
- 结果
-
一个
java.io.Reader
对象包含这个SerialClob
对象的数据 - 异常
-
SerialException
- 如果发生错误; 如果free
以前已经被调用了这个对象 - 另请参见:
-
Clob.setCharacterStream(long)
-
getAsciiStream
public InputStream getAsciiStream() throws SerialException, SQLException
检索由该SerialClob
对象指定的CLOB
值作为ascii流。 此方法转发getAsciiStream
呼叫到底层Clob
在事件对象,这SerialClob
对象被实例化与Clob
对象。 如果此SerialClob
对象使用char
数组实例化,则抛出SerialException
对象。- Specified by:
-
getAsciiStream
在接口Clob
- 结果
-
一个
java.io.InputStream
包含此对象SerialClob
对象的数据 - 异常
-
SerialException
- 如果此SerialClob
对象未被实例Clob
对象; 如果free
以前曾被调用此对象 -
SQLException
- 如果访问由用于创建此SerialClob
对象的Clob
对象表示的CLOB
值存在错误 - 另请参见:
-
Clob.setAsciiStream(long)
-
getSubString
public String getSubString(long pos, int length) throws SerialException
返回此SerialClob
对象中包含的子字符串的副本,从给定位置开始,并继续指定的数字或字符。- Specified by:
-
getSubString
在接口Clob
- 参数
-
pos
- 要复制的子串中第一个字符的位置;SerialClob
对象的第一个字符是位置1
; 不得小于1
,并且子串的起始位置和长度之和必须小于该SerialClob
对象的长度 -
length
- 要返回的子字符串中的字符数; 不得大于此SerialClob
对象的长度,并且子字符串的起始位置和长度之和必须小于此SerialClob
对象的长度 - 结果
-
一个
String
对象,该对象包含从给定位置开始并包含指定数量的连续字符的此SerialClob
对象的子字符串 - 异常
-
SerialException
- 如果任何一个参数超出范围; 如果free
先前已被调用此对象
-
position
public long position(String searchStr, long start) throws SerialException, SQLException
返回此SerialClob
对象中给定的String
对象开始的位置,在指定位置开始搜索。 如果找不到该模式,此方法返回-1
。- Specified by:
-
position
在接口Clob
- 参数
-
searchStr
- 要搜索的String
对象 -
start
- 在此SerialClob
对象中的位置开始搜索; 第一名是1
; 不得小于1
也不得大于此SerialClob
对象的长度 - 结果
-
给定
String
对象开始的位置,在指定位置开始搜索;-1
如果给定的String
对象未找到或起始位置超出范围; 返回值的位置编号从1
开始 - 异常
-
SerialException
- 如果以前在此对象上调用了free
方法 -
SQLException
- 如果从数据库访问Clob值时出错。
-
position
public long position(Clob searchStr, long start) throws SerialException, SQLException
返回此SerialClob
对象的位置,其中给定的Clob
签名开始,在指定位置开始搜索。 如果找不到该模式,此方法返回-1
。- Specified by:
-
position
在接口Clob
- 参数
-
searchStr
- 要搜索的Clob
对象 -
start
- 在此SerialClob
对象中的位置开始搜索; 第一名是1
; 不得小于1
也不得大于此SerialClob
对象的长度 - 结果
-
给定的
Clob
对象在该SerialClob
对象中开始的位置,在指定的起始位置或之后 - 异常
-
SerialException
- 如果定位Clob签名出现错误; 如果free
方法以前是在此对象上调用的 -
SQLException
- 如果从数据库访问Clob值时出错
-
setString
public int setString(long pos, String str) throws SerialException
将给定的JavaString
写入SerialClob
对象表示的CLOB
值,位置pos
。- Specified by:
-
setString
在接口Clob
- 参数
-
pos
- 开始写入SerialClob
对象所代表的CLOB
值的位置; 第一名是1
; 不得小于1
也不得大于此SerialClob
对象的长度 -
str
-字符串写入到CLOB
,该值SerialClob
对象表示 - 结果
- 写入的字符数
- 异常
-
SerialException
- 如果访问CLOB
值存在错误; 如果设置无效位置; 如果设置无效的偏移值; 要写入的字节数大于SerialClob
长度; 或长度和偏移的组合值大于Clob缓冲区; 如果free
方法以前曾被调用此对象
-
setString
public int setString(long pos, String str, int offset, int length) throws SerialException
写入len
的字符str
,起始于字符offset
到CLOB
值,这Clob
表示。- Specified by:
-
setString
在接口Clob
- 参数
-
pos
- 开始写入这个SerialClob
对象所代表的CLOB
值的位置; 第一名是1
; 不得小于1
也不得大于此SerialClob
对象的长度 -
str
-字符串写入到CLOB
,该值Clob
对象表示 -
offset
- 偏移到str
开始读取要写入的字符 -
length
- 要写入的字符数 - 结果
- 写入的字符数
- 异常
-
SerialException
- 访问CLOB
值时是否有错误; 如果设置无效位置; 如果设置无效的偏移值; 要写入的字节数大于SerialClob
长度; 或长度和偏移的组合值大于Clob缓冲区; 如果free
方法以前是在此对象上调用的
-
setAsciiStream
public OutputStream setAsciiStream(long pos) throws SerialException, SQLException
检索要用于将Ascii字符写入SerialClob
对象表示的CLOB
值的流,从位置pos
开始。 此方法转发setAsciiStream()
呼叫到底层Clob
在事件对象,这SerialClob
对象被实例化与Clob
对象。 如果此SerialClob
对象使用char
数组实例化,则抛出SerialException
对象。- Specified by:
-
setAsciiStream
在接口Clob
- 参数
-
pos
- 开始写入CLOB
对象的位置 - 结果
- 可以写入ASCII编码字符的流
- 异常
-
SerialException
- 如果不使用Clob对象实例化SerialClob; 如果free
方法以前曾被调用此对象 -
SQLException
- 如果存在访问CLOB
值的错误 - 另请参见:
-
getAsciiStream()
-
setCharacterStream
public Writer setCharacterStream(long pos) throws SerialException, SQLException
检索流用于写入的Unicode字符流的CLOB
值,这SerialClob
对象表示,在位置pos
。 此方法转发setCharacterStream()
呼叫到底层Clob
在事件对象,这SerialClob
对象被实例化与Clob
对象。 如果此SerialClob
对象使用char
数组实例化,则抛出SerialException
。- Specified by:
-
setCharacterStream
在接口Clob
- 参数
-
pos
- 开始写入CLOB
值的位置 - 结果
- 可编写Unicode编码字符的流
- 异常
-
SerialException
- 如果SerialClob未被Clob对象实例化; 如果free
方法以前曾被调用此对象 -
SQLException
- 如果存在访问CLOB
值的错误 - 另请参见:
-
getCharacterStream()
-
truncate
public void truncate(long length) throws SerialException
截断此SerialClob
对象表示的CLOB
值,以使其长度为len
字符。将
SerialClob
对象截断为0,具有清除其内容的效果。- Specified by:
-
truncate
在接口Clob
- 参数
-
length
- 要截断CLOB
值的长度(以字节为单位) - 异常
-
SerialException
- 如果存在访问CLOB
值的错误; 如果free
方法以前是在此对象上调用的
-
getCharacterStream
public Reader getCharacterStream(long pos, long length) throws SQLException
返回一个包含部分SerialClob
值的Reader
对象,以pos指定的字符开头,长度为长度字符。- Specified by:
-
getCharacterStream
在接口Clob
- 参数
-
pos
- 要检索的部分值的第一个字符的偏移量。SerialClob
的第一个字符是位置1。 -
length
- 要检索的部分值的字符长度。 - 结果
-
Reader
可以读取部分SerialClob
值。 - 异常
-
SQLException
- 如果pos小于1或pos大于SerialClob
的字符数,或者如果pos +长度大于SerialClob
的字符数; -
SerialException
- 如果以前在此对象上调用了free
方法 - 从以下版本开始:
- 1.6
-
free
public void free() throws SQLException
该方法可以释放SerialClob
对象并释放它所拥有的资源。 一旦调用了free
方法,该对象就无效。如果
free
被多次调用,在后续调用free
被视为无操作。- Specified by:
-
free
在接口Clob
- 异常
-
SQLException
- 如果发生错误发布Clob的资源 - 从以下版本开始:
- 1.6
-
equals
public boolean equals(Object obj)
将此SerialClob与指定对象进行比较。 当且仅当参数不是null
且是表示与此对象相同的字符序列的SerialClob
对象时,结果为true
。- 重写:
-
equals
在Object
- 参数
-
obj
- 对比这个SerialClob
的对象 - 结果
-
true
如果给定的对象代表一个SerialClob
等效于此SerialClob,false
否则 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此SerialClob
的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-