[ 来源:http://www.it55.com | 作者: | 时间:2007-12-14 | 收藏 | 推荐 ] 【大 中 小】
DB2 9 提供了 Java 应用程序开发人员很容易上手的新的 XML 支持。这是因为 DB2 9 允许程序员使用熟悉的 JDBC 语句和业界标准的查询语言来查询、插入、更新和删除 XML 数据以及传统的 SQL 数据。
在本文中,我将展示关于如何使用 Java 构建采用 DB2 “pureXML” 技术的应用程序的详细例子,pureXML 技术允许以 XML 固有的分层格式存储和查询 XML。
DB2 的 XML 支持
DB2 9 为管理、存储、查询和索引 XML 数据提供了一些新的机制。特别地,DB2 引入了:
Java 程序员特别感兴趣的一个新特性是 DB2 新的 Developer Workbench,它是建立在开放源代码 Eclipse 3.1 平台之上的。(请参阅 Developer Workbench 文章。)这个集成开发环境(IDE)可以帮助程序员快速开发、测试和调试他们的数据库应用程序。
对于本文中的例子,我将一直使用 DB2 Developer Workbench。当然,Java 程序员可以使用任何受支持的 IDE 或 Java Development Kit (JDK) 来创建 DB2 XML 应用程序。
设置环境
本文中的代码示例引用了一个 CLIENTS 表,该表用于跟踪关于客户的信息。清单 1 展示了这个表的定义。

注意,CLIENTS 包含三个基于传统 SQL 数据类型的列,另外还有一个基于新的名为 “XML” 的 SQL 数据类型的列。后面那个列(即 contactinfo)存储 XML 文档,这些 XML 文档包括诸如客户的邮件地址、电话号码、电子邮件地址等之类的信息。图 1 展示了一个这样的 XML 文档。
图 1. 存储在 CLIENTS 表中的示例 XML 文件

我将展示如何将该文件和其他信息插入到这个 DB2 表中。不过,首先我们还是来讨论一下如何配置 DB2 Developer Workbench。
为了使用 DB2 Developer Workbench 编译和运行 DB2 XML 应用程序,需要按照标准的 Eclipse 过程来创建一个新的 Java 项目,并将适当的 DB2 库包括在项目的构建路径中。如果您之前没有使用过 Eclipse,那么下面是对如何完成这些任务作了一个简短的概述:
要查看详细信息,可以从 workbench 的主菜单中单击 Help。
连接到数据库
要使用 DB2 XML 数据,需要建立到目标数据库的连接,对于其他 DB2 应用程序也是如此。清单 2 是一个用于建立 DB2 数据库连接的助手方法的代码片段。

DB2 程序员使用熟悉的 SQL INSERT 语句来将新的 XML 数据写到包含 XML 列的表中。DB2 可以存储最大为 2 GB 的任何格式良好的 XML 文档。
通常,Java 程序员需要将包含在文件中的 XML 数据插入到 DB2 表中,但是,他们也可以插入来自字符串、二进制数据(包括大型对象)和 SQL 子选择语句中的 XML 数据。
清单 3 展示了将一行插入到 CLIENTS 表中的方法。在这个例子中,contactinfo 列的 XML 文档是从一个文件中读取的。

我们来逐步考察这段代码。insertFile() 方法定义了一些变量,这些变量将在 INSERT 语句中用到。前三个变量对应于 CLIENTS 表中的 ID、name 和 status 这三列。第四个变量是要插入到 contactinfo 列的 XML 文件的文件名。(为简单起见,在这个例子中这些值是硬编码的。)
建立了数据库连接之后,该方法创建一个 sqlstmt 字符串,其中包含用于输入列值的四个参数占位符。然后像通常一样准备 INSERT 语句,并设置它的四个参数占位符。为了设置用于 XML 列的占位符,该方法打开一个 FileInputStream。它还计算被引用的 XML 文件的长度,并使用该信息作为 setBinaryStream() 方法的输入。最后,该方法执行 INSERT 语句,将 XML 和传统 SQL 数据插入到这个表中的一行中。
DB2 还允许用户注册 XML 模式,并且还允许用户在插入之前用这些模式来验证输入文档,不过这个特性在上述代码中没有体现出来。XML 模式是万维网联盟(W3C)业界标准的一部分;XML 模式使用户可以指定符合规范的 XML 文档应有的结构,例如可接受的 XML 元素的顺序和数据类型,特定 XML 名称空间的使用,等等。
(编辑:IT资讯之家 www.it55.com)