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