模块  java.sql.rowset

Class SerialArray

  • 实现的所有接口
    SerializableCloneableArray

    public class SerialArray
    extends Object
    implements Array, Serializable, Cloneable
    Array对象的序列化版本,它是SQL ARRAY值的Java编程语言中的ARRAY

    SerialArray类提供了用于从Array对象创建SerialArray实例的Array函数,用于获取基类型的基本类型和SQL名称的方法,以及用于复制全部或部分SerialArray对象的方法。

    注意:为了使此类正常运行,必须提供与数据源的连接,以便在必要时实现SQL Array对象(将其所有元素带到客户端服务器)。 此时,当前不支持指向数据源中数据的逻辑指针,例如定位器。

    线程安全

    SerialArray不适合多个并发线程使用。 如果要由多个线程使用SerialArray,则应通过适当的同步来控制对SerialArray的访问。
    从以下版本开始:
    1.5
    另请参见:
    Serialized Form
    • 构造方法摘要

      构造方法  
      构造器 描述
      SerialArray​(Array array)
      构造一个新 SerialArray从给定对象 Array对象。
      SerialArray​(Array array, Map<String,​<?>> map)
      从给定的 Array对象构造一个新的 SerialArray对象,当元素是SQL UDT时,使用给定的类型映射来表示每个元素的自定义映射。
    • 方法摘要

      所有方法  实例方法 具体的方法 
      变量和类型 方法 描述
      Object clone()
      返回此 SerialArray
      boolean equals​(Object obj)
      将此SerialArray与指定的对象进行比较。
      void free()
      此方法释放 SerialArray对象并释放它所拥有的资源。
      Object getArray()
      返回一个新数组,该数组是此 SerialArray对象的副本。
      Object getArray​(long index, int count)
      返回一个新数组,该数组是此 SerialArray对象的切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
      Object getArray​(long index, int count, Map<String,​<?>> map)
      返回一个新数组,该数组是此 SerialArray对象的切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
      Object getArray​(Map<String,​<?>> map)
      返回一个新数组,该数组是此 SerialArray对象的副本,当元素为SQL UDT时,使用给定的类型映射表示每个元素的自定义映射。
      int getBaseType()
      检索此 SerialArray对象中元素的SQL类型。
      String getBaseTypeName()
      检索此 SerialArray对象中元素的DBMS特定类型名称。
      ResultSet getResultSet()
      检索 ResultSet对象,该对象包含此 SerialArray对象表示的 ARRAY值中的所有元素。
      ResultSet getResultSet​(long index, int count)
      检索 ResultSet对象,该对象包含从索引 索引开始并且包含最多 计数连续元素的子 ResultSet元素。
      ResultSet getResultSet​(long index, int count, Map<String,​<?>> map)
      检索包含从检索包含此 SerialArray对象中元素的子 ResultSet对象开始的子 ResultSet的元素的结果集,从索引 索引开始并包含最多 计数连续元素。
      ResultSet getResultSet​(Map<String,​<?>> map)
      检索 ResultSet对象,该对象包含此 SerialArray对象表示的SQL ARRAY值的所有元素。
      int hashCode()
      返回此SerialArray的哈希码。
    • 构造方法详细信息

      • SerialArray

        public SerialArray​(Array array,
                           Map<String,​<?>> map)
                    throws SerialException,
                           SQLException
        从给定的Array对象构造一个新的SerialArray对象,当元素是SQL UDT时,使用给定的类型映射来表示每个元素的自定义映射。

        如果数组元素是UDT并且给定类型映射具有该UDT的条目,则此方法执行自定义映射。 自定义映射是递归的,这意味着,例如,如果SQL结构类型的元素是SQL结构类型,其本身具有SQL结构类型的元素,则每个具有自定义映射的结构化类型将根据给定类型地图。

        SerialArray对象包含相同的元素, Array从其中它是建立,除非当基类型是SQL类型对象STRUCTARRAYBLOBCLOBDATALINKJAVA_OBJECT 在这种情况下,在新的每一个元素SerialArray目的是适当的串行化的形式,即, SerialStructSerialArraySerialBlobSerialClobSerialDatalink ,或SerialJavaObject对象。

        注:(1) Array从一个对象SerialArray创建对象,必须已经在SQL ARRAY它传递给构造之前在客户端上值的数据。 否则,新的SerialArray对象将不包含任何数据。

        注意:(2)如果Array包含java.sql.Types.JAVA_OBJECT类型,则调用SerialJavaObject构造函数进行检查以确保此对象可序列化。

        注意:(3)提供给此构造函数的Array对象不能为任何Array.getArray()方法返回null SerialArray无法序列化空数组值。

        参数
        array - 要序列化的 Array对象
        map - 一个java.util.Map对象,其中每个条目包含1) String对象,提供UDT(SQL结构类型或不同类型)的完全限定名称;以及2) 对象,用于定义UDT如何到达的SQLData实现被映射。 地图参数没有任何效果BlobClobDATALINK ,或JAVA_OBJECT类型。
        异常
        SerialException - 如果序列化 Array对象时发生错误
        SQLException - 如果发生数据库访问错误或者 数组映射值为 null
      • SerialArray

        public SerialArray​(Array array)
                    throws SerialException,
                           SQLException
        构造一个新SerialArray从给定对象Array对象。

        此构造函数不执行自定义映射。 如果数组的基类型是SQL结构类型并且需要自定义映射,则应使用构造函数SerialArray(Array array, Map map)

        SerialArray对象包含相同的元素, Array从其中它是建立,除非当基类型是SQL类型对象BLOBCLOBDATALINKJAVA_OBJECT 在这种情况下,在新的每一个元素SerialArray目的是适当的串行化的形式,即, SerialBlobSerialClobSerialDatalink ,或SerialJavaObject对象。

        注:(1) Array从一个对象SerialArray创建对象,必须已经在SQL ARRAY它传递给构造之前在客户端上值的数据。 否则,新的SerialArray对象将不包含任何数据。

        注意:(2)提供给此构造函数的Array对象无法为任何Array.getArray()方法返回null SerialArray无法序列化null数组值。

        参数
        array - 要序列化的 Array对象
        异常
        SerialException - 如果序列化 Array对象时发生错误
        SQLException - 如果发生数据库访问错误或 数组参数为 null
    • 方法详细信息

      • free

        public void free()
                  throws SQLException
        此方法释放SerialArray对象并释放它所拥有的资源。 调用free方法后,该对象无效。

        如果free被多次调用,在后续调用free被视为无操作。

        Specified by:
        free在接口 Array
        异常
        SQLException - 如果发生错误,则释放SerialArray的资源
        从以下版本开始:
        1.6
      • getArray

        public Object getArray()
                        throws SerialException
        返回一个新数组,该数组是此 SerialArray对象的副本。
        Specified by:
        getArray接口 Array
        结果
        这个 SerialArray对象的副本,作为Java编程语言中的 Object
        异常
        SerialException - 如果发生错误; 如果先前已在此对象上调用了free
      • getArray

        public Object getArray​(Map<String,​<?>> map)
                        throws SerialException
        返回一个新数组,该数组是此SerialArray对象的副本,当元素为SQL UDT时,使用给定的类型映射表示每个元素的自定义映射。

        如果数组元素是UDT并且给定类型映射具有该UDT的条目,则此方法执行自定义映射。 自定义映射是递归的,这意味着,例如,如果SQL结构类型的元素是SQL结构类型,其本身具有SQL结构类型的元素,则每个具有自定义映射的结构化类型将根据给定类型地图。

        Specified by:
        getArray接口 Array
        参数
        map - 一个 java.util.Map对象,其中每个条目包含1) String对象,提供UDT的完全限定名称; 2) 对象,用于定义UDT如何映射的 SQLData实现
        结果
        这个 SerialArray对象的副本,作为Java编程语言中的 Object
        异常
        SerialException - 如果发生错误; 如果先前已在此对象上调用了free
      • getArray

        public Object getArray​(long index,
                               int count)
                        throws SerialException
        返回一个新数组,该数组是此 SerialArray对象的切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
        Specified by:
        getArray接口 Array
        参数
        index - 要复制的第一个元素的SerialArray对象的索引; 第一个元素的索引是0
        count - 从给定索引开始要复制的连续元素数
        结果
        SerialArray对象中指定元素的副本,作为Java编程语言中的 Object
        异常
        SerialException - 如果发生错误; 如果先前已在此对象上调用了free
      • getArray

        public Object getArray​(long index,
                               int count,
                               Map<String,​<?>> map)
                        throws SerialException
        返回一个新数组,该数组是此SerialArray对象的切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。

        如果数组元素是UDT并且给定类型映射具有该UDT的条目,则此方法执行自定义映射。 自定义映射是递归的,这意味着,例如,如果SQL结构类型的元素是SQL结构类型,其本身具有SQL结构类型的元素,则每个具有自定义映射的结构化类型将根据给定类型地图。

        Specified by:
        getArray接口 Array
        参数
        index - 要复制的第一个元素的SerialArray对象的索引; 数组中第一个元素的索引是0
        count - 从给定索引开始要复制的连续元素数
        map -一个 java.util.Map对象,其中每个条目包含:1)一个 String对象给出UDT的完全合格的名称和2) 对象为 SQLData执行定义UDT是如何被映射
        结果
        SerialArray对象中指定元素的副本,作为Java编程语言中的 Object
        异常
        SerialException - 如果发生错误; 如果先前已在此对象上调用了free
      • getBaseType

        public int getBaseType()
                        throws SerialException
        检索此SerialArray对象中的元素的SQL类型。 返回的int是类java.sql.Types中的常量之一。
        Specified by:
        getBaseType在接口 Array
        结果
        java.sql.Types中的常量之一,表示此 SerialArray对象中元素的SQL类型
        异常
        SerialException - 如果发生错误; 如果先前已在此对象上调用了free
      • getBaseTypeName

        public String getBaseTypeName()
                               throws SerialException
        检索此 SerialArray对象中元素的DBMS特定类型名称。
        Specified by:
        getBaseTypeName接口 Array
        结果
        DBMS用于此 SerialArray对象的基本类型的SQL类型名称
        异常
        SerialException - 如果发生错误; 如果之前已在此对象free
      • getResultSet

        public ResultSet getResultSet​(long index,
                                      int count)
                               throws SerialException
        检索ResultSet对象,该对象包含从索引索引开始并且包含最多计数连续元素的子ResultSet元素。 如果映射包含基本类型的条目,则此方法使用连接的类型映射来映射数组的元素。 否则,使用标准映射。
        Specified by:
        getResultSet接口 Array
        参数
        index - 要复制的第一个元素的SerialArray对象的索引; 数组中第一个元素的索引是0
        count - 从给定索引开始要复制的连续元素数
        结果
        一个 ResultSet包含此所指定的元素对象 SerialArray对象,具有一个单独的行的每个元素
        异常
        SerialException - 如果调用原因设置为 UnsupportedOperationException
      • getResultSet

        public ResultSet getResultSet​(Map<String,​<?>> map)
                               throws SerialException
        检索ResultSet对象,该对象包含此SerialArray对象表示的SQL ARRAY值的所有元素。 这种方法使用了类型映射自定义指定映射除非数组的基本类型不匹配在地图上用户定义的类型(UDT),在这种情况下,它使用标准映射。 此版本的方法getResultSet使用给定的类型映射或标准映射; 它从不使用与连接关联的类型映射。
        Specified by:
        getResultSet接口 Array
        参数
        map - 一个 java.util.Map对象,其中每个条目包含1) String对象,提供UDT的完全限定名称; 2) 对象,用于定义UDT如何映射的 SQLData实现
        结果
        包含此 ResultSet对象中所有元素的 SerialArray对象,每个元素都有一个单独的行
        异常
        SerialException - 如果调用原因设置为 UnsupportedOperationException
      • getResultSet

        public ResultSet getResultSet()
                               throws SerialException
        检索ResultSet对象,该对象包含此SerialArray对象表示的ARRAY值中的所有元素。 如果合适,使用连接的类型映射映射数组的元素; 否则,使用标准映射。
        Specified by:
        getResultSet接口 Array
        结果
        包含此 ResultSet对象中所有元素的 SerialArray对象,每个元素都有一个单独的行
        异常
        SerialException - 如果调用原因设置为 UnsupportedOperationException
      • getResultSet

        public ResultSet getResultSet​(long index,
                                      int count,
                                      Map<String,​<?>> map)
                               throws SerialException
        检索包含子流的元素的结果集,该子流以从ResultSet对象中包含元素的子ResultSet检索一个SerialArray对象,从索引索引开始并包含最多计数连续元素。 这种方法使用了类型映射自定义指定映射除非数组的基本类型不匹配在地图上用户定义的类型(UDT),在这种情况下,它使用标准映射。 此版本的方法getResultSet使用给定的类型映射或标准映射; 它从不使用与连接关联的类型映射。
        Specified by:
        getResultSet接口 Array
        参数
        index - 要复制的第一个元素的SerialArray对象的索引; 数组中第一个元素的索引是0
        count - 从给定索引开始要复制的连续元素数
        map -一个 java.util.Map对象,其中每个条目包含:1)一个 String对象给出UDT的完全合格的名称和2) 对象为 SQLData执行定义UDT是如何被映射
        结果
        一个 ResultSet包含此所指定的元素对象 SerialArray对象,具有一个单独的行的每个元素
        异常
        SerialException - 如果调用原因设置为 UnsupportedOperationException
      • equals

        public boolean equals​(Object obj)
        将此SerialArray与指定的对象进行比较。 当且仅当参数不是null并且是一个SerialArray对象,其元素与此对象的元素相同时,结果为true
        重写:
        equalsObject
        参数
        obj -要比较的对象这个 SerialArray反对
        结果
        true如果给定的对象表示 SerialArray相当于此SerialArray, false否则
        另请参见:
        Object.hashCode()HashMap
      • clone

        public Object clone()
        返回此SerialArray 该副本将包含对基础对象数组的克隆的引用,而不是对此SerialArray对象的原始基础对象数组的SerialArray
        重写:
        cloneObject
        结果
        这个SerialArray的克隆
        另请参见:
        Cloneable