开始之前
pureQuery 简介
IBM Data Studio 产品组合中包括 pureQuery,它是一个高性能数据访问平台 ,旨在简化 Java 数据访问的开发、管理、安全保障和优化。它由开发工具(在 Data Studio Developer 中)、一个简单直观的 API 和一个运行时(在 Data Studio purequery Runtime 中)组成。
在优化 DB2 数据的 Java 数据访问和保障访问的安全方面,pureQuery 的主 要优点是开发和部署使用静态 SQL 的应用程序非常容易。当使用静态 SQL 时, 执行 SQL 语句的准备步骤是在应用程序执行之前就进行的,因此可在运行时取得 更好的性能。此外,静态 SQL 总是可以预先知道,因此不会受到恶意的或意外的 SQL 注入的影响,而这正是动态 SQL 的安全缺陷。
以前,为了使用静态 SQL,需要用 pureQuery 带注释的方法样式来编写应用 程序。在 1.2 版的 Data Studio Developer 和 Data Studio pureQuery Runtime 中,无论现有的 JDBC 应用程序是直接实现持久性,还是使用流行的框 架(比如 Hibernate 和 JPA 来实现持久性),都可以使用静态 SQL,而不必重 新编写代码。这个特性有时候被称作客户机优化(client optimization),因为 启用静态 SQL 的过程是在 JDBC 客户机这一级发生的。我们将此特性称作 pureQuery for JDBC applications。
启用应用程序的 pureQuery for JDBC applications 特性的常规过程是一个 迭代的过程,由以下几个阶段组成:
计划。计划阶段的目的是确定应用程序是否适合使用 pureQuery。虽然从概念 上讲可以为任何访问任意 DB2 数据服务器中的数据的 Java 应用程序启用该特性 ,但是应用程序必须满足一定的标准,例如先决条件(比如,应用程序在 JRE 1.5 或以上中运行)、安全方面(比如,DBA 或数据管理员同意使用基于数据库 包的安全性,而不是基于表/视图的安全性)等等。
捕捉。PureQuery for JDBC applications 静态地处理 SQL 语句时,依赖于 关于应用程序 SQL 语句及其相关元数据的信息。捕捉阶段收集必要的信息,并将 其存储在一个元数据文件中。
配置。为了静态地执行 SQL,首先必须将它绑定到一个数据库包。在此之前, 可以配置已捕捉的 SQL 文件,以指定一些设置,例如每个包中存放多少条 SQL 语句。
绑定。定义包的特征之后,需要将捕捉的 SQL 和相关的元数据绑定到一个或 多个数据库(也可以将它存储到 DBRM 中,以后再部署它)。
执行和验证。成功地完成上述阶段后,pureQuery for JDBC applications 就 配置好了,这就可以静态地执行 SQL 语句了。在验证过程中,质量保证专家验证 应用程序是否按预期执行,并返回预期的结果。
注意:在通常的使用场景中,启用(enablement)过程是一个迭代的过程。
关于本教程
在本教程中,学习如何使用 Data Studio Developer,让一个简单的定制开发 的 JDBC 应用程序可以使用 pureQuery for JDBC applications 特性。不过,您 也可以使用自己选择的访问任意平台上的 DB2 数据的应用程序来学习本教程。客 户机优化不需要访问源代码,但是本教程中的步骤假设您有那样的访问权。
目标
本教程的目标是介绍使现有的 JDBC 应用程序支持 pureQuery 的步骤。为了 使本教程简单一些,我们提供了一个小型的应用程序,这个应用程序直接使用 JDBC 实现持久性,它满足启用 pureQuery 所需的所有要求,并且很容易验证。
在本教程中,您将学习如何:
创建一个示例数据库,并将示例 JDBC 应用程序导入到 Data Studio Developer 1.2 中。
使用一个代码路径运行应用程序,并捕捉它的 SQL。
在 Java 源代码中查看示例应用程序的 SQL 和它与 Java 源代码的关系(可 选)。
配置捕捉到的 SQL,并将其绑定到一个数据库包。
以静态 SQL 执行模式运行示例应用程序,并验证它是否具有正确的行为。
使用另一条代码路径运行应用程序,以捕捉剩下的 SQL;然后,使用静态 SQL 执行重新绑定并重新运行应用程序。