类 SerialArray

java.lang.Object
javax.sql.rowset.serial.SerialArray
所有已实现的接口:
Serializable , Cloneable , Array

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

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

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

线程安全

多个并发线程使用 SerialArray 是不安全的。如果一个 SerialArray 将被多个线程使用,那么对 SerialArray 的访问应该通过适当的同步来控制。
自从:
1.5
参见:
  • 构造方法总结

    构造方法
    构造方法
    描述
    从给定的 Array 对象构造一个新的 SerialArray 对象。
    SerialArray(Array array, Map<String,Class<?>> map)
    从给定的 Array 对象构造一个新的 SerialArray 对象,当元素是 SQL UDT 时,将给定的类型映射用于每个元素的自定义映射。
  • 方法总结

    修饰符和类型
    方法
    描述
    返回此 SerialArray 的克隆。
    boolean
    equals(Object obj)
    将此 SerialArray 与指定对象进行比较。
    void
    free()
    此方法释放 SerialArray 对象并释放它持有的资源。
    返回一个新数组,该数组是此 SerialArray 对象的副本。
    getArray(long index, int count)
    返回一个新数组,它是此 SerialArray 对象的一个切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
    getArray(long index, int count, Map<String,Class<?>> map)
    返回一个新数组,它是此 SerialArray 对象的一个切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
    返回一个新数组,它是此 SerialArray 对象的副本,当元素是 SQL UDT 时,使用给定的类型映射为每个元素的自定义映射。
    int
    检索此 SerialArray 对象中元素的 SQL 类型。
    检索此 SerialArray 对象中元素的 DBMS 特定类型名称。
    检索一个 ResultSet 对象,该对象包含此 SerialArray 对象表示的 ARRAY 值中的所有元素。
    getResultSet(long index, int count)
    检索一个 ResultSet 对象,该对象包含从索引开始的子数组的元素指数最多包含count连续的元素。
    getResultSet(long index, int count, Map<String,Class<?>> map)
    Retrieves a result set holding the elements of the subarray that starts at 检索包含此 SerialArray 对象中元素子数组的 ResultSet 对象,从索引开始指数最多包含count连续的元素。
    检索一个 ResultSet 对象,该对象包含此 SerialArray 对象表示的 SQL ARRAY 值的所有元素。
    int
    返回此 SerialArray 的哈希码。

    在类 java.lang.Object 中声明的方法

    finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • 构造方法详细信息

    • SerialArray

      public SerialArray(Array  array, Map <String ,Class <?>> map) throws SerialException , SQL异常
      从给定的 Array 对象构造一个新的 SerialArray 对象,当元素是 SQL UDT 时,将给定的类型映射用于每个元素的自定义映射。

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

      新的 SerialArray 对象包含与构建它的 Array 对象相同的元素,除非基类型是 SQL 类型 STRUCTARRAYBLOBCLOBDATALINKJAVA_OBJECT。在这种情况下,新 SerialArray 对象中的每个元素都是适当的序列化形式,即 SerialStructSerialArraySerialBlobSerialClobSerialDatalinkSerialJavaObject 对象。

      注意:(1) 创建SerialArray 对象的Array 对象必须在传递给构造函数之前在客户端实现SQL ARRAY 值的数据。否则,新的 SerialArray 对象将不包含任何数据。

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

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

      参数:
      array - 要序列化的 Array 对象
      map - 一个 java.util.Map 对象,其中每个条目都包含 1) 一个 String 对象,它给出了 UDT(SQL 结构化类型或不同类型)的完全限定名称和 2) Class 对象,用于定义 UDT 如何执行的 SQLData 实现被映射。这map参数对 BlobClobDATALINKJAVA_OBJECT 类型没有任何影响。
      抛出:
      SerialException - 如果序列化 Array 对象时发生错误
      SQLException - 如果发生数据库访问错误或array或者map值是null
    • SerialArray

      public SerialArray(Array  array) throws SerialException , SQL异常
      从给定的 Array 对象构造一个新的 SerialArray 对象。

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

      新的 SerialArray 对象包含与构建它的 Array 对象相同的元素,除非基本类型是 SQL 类型 BLOBCLOBDATALINKJAVA_OBJECT。在这种情况下,新 SerialArray 对象中的每个元素都是适当的序列化形式,即 SerialBlobSerialClobSerialDatalinkSerialJavaObject 对象。

      注意:(1) 创建SerialArray 对象的Array 对象必须在传递给构造函数之前在客户端实现SQL ARRAY 值的数据。否则,新的 SerialArray 对象将不包含任何数据。

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

      参数:
      array - 要序列化的 Array 对象
      抛出:
      SerialException - 如果序列化 Array 对象时发生错误
      SQLException - 如果发生数据库访问错误或array参数是 null
  • 方法详情

    • free

      public void free() throws SQL异常
      此方法释放 SerialArray 对象并释放它持有的资源。一旦调用了free方法,该对象就失效了。

      如果多次调用 free,则对 free 的后续调用将被视为空操作。

      指定者:
      free 在接口 Array
      抛出:
      SQLException - 如果释放 SerialArray 的资源时发生错误
      自从:
      1.6
    • getArray

      public Object  getArray() throws SerialException
      返回一个新数组,该数组是此 SerialArray 对象的副本。
      指定者:
      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 结构化类型的元素,则具有自定义映射的每个结构化类型都将根据给定的类型映射。

      指定者:
      getArray 在接口 Array
      参数:
      map - 一个 java.util.Map 对象,其中每个条目都包含 1) 一个 String 对象,它给出了 UDT 的完全限定名称和 2) Class 对象用于定义 UDT 映射方式的 SQLData 实现
      返回:
      SerialArray 对象的副本作为 Java 编程语言中的 Object
      抛出:
      SerialException - 如果发生错误;如果 free 之前被调用过这个对象
    • getArray

      public Object  getArray(long index, int count) throws SerialException
      返回一个新数组,它是此 SerialArray 对象的一个切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。
      指定者:
      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 结构化类型的元素,则具有自定义映射的每个结构化类型都将根据给定的类型映射。

      指定者:
      getArray 在接口 Array
      参数:
      index - 要复制的第一个元素在这个 SerialArray 对象中的索引;数组中第一个元素的索引是0
      count - 要复制的连续元素数,从给定索引开始
      map - 一个 java.util.Map 对象,其中每个条目都包含 1) 一个 String 对象,它给出了 UDT 的完全限定名称和 2) Class 对象用于定义 UDT 映射方式的 SQLData 实现
      返回:
      SerialArray 对象中指定元素的副本作为 Java 编程语言中的 Object
      抛出:
      SerialException - 如果发生错误;如果 free 之前被调用过这个对象
    • getBaseType

      public int getBaseType() throws SerialException
      检索此 SerialArray 对象中元素的 SQL 类型。返回的 int 是类 java.sql.Types 中的常量之一。
      指定者:
      getBaseType 在接口 Array
      返回:
      java.sql.Types 中的常量之一,指示此 SerialArray 对象中元素的 SQL 类型
      抛出:
      SerialException - 如果发生错误;如果 free 之前被调用过这个对象
    • getBaseTypeName

      public String  getBaseTypeName() throws SerialException
      检索此 SerialArray 对象中元素的 DBMS 特定类型名称。
      指定者:
      getBaseTypeName 在接口 Array
      返回:
      DBMS 对此 SerialArray 对象的基本类型使用的 SQL 类型名称
      抛出:
      SerialException - 如果发生错误;如果 free 之前被调用过这个对象
    • getResultSet

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

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

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

      public ResultSet  getResultSet(long index, int count, Map <String ,Class <?>> map) throws SerialException
      Retrieves a result set holding the elements of the subarray that starts at 检索包含此 SerialArray 对象中元素子数组的 ResultSet 对象,从索引开始指数最多包含count连续的元素。此方法使用指定的map进行类型映射自定义,除非数组的基本类型与中的用户定义类型 (UDT) 不匹配map,在这种情况下它使用标准映射。此版本的方法 getResultSet 使用给定的类型映射或标准映射;它从不使用与连接关联的类型映射。
      指定者:
      getResultSet 在接口 Array
      参数:
      index - 要复制的第一个元素在这个 SerialArray 对象中的索引;数组中第一个元素的索引是0
      count - 要复制的连续元素数,从给定索引开始
      map - 一个 java.util.Map 对象,其中每个条目都包含 1) 一个 String 对象,它给出了 UDT 的完全限定名称和 2) Class 对象用于定义 UDT 映射方式的 SQLData 实现
      返回:
      包含此 SerialArray 对象中指定元素的 ResultSet 对象,每个元素单独一行
      抛出:
      SerialException - 如果调用的原因设置为 UnsupportedOperationException
    • equals

      public boolean equals(Object  obj)
      将此 SerialArray 与指定对象进行比较。结果是 true 当且仅当参数不是 null 并且是一个 SerialArray 对象,其元素与该对象的元素相同
      重写:
      equals 在类 Object
      参数:
      obj - 将此 SerialArray 与之进行比较的对象
      返回:
      true 如果给定对象代表一个 SerialArray 等同于此 SerialArray,false 否则
      参见:
    • hashCode

      public int hashCode()
      返回此 SerialArray 的哈希码。 SerialArray 对象的哈希码是使用 SerialArray 对象的元素的哈希码计算的
      重写:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      参见:
    • clone

      public Object  clone()
      返回此 SerialArray 的克隆。该副本将包含对底层对象数组的克隆的引用,而不是对此 SerialArray 对象的原始底层对象数组的引用。
      重写:
      clone 在类 Object
      返回:
      此 SerialArray 的克隆
      参见: