根据给定 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