到目前为止,也许您已经读过很多关于 DB2 9 for Linux, Unix, and Windows(以前的代号为 “Viper”)中的混合型引擎的内容,这种混合型引擎便于 XML 数据和关系数据的集成。也许您还阅读过关于能加快应用程序开发的 DB2 9 特性的内容。在本文中,我将介绍对于开发 Java 应用程序而言比较重要的一些新特性。
Java 5.x 支持
DB2 9 现在在很多平台上支持 Java 5.x。Java 5.x 引入了很多新的、增强的特性,包括对 Unicode 增补字符的支持、增强的 FOR 循环、泛型、类型安全的枚举类型、可变参数等等。在开发用于 DB2 的 Java 应用程序和 Java 例程时,可以利用这些特性。
DB2 Driver for JDBC and SQLJ
在 DB2 9 中,DB2 Driver for JDBC and SQLJ 现在是 Java 应用程序的默认驱动程序。DB2 JDBC Type 2 驱动程序不被推荐,而 DB2 JDBC Type 3 驱动程序已被废弃。如果您想使用 DB2 Driver for JDBC and SQLJ 作为 Java 例程运行时支持的默认驱动程序,那么可以将 DB2 注册表变量设置为 DB2_USE_DB2JCCT2_JROUTINE=ON。(默认情况下这个注册表变量没有设置。)
随 DB2 9 一起发布的增强的 DB2 Driver for JDBC and SQLJ 遵从 JDBC 3.0 规范。这种驱动程序包括对新的 XML 列数据类型、XQuery、新的更新和检索 XML 列中数据的方法以及带 XML 参数的存储过程调用的支持。另外还包括用于注册 XML 模式和建立受信任连接的新的 DB2 方法。
DB2 9 支持在 JDBC 和 SQLJ 应用程序和例程中使用 XML。IBM Universal JDBC Driver 通过一个 com.ibm.db2.jcc.DB2Xml 专用接口,支持在查询和 Java 应用程序和例程的输入输出参数中使用 XML 数据。
目前,JDBC 标准中还不包括本机 XML 类。因此,在 DB2 9 中,XML 列被映射为 Java 字符串、字节数组、流和新的 com.ibm.db2.DB2Xml 类。要插入和更新 XML 列,可以使用表 1 中列出的任意方法名和相应的输入数据类型。
可以使用字符串、字节数组、流或专用的 com.ibm.db2.jcc.DB2Xml 类型检索 XML 列中的 XML 数据。可以使用 ResultSet 或 DB2Xml 方法检索数据。ResultSet 方法与 DB2Xml 方法的不同之处在于,有些 DB2Xml 方法为输出数据增加了编码说明。具体地说,DB2Xml.getDB2XmlXXX 方法为输出数据增加了 XML 声明,其中包括编码说明,而 DB2Xml.getDB2XXX 方法则没有。表 2 显示了方法名称、相应的输出数据类型和编码说明。
让我们看看在 DB2 SAMPLE 数据库上运行的一些例子,这个 SAMPLE 数据库应该以 Unicode 创建,以便这些例子可以存储 XML 数据。运行这些例子所需的所有脚本和其他文件,已经在安装 DB2 9 的时候一起安装在操作系统上。若要将已有的 SAMPLE 数据库转换成 Unicode,以便可以使用当前的关系数据和新的 XML 数据例子,请遵循 publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/t0024033.htm 中的说明。