跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 pureQuery 优化现有的 JDBC 应用程序

提高现有 JDBC 应用程序的安全性和性能

Patrick Titzler, Enablement 工程师, IBM
Patrick Titzler
Patrick Titzler 是加利福尼亚州圣何塞市 IBM 硅谷实验室 Data Studio Enablement 团队的工程师。在加入这个团队之前,Patrick 是数据仓库和 OLAP 应用程序开发小组的成员。Patrick 拥有德国 University of Rostock 计算机科学硕士学位。
Zeus Courtois (zocourto@us.ibm.com), 软件工程师, IBM
Zeus Courtois
Zeus Courtois 是加利福尼亚州圣何塞市 IBM 硅谷实验室 Data Studio Development 团队的工程师,从事 pureQuery 工具方面的工作。在加入这个团队之前,Zeus 在 Data Studio Enablement 小组实习。Zeus 拥有 Texas A&M International University 信息系统硕士学位。

简介:  在 Version 1.2 中,Data Studio Developer 和 Data Studio pureQuery Runtime 包括一个名为客户机优化 的新特性,该特性使 DBA 和开发人员可以利用静态 SQL 执行,而且不必修改现有的定制开发的、基于框架的或打包的 JDBC 应用程序。本教程展示如何使用 Data Studio Developer 提供的工具使 JDBC 应用程序能够使用这个新功能。

发布日期:  2008 年 11 月 19 日
级别: 初级

访问情况 : 3461 次浏览
评论: 

开始之前

pureQuery 简介

IBM Data Studio 产品组合中包括 pureQuery,它是一个高性能数据访问平台,旨在简化 Java 数据访问的开发、管理、安全保障和优化。它由开发工具(在 Data Studio Developer 中)、一个简单直观的 API 和一个运行时(在 Data Studio purequery Runtime 中)组成。

在优化 DB2 数据的 Java 数据访问和保障访问的安全方面,pureQuery 的主要优点是开发和部署使用静态 SQL 的应用程序非常容易。当使用静态 SQL 时,执行 SQL 语句的准备步骤是在应用程序执行之前就进行的,因此可在运行时取得更好的性能。此外,静态 SQL 总是可以预先知道,因此不会受到恶意的或意外的 SQL 注入的影响,而这正是动态 SQL 的安全缺陷。要了解更多关于静态 SQL 在性能和安全性方面的优点,请参阅 参考资料

什么是数据库包和 DBRM?

数据库包(不要与 Java 包混淆)是包含 DB2 运行那个包中的 SQL 语句所需的所有信息的对象。创建包的过程称作绑定,在此期间,DB2 要做一些事情,例如确定与一个特定包相关联的每条 SQL 语句的访问路径。

DBRM 对于 DB2 for z/OS 用户来说比较熟悉。它由准备绑定到一个包的 SQL 语句组成。在客户机优化的上下文中,可以让 binder 实用程序从捕捉的 XML 创建一个 DBRM,然后将它绑定到相关联的 z/OS 系统上。

以前,为了使用静态 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 执行重新绑定并重新运行应用程序。

先决条件

本教程是为拥有基于 Eclipse 的工具方面的基本经验的应用程序开发人员和 DBA 编写的。


系统需求

为了运行本教程中的例子,需要安装 Data Studio Developer 1.2。另外还需要对 DB2 数据服务器的访问权。请下载免费的 DB2 Express-C,这是为社区提供的 DB2 Express Edition,它具有与 DB2 LUW 相同的核心数据 特性,并为构建和部署应用程序提供了坚实的基础。请参阅 参考资料小节 获取链接。

1 页,共 10 | 后一页

评论



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Java technology
ArticleID=352841
TutorialTitle=使用 pureQuery 优化现有的 JDBC 应用程序
publish-date=11192008
author1-email=ptitzler@us.ibm.com
author1-email-cc=
author2-email=zocourto@us.ibm.com
author2-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。