- 所有已实现的接口:
-
Serializable,Cloneable,Array
Array对象的序列化版本,它是Java编程语言中SQL ARRAY值的映射。
SerialArray类提供了一个构造函数,用于从Array对象创建一个SerialArray实例,以及用于获取基本类型和基本类型的SQL名称的方法,以及用于复制SerialArray对象的所有或部分元素的方法。
注意: 为了使这个类能够正确运行,必须在需要时提供到数据源的连接,以便将SQL Array对象实例化(将其所有元素传输到客户端服务器)。目前,不支持数据源中数据的逻辑指针,如定位器。
线程安全性
SerialArray不适合多个并发线程使用。如果一个SerialArray要被多个线程使用,则应通过适当的同步来控制对SerialArray的访问。- 自从:
- 1.5
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionSerialArray(Array array) 构造一个新的SerialArray对象,从给定的Array对象。SerialArray(Array array, Map<String, Class<?>> map) 从给定的Array对象构造一个新的SerialArray对象,当元素为SQL UDT时,使用给定的类型映射进行自定义映射。 -
Method Summary
Modifier and TypeMethodDescriptionclone()返回此SerialArray的克隆。boolean将此SerialArray与指定对象进行比较。voidfree()此方法释放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值的所有元素。inthashCode()返回此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对象的原始基础对象数组的引用。
-