java.lang.Object
javax.sql.rowset.serial.SerialClob
- 所有已实现的接口:
-
Serializable
,Cloneable
,Clob
Java编程语言中对SQL
CLOB
值的序列化映射。
SerialClob
类提供了一个从Clob
对象创建实例的构造函数。请注意,在从中构造SerialClob
对象之前,Clob
对象应该已经将SQL CLOB
值的数据传输到客户端。SQL CLOB
值的数据可以在客户端作为Unicode字符流实现。
SerialClob
方法使得可以从SerialClob
对象中获取子字符串或定位字符模式的起始位置。
线程安全性
SerialClob
不适合多个并发线程使用。如果一个SerialClob
将被多个线程使用,则应通过适当的同步来控制对SerialClob
的访问。
- 自版本:
- 1.5
- 参见:
-
Constructor Summary
ConstructorDescriptionSerialClob
(char[] ch) 构造一个SerialClob
对象,该对象是给定char
数组的序列化版本。SerialClob
(Clob clob) 构造一个SerialClob
对象,该对象是给定Clob
对象的序列化版本。 -
Method Summary
Modifier and TypeMethodDescriptionclone()
返回此SerialClob
的克隆。boolean
将此SerialClob与指定对象进行比较。void
free()
该方法释放SerialClob
对象并释放其持有的资源。检索由此SerialClob
对象指定的CLOB
值作为ASCII流。将此SerialClob
对象的数据作为Unicode字符流返回。getCharacterStream
(long pos, long length) 返回一个Reader
对象,其中包含一个部分SerialClob
值,从指定位置pos
开始,长度为length个字符。getSubString
(long pos, int length) 返回包含在此SerialClob
对象中的子字符串的副本,从给定位置开始,继续指定数量的字符。int
hashCode()
返回此SerialClob
的哈希码。long
length()
检索此SerialClob
对象的字符数组中的字符数。long
返回此SerialClob
对象中给定String
对象开始的位置,从指定位置开始搜索。long
返回此SerialClob
对象中给定Clob
签名开始的位置,从指定位置开始搜索。setAsciiStream
(long pos) 检索一个流,用于将Ascii字符写入此SerialClob
对象表示的CLOB
值,从位置pos
开始。setCharacterStream
(long pos) 检索一个流,用于将Unicode字符流写入此SerialClob
对象表示的CLOB
值,从位置pos
开始。int
将给定的JavaString
写入此SerialClob
对象表示的CLOB
值,位置为pos
。int
将str
的len
个字符,从字符offset
开始,写入此Clob
表示的CLOB
值。void
truncate
(long length) 截断此SerialClob
对象表示的CLOB
值,使其长度为len
个字符。
-
Constructor Details
-
SerialClob
构造一个SerialClob
对象,该对象是给定char
数组的序列化版本。新的
SerialClob
对象使用char
数组的数据进行初始化,从而允许断开连接的RowSet
对象建立一个序列化的Clob
对象而不触及数据源。- 参数:
-
ch
- 表示要序列化的Clob
对象的char数组 - 抛出:
-
SerialException
- 如果在序列化过程中发生错误 -
SQLException
- 如果发生SQL错误
-
SerialClob
构造一个SerialClob
对象,该对象是给定Clob
对象的序列化版本。新的
SerialClob
对象使用Clob
对象的数据进行初始化;因此,Clob
对象应该先将SQLCLOB
值的数据从数据库传输到客户端。否则,新的SerialClob
对象将不包含任何数据。注意:提供给此构造函数的
Clob
对象必须对Clob.getCharacterStream()
和Clob.getAsciiStream
方法都返回非空值。在这种情况下,此SerialClob
构造函数无法序列化Clob
对象,并将抛出一个SQLException
对象。- 参数:
-
clob
- 用于构造此SerialClob
对象的Clob
对象;不能为空 - 抛出:
-
SerialException
- 如果在序列化过程中发生错误 -
SQLException
- 如果在捕获CLOB时发生SQL错误;如果Clob
对象为null;或者如果Clob
的Clob.getCharacterStream()
和Clob.getAsciiStream()
方法中的任一方法返回null - 参见:
-
-
Method Details
-
length
检索此SerialClob
对象的字符数组中的字符数。- 指定者:
-
length
在接口Clob
中 - 返回:
-
一个
long
,表示此SerialClob
对象的字符数组的长度 - 抛出:
-
SerialException
- 如果发生错误;如果此对象之前已调用free
-
getCharacterStream
返回此SerialClob
对象的数据作为Unicode字符流。与相关方法getAsciiStream
不同,无论SerialClob
对象是使用Clob
对象还是char
数组创建的,都会生成一个流。- 指定者:
-
getCharacterStream
在接口Clob
中 - 返回:
-
包含此
SerialClob
对象数据的java.io.Reader
对象 - 抛出:
-
SerialException
- 如果发生错误;如果此对象之前已调用free
- 参见:
-
getAsciiStream
检索由此SerialClob
对象指定的CLOB
值作为ASCII流。如果此SerialClob
对象是使用Clob
对象实例化的,则此方法将getAsciiStream
调用转发到底层的Clob
对象。如果此SerialClob
对象是使用char
数组实例化的,则会抛出一个SerialException
对象。- 指定者:
-
getAsciiStream
在接口Clob
中 - 返回:
-
包含此
SerialClob
对象数据的java.io.InputStream
对象 - 抛出:
-
SerialException
- 如果此SerialClob
对象不是使用Clob
对象实例化的;如果此对象之前已调用free
-
SQLException
- 如果访问由用于创建此SerialClob
对象的Clob
对象表示的CLOB
值时发生错误 - 参见:
-
getSubString
返回包含在此SerialClob
对象中的子字符串的副本,从给定位置开始,继续指定数量的字符。- 指定者:
-
getSubString
在接口Clob
中 - 参数:
-
pos
- 要复制的子字符串中第一个字符的位置;SerialClob
对象的第一个字符位于位置1
;不得小于1
,且起始位置和子字符串长度的总和必须小于此SerialClob
对象的长度 -
length
- 要返回的子字符串中的字符数;不得大于此SerialClob
对象的长度,并且起始位置和子字符串长度的总和必须小于此SerialClob
对象的长度 - 返回:
-
包含从给定位置开始的此
SerialClob
对象的子字符串的String
对象,包含指定数量的连续字符 - 抛出:
-
SerialException
- 如果任一参数超出范围;如果此对象上先前调用了free
-
position
返回此SerialClob
对象中给定String
对象开始的位置,从指定位置开始搜索。如果未找到模式,则此方法返回-1
。- 指定者:
-
position
在接口Clob
中 - 参数:
-
searchStr
- 要搜索的String
对象 -
start
- 在此SerialClob
对象中开始搜索的位置;第一个位置为1
;不得小于1
,也不得大于此SerialClob
对象的长度 - 返回:
-
给定
String
对象开始的位置,从指定位置开始搜索;如果未找到给定String
对象或起始位置超出范围,则返回-1
;返回值的位置编号从1
开始 - 抛出:
-
SerialException
- 如果先前在此对象上调用了free
方法 -
SQLException
- 如果访问数据库中的Clob值时出现错误
-
position
返回此SerialClob
对象中给定Clob
签名开始的位置,从指定位置开始搜索。如果未找到模式,则此方法返回-1
。- 指定者:
-
position
在接口Clob
中 - 参数:
-
searchStr
- 要搜索的Clob
对象 -
start
- 在此SerialClob
对象中开始搜索的位置;第一个位置为1
;不得小于1
,也不得大于此SerialClob
对象的长度 - 返回:
-
此
SerialClob
对象中给定Clob
对象开始的位置,从指定起始位置或之后开始 - 抛出:
-
SerialException
- 如果定位Clob签名时发生错误;如果先前在此对象上调用了free
方法 -
SQLException
- 如果访问数据库中的Clob值时出现错误
-
setString
将给定的JavaString
写入此SerialClob
对象表示的CLOB
值,位置为pos
。- 指定者:
-
setString
在接口Clob
中 - 参数:
-
pos
- 要开始写入此SerialClob
对象表示的CLOB
值的位置;第一个位置为1
;不得小于1
,也不得大于此SerialClob
对象的长度+1 -
str
- 要写入此SerialClob
对象表示的CLOB
值的字符串 - 返回:
- 写入的字符数
- 抛出:
-
SerialException
- 如果访问CLOB
值时出现错误;如果设置了无效位置;如果先前在此对象上调用了free
方法
-
setString
写入len
个字符的str
,从字符offset
开始,到此Clob
表示的CLOB
值。- 指定者:
-
setString
在接口Clob
中 - 参数:
-
pos
- 要开始写入此SerialClob
对象表示的CLOB
值的位置;第一个位置为1
;不得小于1
,也不得大于此SerialClob
对象的长度+1 -
str
- 要写入此CLOB
值的Clob
对象表示的字符串 -
offset
- 开始读取要写入的字符的str
中的偏移量 -
length
- 要写入的字符数 - 返回:
- 写入的字符数
- 抛出:
-
SerialException
- 如果访问CLOB
值时出现错误;如果设置了无效位置;如果设置了无效偏移值;或length
和offset
的组合值大于str
的长度;如果先前在此对象上调用了free
方法
-
setAsciiStream
检索一个流,用于将Ascii字符写入此SerialClob
对象表示的CLOB
值,从位置pos
开始。如果此SerialClob
对象是使用Clob
对象实例化的,则此方法将setAsciiStream()
调用转发到底层Clob
对象。如果此SerialClob
对象是使用char
数组实例化的,则会抛出SerialException
对象。- 指定者:
-
setAsciiStream
在接口Clob
中 - 参数:
-
pos
- 要开始写入CLOB
对象的位置 - 返回:
- 可以写入ASCII编码字符的流
- 抛出:
-
SerialException
- 如果SerialClob未使用Clob对象实例化;如果先前在此对象上调用了free
方法 -
SQLException
- 如果访问CLOB
值时出现错误 - 参见:
-
setCharacterStream
检索一个流,用于将Unicode字符流写入此SerialClob
对象表示的CLOB
值,位置为pos
。如果此SerialClob
对象是使用Clob
对象实例化的,则此方法将setCharacterStream()
调用转发到底层Clob
对象。如果此SerialClob
对象是使用char
数组实例化的,则会抛出SerialException
。- 指定者:
-
setCharacterStream
在接口Clob
中 - 参数:
-
pos
- 要开始写入CLOB
值的位置 - 返回:
- 可以写入Unicode编码字符的流
- 抛出:
-
SerialException
- 如果SerialClob未使用Clob对象实例化;如果先前在此对象上调用了free
方法 -
SQLException
- 如果访问CLOB
值时出现错误 - 参见:
-
truncate
截断此SerialClob
对象表示的CLOB
值,使其长度为len
个字符。将
SerialClob
对象截断为长度为0的效果是清除其内容。- 指定者:
-
truncate
在接口Clob
中 - 参数:
-
length
- 应将CLOB
值截断为的字节数 - 抛出:
-
SerialException
- 如果访问CLOB
值时出现错误;如果此对象之前已调用free
方法
-
getCharacterStream
返回一个包含部分SerialClob
值的Reader
对象,从指定位置开始,长度为length个字符。- 指定者:
-
getCharacterStream
在接口Clob
中 - 参数:
-
pos
- 要检索部分值的第一个字符的偏移量。在SerialClob
中,第一个字符位于位置1。 -
length
- 要检索的部分值的字符长度。 - 返回:
-
通过该
Reader
可以读取部分SerialClob
值。 - 抛出:
-
SQLException
- 如果pos小于1,或者pos大于SerialClob
中的字符数,或者pos + length大于SerialClob
中的字符数; -
SerialException
- 如果此对象之前已调用free
方法 - 自从:
- 1.6
-
free
该方法释放SerialClob
对象并释放其持有的资源。一旦调用free
方法,对象就无效。如果多次调用
free
,则后续调用将被视为无操作。- 指定者:
-
free
在接口Clob
中 - 抛出:
-
SQLException
- 如果释放Clob的资源时发生错误 - 自从:
- 1.6
-
equals
将此SerialClob与指定对象进行比较。如果参数不为null
且为表示与此对象相同字符序列的SerialClob
对象,则结果为true
。 -
hashCode
public int hashCode()返回此SerialClob
的哈希码。 -
clone
返回此SerialClob
的克隆。副本将包含对内部字符数组的克隆的引用,而不是对此SerialClob
对象的原始内部字符数组的引用。底层Clob
对象将设置为null。
-