Module  java.sql.rowset

Class SerialClob

  • All Implemented Interfaces:
    SerializableCloneableClob


    public class SerialClob
    extends Object
    implements Clob, Serializable, Cloneable
    一个序列化的映射在Java编程语言中的一个SQL CLOB值。

    SerialClob类提供了一个从Clob对象创建实例的Clob函数。 需要注意的是Clob对象应该已经将SQL CLOB值的数据置于客户端之前SerialClob对象从它建造。 SQL CLOB值的数据可以作为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对象表示的位置 posCLOB值的流。
      int setString​(long pos, String str)
      将给定的Java String写入 SerialClob对象表示的 CLOB值,位置 pos
      int setString​(long pos, String str, int offset, int length)
      写入 len的字符 str ,起始于字符 offsetCLOB值,这 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对象应该已经将SQL CLOB的数据从数据库提交给客户端。 否则,新的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
        将给定的Java String写入 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 ,起始于字符 offsetCLOB值,这 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
        重写:
        equalsObject
        参数
        obj - 对比这个 SerialClob的对象
        结果
        true如果给定的对象代表一个 SerialClob等效于此SerialClob, false否则
        另请参见:
        Object.hashCode()HashMap
      • clone

        public Object clone​()
        返回此SerialClob的克隆。 该副本将包含对内部字符数组的克隆的引用,而不是对该SerialClob对象的原始内部字符数组的SerialClob 底层的Clob对象将被设置为null。
        重写:
        cloneObject
        结果
        该SerialClob的克隆
        另请参见:
        Cloneable