当前位置:首页>网络学院>数据库开发教程>DB2教程>文章内容

DB2 9与XML数据

[ 来源: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 引入了:

  •   一种 XML 数据类型,它允许 DB2 以一种经过解析的、分层的格式存储 XML 文档。
  •   新的索引技术,这种技术能提高跨 XML 文档和在 XML 文档内进行搜索的查询的运行时性能。
  •   基于业界标准的查询语言支持,包括 SQL 的新的 XML 扩展(通常被称作 SQL/XML)和 XQuery,后者是专为 XML 设计的。
  •   对基于用户提供模式验证 XML 数据的支持,它可以帮助管理员为 DB2 中的 XML 数据施加完整性约束。
  •   一些管理功能,包括对关键数据库实用程序的扩展。

  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 文件

  图 1. 存储在 CLIENTS 表中的示例 <a href='/html/xueyuan/chengxukaifa/XMLjiaocheng'><u>XML</u></a> 文件

  我将展示如何将该文件和其他信息插入到这个 DB2 表中。不过,首先我们还是来讨论一下如何配置 DB2 Developer Workbench。

  为了使用 DB2 Developer Workbench 编译和运行 DB2 XML 应用程序,需要按照标准的 Eclipse 过程来创建一个新的 Java 项目,并将适当的 DB2 库包括在项目的构建路径中。如果您之前没有使用过 Eclipse,那么下面是对如何完成这些任务作了一个简短的概述:

  1.   启动 DB2 Developer Workbench。
  2.   创建一个新项目。切换到 Java 透视图( Window → Open Perspective → Java),并选择 File → New → Project。根据向导的提示指定一个项目名。对于其他项,则保留默认设置。
  3.   将 DB2 库添加到项目的构建路径中。选中您的项目,单击右键,然后选择 Properties。选择 Java Build Path,并单击 Libraries 标签页。添加适当的 DB2 外部 .jar 文件,例如 db2jcc.jar、db2jcc_javax.jar 和 db2jcc_license_cu.jar。这些文件位于 DB2 安装目录的 \java 子目录中。
  4.   还可以选择为应用程序创建一个包。选中您的项目,单击右键,然后选择 New → Package。

  要查看详细信息,可以从 workbench 的主菜单中单击 Help。

  连接到数据

  要使用 DB2 XML 数据,需要建立到目标数据库的连接,对于其他 DB2 应用程序也是如此。清单 2 是一个用于建立 DB2 数据库连接的助手方法的代码片段。

  

插入 XML 数据

 

  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

返回顶部
共2页: 上一页 1 [2] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]