JDBC 3.0 规范引用一称为 结构化类型或 struct 的 SQL 类型,
其等同于 GBase 8s 命名的行。
该规范定义在 Java™ 客户机与关系型数据库之间交换结构化类型数据的方法:
•
使用 SQLData 接口。
每个命名的行类型一个单个 Java 类,
实现 SQLData 接口。
对于命名的行中每一元素,该类有一个成员。
•
使用 Struct 接口。此接口为命名的行中每一元素实例化必要的 Java 对象,并构
建一个 java.util.Object Java 对象的数组。
对于访存了的命名的行,
GBase 8s JDBC Driver 是实例化一个 Java 对象,
还是一个 Struct 对
象,依赖于是否有定制的类型映射条目,如下所示:
•
对于 Connection.getTypeMap() 映射中的命名的行,如果有一个条目,或如果您使
用 getObject() 方法提供了类型映射,则实例化单个 Java 对象。
•
对于 Connection.getTypeMap() 映射中命名的行,如果没有条目,且如果您未使
用 getObject() 方法提供类型映射,则实例化一个Struct 对象。
GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 122 -
始终将未命名的行访存至 Struct 对象内。
重要: 不论使用 SQLData 还是 Struct 接口,如果命名的行或未命名的行包含一 opaque 数据
类型列,则必须有一个它的类型映射条目。如果正在使用 Struct 接口来访问包含 opaque 数据
类型列的行,则您需要该 opaque 数据类型列的定制类型映射,但不是对于整个行。
要获取关于定制类型映射的更多信息,请参阅 映射数据类型。