Module  java.sql.rowset

Class SerialArray

  • All Implemented Interfaces:
    SerializableCloneableArray


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

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

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

    线程安全

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

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

      所有方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      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,Class<?>> map)
      返回一个新数组,该数组是该 SerialArray对象的一个片段的副本,从给定索引处的元素开始,并包含给定数量的连续元素。
      Object getArray​(Map<String,Class<?>> 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 getResultSet​(long index, int count, Map<String,Class<?>> map)
      检索设置保持其开始于检索所述子阵列的元素的结果 ResultSet对象,其中包含在该元件的子阵列 SerialArray对象,开始于索引 指数和包含 count个连续元素。
      ResultSet getResultSet​(Map<String,Class<?>> map)
      检索 ResultSet对象,该对象包含由此 SerialArray对象表示的SQL ARRAY值的所有元素。
      int hashCode​()
      返回此SerialArray的哈希码。
    • 构造方法详细信息

      • SerialArray

        public SerialArray​(Array array,
                           Map<String,Class<?>> 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)所述的完全合格的名称Class对象为SQLData执行定义UDT是如何被映射。 地图参数没有任何效果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 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,Class<?>> map)
                        throws SerialException
        返回一个新数组,该数组是SerialArray对象的副本,当元素为SQL UDT时,使用给定的类型映射表示每个元素的自定义映射。

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

        Specified by:
        getArray在接口 Array
        参数
        map -一个 java.util.Map对象,其中每个条目包含:1)一个 String对象给出UDT的完全合格的名称和2) Class对象为 SQLData执行定义UDT是如何被映射
        结果
        这个 SerialArray对象的副本是一个 Object的Java编程语言
        异常
        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,Class<?>> 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) Class对象为 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对象,保存从索引索引开始的子阵列的元素,并包含最多计数连续元素。 如果地图包含基本类型的条目,则此方法使用连接的类型映射来映射数组的元素。 否则,使用标准映射。
        Specified by:
        getResultSet在接口 Array
        参数
        index - 要复制的第一个元素的这个SerialArray对象的索引; 数组中第一个元素的索引为0
        count - 从给定索引开始的要复制的连续元素的数量
        结果
        一个 ResultSet包含此所指定的元素对象 SerialArray对象,具有一个单独的行的每个元素
        异常
        SerialException - 如果调用原因设置为 UnsupportedOperationException
      • getResultSet

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

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

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