- java.lang.Object
-
- javax.sql.rowset.serial.SerialArray
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Array
public class SerialArray extends Object implements Array, Serializable, Cloneable
一个Array
对象的序列化版本,它是Java编程语言中的一个SQLARRAY
值的映射。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
对象表示的SQLARRAY
值的所有元素。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类型对象STRUCT
,ARRAY
,BLOB
,CLOB
,DATALINK
或JAVA_OBJECT
。 在这种情况下,在新的每一个元素SerialArray
目的是适当的串行化的形式,即,SerialStruct
,SerialArray
,SerialBlob
,SerialClob
,SerialDatalink
,或SerialJavaObject
对象。注:(1)
Array
从中对象SerialArray
创建对象,必须已经在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
对象为SQLData
执行定义UDT是如何被映射。 地图参数没有任何效果Blob
,Clob
,DATALINK
,或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类型对象BLOB
,CLOB
,DATALINK
或JAVA_OBJECT
。 在这种情况下,在新的每一个元素SerialArray
目的是适当的串行化的形式,即,SerialBlob
,SerialClob
,SerialDatalink
,或SerialJavaObject
对象。注:(1)
Array
从中对象SerialArray
创建对象,必须已经在SQLARRAY
它传递给构造之前在客户端上值的数据。 否则,新的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
对象,其元素与该对象的元素相同- 重写:
-
equals
在Object
- 参数
-
obj
- 对比这个SerialArray
的对象 - 结果
-
true
如果给定的对象表示一个SerialArray
相当于此SerialArray,false
否则 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此SerialArray的哈希码。 要的哈希码SerialArray
对象使用的元素的哈希码计算SerialArray
对象- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-