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