- 所有已实现的接口:
Serializable
,Cloneable
,Array
Array
对象的序列化版本,它是 SQL ARRAY
值在 Java 编程语言中的映射。
SerialArray
类提供用于从 Array
对象创建 SerialArray
实例的构造函数、用于获取基类型和基类型的 SQL 名称的方法,以及用于复制全部或部分 SerialArray
对象的方法。
注意:为了使该类正常运行,到数据源的连接必须可用,以便在必要时具体化 SQL Array
对象(将其所有元素带到客户端服务)。目前,目前不支持指向数据源中数据的逻辑指针,例如定位器。
线程安全
多个并发线程使用 SerialArray 是不安全的。如果一个 SerialArray 将被多个线程使用,那么对 SerialArray 的访问应该通过适当的同步来控制。- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法构造方法描述SerialArray
(Array array) 从给定的Array
对象构造一个新的SerialArray
对象。SerialArray
(Array array, Map<String, Class<?>> map) 从给定的Array
对象构造一个新的SerialArray
对象,当元素是 SQL UDT 时,将给定的类型映射用于每个元素的自定义映射。 -
方法总结
修饰符和类型方法描述clone()
返回此SerialArray
的克隆。boolean
将此 SerialArray 与指定对象进行比较。void
free()
此方法释放SerialArray
对象并释放它持有的资源。getArray()
返回一个新数组,该数组是此SerialArray
对象的副本。getArray
(long index, int count) 返回一个新数组,它是此SerialArray
对象的一个切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。返回一个新数组,它是此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连续的元素。getResultSet
(Map<String, Class<?>> map) 检索一个ResultSet
对象,该对象包含此SerialArray
对象表示的 SQLARRAY
值的所有元素。int
hashCode()
返回此 SerialArray 的哈希码。
-
构造方法详细信息
-
SerialArray
从给定的Array
对象构造一个新的SerialArray
对象,当元素是 SQL UDT 时,将给定的类型映射用于每个元素的自定义映射。如果数组元素是 UDT 并且给定的类型映射具有该 UDT 的条目,则此方法执行自定义映射。自定义映射是递归的,这意味着,例如,如果 SQL 结构化类型的元素是 SQL 结构化类型,而该元素本身具有 SQL 结构化类型的元素,则具有自定义映射的每个结构化类型都将根据给定的类型映射。
新的
SerialArray
对象包含与构建它的Array
对象相同的元素,除非基类型是 SQL 类型STRUCT
、ARRAY
、BLOB
、CLOB
、DATALINK
或JAVA_OBJECT
。在这种情况下,新SerialArray
对象中的每个元素都是适当的序列化形式,即SerialStruct
、SerialArray
、SerialBlob
、SerialClob
、SerialDatalink
或SerialJavaObject
对象。注意:(1) 创建
SerialArray
对象的Array
对象必须在传递给构造函数之前在客户端实现SQLARRAY
值的数据。否则,新的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
对象,用于定义 UDT 如何执行的SQLData
实现被映射。这map参数对Blob
、Clob
、DATALINK
或JAVA_OBJECT
类型没有任何影响。- 抛出:
SerialException
- 如果序列化Array
对象时发生错误SQLException
- 如果发生数据库访问错误或array或者map值是null
-
SerialArray
从给定的Array
对象构造一个新的SerialArray
对象。此构造函数不执行自定义映射。如果数组的基类型是 SQL 结构类型并且需要自定义映射,则应使用构造函数
SerialArray(Array array, Map map)
。新的
SerialArray
对象包含与构建它的Array
对象相同的元素,除非基本类型是 SQL 类型BLOB
、CLOB
、DATALINK
或JAVA_OBJECT
。在这种情况下,新SerialArray
对象中的每个元素都是适当的序列化形式,即SerialBlob
、SerialClob
、SerialDatalink
或SerialJavaObject
对象。注意:(1) 创建
SerialArray
对象的Array
对象必须在传递给构造函数之前在客户端实现SQLARRAY
值的数据。否则,新的SerialArray
对象将不包含任何数据。注意:(2) 提供给此构造函数的
Array
对象不能为任何Array.getArray()
方法返回null
。SerialArray
无法序列化null
数组值。- 参数:
array
- 要序列化的Array
对象- 抛出:
SerialException
- 如果序列化Array
对象时发生错误SQLException
- 如果发生数据库访问错误或array参数是null
。
-
-
方法详情
-
free
此方法释放SerialArray
对象并释放它持有的资源。一旦调用了free
方法,该对象就失效了。如果多次调用
free
,则对free
的后续调用将被视为空操作。- 指定者:
free
在接口Array
中- 抛出:
SQLException
- 如果释放 SerialArray 的资源时发生错误- 自从:
- 1.6
-
getArray
返回一个新数组,该数组是此SerialArray
对象的副本。- 指定者:
getArray
在接口Array
中- 返回:
-
此
SerialArray
对象的副本作为 Java 编程语言中的Object
- 抛出:
SerialException
- 如果发生错误;如果free
之前被调用过这个对象
-
getArray
返回一个新数组,它是此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
返回一个新数组,它是此SerialArray
对象的一个切片的副本,从给定索引处的元素开始并包含给定数量的连续元素。- 指定者:
getArray
在接口Array
中- 参数:
index
- 要复制的第一个元素在这个SerialArray
对象中的索引;第一个元素的索引是0
count
- 要复制的连续元素数,从给定索引开始- 返回:
-
此
SerialArray
对象中指定元素的副本作为 Java 编程语言中的Object
- 抛出:
SerialException
- 如果发生错误;如果free
之前被调用过这个对象
-
getArray
返回一个新数组,它是此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
检索此SerialArray
对象中元素的 SQL 类型。返回的int
是类java.sql.Types
中的常量之一。- 指定者:
getBaseType
在接口Array
中- 返回:
java.sql.Types
中的常量之一,指示此SerialArray
对象中元素的 SQL 类型- 抛出:
SerialException
- 如果发生错误;如果free
之前被调用过这个对象
-
getBaseTypeName
检索此SerialArray
对象中元素的 DBMS 特定类型名称。- 指定者:
getBaseTypeName
在接口Array
中- 返回:
-
DBMS 对此
SerialArray
对象的基本类型使用的 SQL 类型名称 - 抛出:
SerialException
- 如果发生错误;如果free
之前被调用过这个对象
-
getResultSet
检索一个ResultSet
对象,该对象包含从索引开始的子数组的元素指数最多包含count连续的元素。如果map包含基本类型的条目,则此方法使用连接的类型映射来映射数组的元素。否则,使用标准映射。- 指定者:
getResultSet
在接口Array
中- 参数:
index
- 要复制的第一个元素在这个SerialArray
对象中的索引;数组中第一个元素的索引是0
count
- 要复制的连续元素数,从给定索引开始- 返回:
-
包含此
SerialArray
对象中指定元素的ResultSet
对象,每个元素单独一行 - 抛出:
SerialException
- 如果调用的原因设置为UnsupportedOperationException
-
getResultSet
检索一个ResultSet
对象,该对象包含此SerialArray
对象表示的 SQLARRAY
值的所有元素。此方法使用指定的map进行类型映射自定义,除非数组的基本类型与中的用户定义类型 (UDT) 不匹配map,在这种情况下它使用标准映射。此版本的方法getResultSet
使用给定的类型映射或标准映射;它从不使用与连接关联的类型映射。- 指定者:
getResultSet
在接口Array
中- 参数:
map
- 一个java.util.Map
对象,其中每个条目都包含 1) 一个String
对象,它给出了 UDT 的完全限定名称和 2)Class
对象用于定义 UDT 映射方式的SQLData
实现- 返回:
-
包含此
SerialArray
对象中所有元素的ResultSet
对象,每个元素单独一行 - 抛出:
SerialException
- 如果调用的原因设置为UnsupportedOperationException
-
getResultSet
检索一个ResultSet
对象,该对象包含此SerialArray
对象表示的ARRAY
值中的所有元素。如果合适,使用连接的类型映射映射数组的元素;否则,使用标准映射。- 指定者:
getResultSet
在接口Array
中- 返回:
-
包含此
SerialArray
对象中所有元素的ResultSet
对象,每个元素单独一行 - 抛出:
SerialException
- 如果调用的原因设置为UnsupportedOperationException
-
getResultSet
public ResultSet getResultSet(long index, int count, Map <String , Class <?>> map) throws SerialExceptionRetrieves 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
将此 SerialArray 与指定对象进行比较。结果是true
当且仅当参数不是null
并且是一个SerialArray
对象,其元素与该对象的元素相同 -
hashCode
public int hashCode()返回此 SerialArray 的哈希码。SerialArray
对象的哈希码是使用SerialArray
对象的元素的哈希码计算的 -
clone
返回此SerialArray
的克隆。该副本将包含对底层对象数组的克隆的引用,而不是对此SerialArray
对象的原始底层对象数组的引用。
-