根据给定 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
对象在被传递给构造方法之前,必须已经在客户端实现了 sql array
值的数据。否则,新 serialarray
对象将不包含任何数据。
注:(2) 如果 array
包含 java.sql.types.java_object
类型,则调用 serialjavaobject
构造方法,其中会执行检查以确保此对象可序列化。
注:(3) 提供给此构造方法的 array
对象对于任何 array.getarray()
方法都不能返回 null
。serialarray
无法序列化 null 数组值。
- 参数:
array
- 要序列化的 array
对象map
- java.util.map
对象,其中每个条目都包含:1) 给出 udt(sql 结构类型或 distinct 类型)完全限定名的 string
对象 2) 用于定义 udt 映射方式的 sqldata
实现的 class
对象。map 参数对 blob
、clob
、datalink
或 java_object
类型没有任何影响。
- 抛出:
serialexception
- 如果在序列化 array
对象时出错
sqlexception
- 如果发生数据库访问错误或者 array 或 map 值为 null