JDBC 3.0 规范仅描述一个方法,
来交换 Java™ 客户机与关系型数据库之间的集合数据:
数
组。
由于数组接口不包括构造函数,因此,GBase 8s JDBC Driver 包括一个扩展,允许
在 PreparedStatement.setObject() 和ResultSet.getObject() 方法中使用 java.util.Collection 对象。
如果您更愿意使用 Array 对象,则请使
用 PreparedStatement.setArray() 和 ResultSet.getArray() 方法。
Collection 对象更易于使用,
但
Array 对象符合 JDBC 3.0 标准。
GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 117 -
在缺省情况下,
在访存期间,
驱动程序将 LIST 列映射至 java.util.ArrayList 对象,
而将 SET
和 MULTISET 列映射至 java.util.HashSet 对象。您可覆盖这些缺省值,但您使用的类必须
实现 java.util.Collection 接口。
要覆盖此缺省的映射,
可使用 java.util.Collection 接口中的其他类,
诸如 TreeSet 类。
还可创
建实现 java.util.Collection 接口的自己的类。在任一情况下,您都必须使
用 Connection.setTypeMap() 方法来提供定制的类型映射。
在 INSERT 操作期间,必须将作为 java.util.Set 接口实例的任何 java.util.Collection 对象映
射至 GBase 8s MULTISET 数据类型。将java.util.List 接口的实例映射至 GBase 8s LIST 数
据类型。通过创建定制的类型映射,可覆盖这些缺省值。
要获取关于定制的类型映射的信息,请参阅 映射数据类型。
重要: set 是无序的定义。如果使用 HashSet 对象来选择集合数据,则 HashSet 对象中元素的顺
序可能与插入该 set 时指定的顺序不同。例如,如果数据库服务器上的数据为 set {1, 2, 3},则
检索至 HashSet 对象内的数据可能为 {3, 2, 1},或任何其他顺序。
下列部分中所有示例的完整版本位于您安装驱动程序处的 complex-types 目录中。要获取更
多信息,请参阅 示例代码文件。