在数据库服务器中,任何实现 java.sql.SQLData 接口并可以被 Java™ Virtual Machine 访问
的 Java 类都可以存储为不透明类型。UDTManager和 UDRManager 类与它们支持
的 UDTMetaData 和 UDRMetaData 类一起使用,将此功能扩展到您的客户端应用程序:您
的 Java 客户端应用程序可以使用这些类创建不透明类型和用户定义的例程,
并将它们的类
定义传送到数据库服务器。客户端不需要访问到数据库服务器来使用此功能。
重要: 此功能与服务器支持密切配合,可以创建和使用 Java 不透明类型和用户定义例程。数
据库服务器版本中存在的 Java 不透明类型和用户定义例程的任何限制同样适用于您在客户端
应用程序中创建 Java 不透明类型和例程。
当使用 UDTManager 和 UDTMetaData 类时,GBase 8s JDBC Driver 为您的应用程序执行
以下操作:
1.
获取您指定的 JAR 文件
2.
将此 JAR 文件从客户端本地区域传输到服务器本地区域
使用 UDTManager.setJarFileTmpPath() 方法定义服务器本地区域。在 UNIX™ 系统
上默认为 /tmp,在 Windows™ 系统上默认为C:\temp 。
3.
在服务器中安装此 JAR 文件
4.
使用 CREATE OPAQUE TYPE SQL 语句在数据库中注册不透明数据类型,
从 UDTMetaData 类获取输入
5.
注册支持函数并使用 CREATE 函数和 CREATE CAST SQL 语句强制转换为不
透明类型
可以使用 UDTMetaData 类中的 setSupportUDR() 和 setXXXCast() 方法定义支持的
函数。
如果您未为不透明类型提供输入和输出函数,则驱动程序注册缺省的函数(有关此
功能的任何限制,请参阅发行说明)。
6.
注册您指定的任何其他不支持的例程或强制转换(如果有的话),从应用程序中
的 UDTMetaData.setUDR() 和UDTMetaData.setXXXCast() 方法调用中获取输入
7.
在 SQL OPAQUE 类型和 Java 对象中创建映射(使用 sqlj.setUDTExtName() 方
法)
当使用 UDRManager 和 UDRMetaData 类时,GBase 8s JDBC Driver 执行以下操作:
1.
获取您指定的 JAR 文件
2.
将此 JAR 文件从客户端本地区域传输到服务器本地区域
3.
在服务器中安装此 JAR 文件
4. 使用 CREATE FUNCTION TYPE SQL 语句在数据库中注册不透明数据类型,
在您
的应用程序获取 UDRMetaData.setUDR() 方法调用的输入
GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 172
-
UDT 和 UDR Manager 工具中的方法执行以下主要功能:
使用服务器提供的缺省输入和输出方法,在 Java 类不存在的情况下,在 Java 中
创建不透明类型
将客户端上现有的 Java 类转换为数据库服务器中不透明类型和 UDR
将 Java 静态方法转换为 UDR