快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡新京是真的吗:应用开发 Java:热力不断



到今朝为止,大概您已经读过很多关于 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 Dri澳门新葡新京是真的吗ver 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 数据例子,请遵照 pub澳门新葡新京是真的吗lib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/t0024033.htm 中的阐明。

运行例子前的筹备事情:

1. 应用 CREATE DATABASE 敕令,以 Unicode 创建 DB2 SAMPLE 数据库:

CREATE DATABASE SAMPLE USING CODESET UTF-8 TERRITORY US

2. 运行 SQLLIB/samples/xml/db2sampl_XML.db2 脚本,从而创建表、插入 XML 数据以及将 XML 模式注册到 SAMPLE 数据库中。该脚本经由过程以下敕令将 sqllib/samples/xml/customer.xsd XML 模式注册到 XML 模式库(XSR)中:

Java 例程类装载器

假如您认识 DB2 情况中的 Java 例程,包括用户定义函数(UDF)和存储历程,那么就会知道,Java 例程的主体是放在数据库办事器上的一些类中的。用于实现例程的类文件,必须要么寄放在安装在数据库中的 JAR 文件中,要么用操作系统的 CLASSPATH 情况变量指定。

DB2 UDB Version 8 在全部实例中仅支持一个具有给定名称的 Java 类文件。DB2 类装载器搜索类和用 CLASSPATH 指定的 JAR 文件,并选择它碰着的第一个具有被哀求名称的类。假如在不合路径中存在多个具有相同类名的 Java 存储历程和不合的 JAR 文件,那么 DB2 UDB V8 仅装载一个类,然而对付给定例程而言,这个被装载的类可能不是它所对应的类。

之以是会孕育发生这样的冲突,是由于例程的主体平日都存储在 sqllib/function 目录中,而一个实例中的所稀有据库都应用这个目录,而在类解析时代又没有应用 JAR ID。对付 Java 例程,仅仅将有问题的文件转移到不合的目录是不能办理类名冲突的,由于 CLASSPATH 情况变量是在全部实例中应用的。

让我们来看一个简单的例子。这个例子中有两个存储历程 QUERYSTAFF 和 QUERYORG,它们是在一个名为 Query.java 的文件中实现的。QUERYSTAFF 的源代码在 Staff/Query.java 中,QUERYORG 的源代码在 Org/Query.java 中;Staff/Query.java 中实现的一个存储历程对 DB2 SAMPLE 数据库中的 STAFF 表履行一个 SELE澳门新葡新京是真的吗CT 操作,而 Org/Query.java 中实现的一个存储历程则是对 DB2 SAMPLE 数据库中的 ORG 表履行一个 SELECT 操作;每个存储历程有一个对应的 澳门新葡新京是真的吗JAR 文件,它们都被安装在 SAMPLE 数据库中。

清单 5 和 清单 6 显示了这两个存储历程的源代码。它们之间的不合之处已经用粗体标注出来。

您可能还会对下面的文章感兴趣: