Home 文章 Java基础 使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 2 部分: 探测和纠正 Java 程序中的 SQL 问题

feedsky
抓虾
google reader
my yahoo
使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 2 部分: 探测和纠正 Java 程序中的 SQL 问题 E-mail
User Rating: / 0
PoorBest 
作者是 Administrator   
2008-04-25 22:56:28

简介

IBM pureQuery 技术和工具可以大大简化包含 SQL 的 Java 应用程序的开发任务。pureQuery 可以在 Eclipse 环境中对 Java 语言和 SQL 进行深入集成。pureQuery 工具使开发人员能够在 Java 编辑器中无缝地处理 SQL,支持使用各种生产力特性,比如 SQL 检验、SQL 内容辅助、SQL 执行、在数据库浏览器中显示表和列以及 SQL 模板。

关于 pureQuery 工具的概述请参考本系列的 第 1 部分

本文主要讨论 Java 中的 SQL 检验。

另外,本文要使用 pureQuery 工具中的以下特性:

  • 生成内联风格的 pureQuery 代码
  • 使用 SQL 内容辅助纠正无效的查询
  • 生成创建表所需的 DDL

本文还要使用以下 IBM DB2® Developer Workbench 工具:

  • 修改表
  • 数据库浏览器
  • 数据连接持久化选项
  • SQL / XQuery Editor

平台支持

IBM 数据库 —— IBM DB2® for Linux®, UNIX® and Windows®、zSeries® 和 iSeries®,以及 IBM Informix® Dynamic Server

Eclipse 环境

  • Developer Workbench 9.5 公测版
  • 对 shell 的未来支持包括 IBM Ration® 产品套件

前提条件

DB2 SAMPLE 数据库





回页首


IBM pureQuery

pureQuery 是一款全新的高性能 Java 数据访问平台,旨在简化数据访问应用程序的开发和管理任务。

使用 pureQuery 可以使应用程序生命周期的所有阶段受益,包括开发、部署、管理和治理。

pureQuery 通过其工具、API 和运行时环境提供对数据库数据和内存中 Java 对象的访问。





回页首


IBM pureQuery Eclipse 工具

IBM Viper Developer V9.5 提供的基于 Eclipse 的 pureQuery 工具支持:

  • 在 Java 编辑器中以同样的生产力编写 SQL 和 Java 代码
  • 在 Java 编辑器内调试 Java 和 SQL 代码
  • 使用比 JDBC 少得多的代码自动生成简单的数据访问层
  • 用静态 SQL 轻松地提高应用程序性能,不需要做额外工作
  • 使用 SQL 访问数据库和内存中集合




回页首


为什么要在 Java 语言中使用 pureQuery SQL 检验

目前,对于需要在数据库应用程序中编写 SQL 语句的开发人员,Eclipse Java 开发环境提供的支持很少。与编写 SQL 代码相比,编写 Java 代码要方便得多。

Java 编辑器可以在输入代码时报告 Java 语法方面的错误。


图 1. Java 问题位置的标志
Java 问题位置的标志


把光标停留在问题或问题标志上,就可以看到问题的细节,见图 2:


图 2. Java 问题的细节
Java 问题的细节


如果忽略问题并继续编写代码,那么当保存文件或构建项目时(取决于项目是否设置为自动构建),Problems 视图会列出这些问题。在 Problems 视图中,双击一个问题就可以在 Java 编辑器中看到对应的代码。


图 3. 问题列表和到问题位置的导航
问题列表和到问题位置的导航


可以使用 Eclipse 的 Java 快速纠正支持或内容辅助来纠正问题。

在 Eclipse 中工作的 Java 应用程序开发人员长期以来一直受益于这种集成,以这种方式识别和纠正 Java 问题几乎成了他们的第二天性。

现有解决方案的缺陷

目前,在 Java 应用程序中编写 SQL 代码还不太容易。Java 编辑器无法探测 SQL 语法中的错误,也无法发现 SQL 语句引用的数据库对象不存在。实际上,当编写完应用程序时,没有任何迹象能够说明 SQL 代码是否有效;只有到执行应用程序时,才能看出来。在这个阶段,SQL 的执行失败,程序必须捕获异常来判断失败的原因。

可以使用两种方法寻找应用程序中的 SQL 问题:

  1. 在代码中处理 SQL 异常并运行应用程序,以此判断 SQL 是否有效。如果 SQL 语句中有错误,就纠正它并重新运行应用程序;为了捕捉并纠正所有 SQL 错误,可能需要多次运行应用程序。
  2. 使用 JDBC API 预备语句检验 SQL。这种解决方案的缺点是,这只能识别出 SQL 中的第一个问题。必须重复纠正和重试过程,直到消除所有 SQL 错误。

这两种方法都需要数据库连接,但是在应用程序设计阶段常常还没有建立数据库系统。另外,如果只能访问远程数据库,还可能受到网络状态的影响。

与 SQL 开发相反,使用 Eclipse 的 Java 编辑器进行 Java 开发是非常轻松的。Java 开发体验已经非常优化,生产力非常高,而编写 SQL 的过程还非常原始,效率很低。

pureQuery 工具在 Eclipse 的 Java 编辑器中集成了几个 SQL 编辑特性,从而解决了上述问题。

pureQuery SQL 检验的特点

pureQuery 工具直接集成在 Java 编辑器中,可以在开发人员输入代码时显示 SQL 语句中的问题。这些工具:

  • 探测 SQL 中的数据库模式、表、列和其他数据库工件的错误。这个特性常常称为语义检验。
  • 探测 SQL 关键字及其在 SQL 代码中的位置是否有效。这个特性常常称为语法检验。
  • 识别 SQL 语句中的大多数错误,而不只是第一个错误。这个特性可以极大地提升生产力,可以一次纠正所有 SQL 问题。例如,如果一个语句中的两个列名拼写错了,pureQuery 会同时探测出这两个错误。

    注意:如果表名拼写错了,那么就不会探测出列名错误;如果模式名拼写错了,那么就不会探测出表名和列名错误。如果 SQL 语法有问题,就不会探测出语义错误。
  • 在两个位置描述 SQL 错误的细节:在代码中和在 Problems 视图中。把光标停留在代码中的错误上,或者双击 Problems 视图中的错误,就可以看到对错误的解释。在诊断错误时,不需要记住 SQL 代码,然后查阅手册。
  • 根据首选项设置,在代码中突出显示 SQL 错误。
  • 探测跨越 Java 字符串中多行的 SQL 语句中的错误。
  • 允许在没有数据库连接的情况下使用保存的模型。
  • 允许过滤数据库浏览器中的数据库对象,这样就能够只查看感兴趣的对象。
  • 允许针对不同的数据库连接(比如开发、测试、生产数据库)或不同的模式检验 Java 应用程序。
  • 允许关闭 SQL 检验。
  • 允许把 SQL 错误视为警告。

在下一节中,我们试试 pureQuery 工具提供的这些特性。





回页首


pureQuery SQL 检验的使用效果

在应用程序的任何开发和部署阶段都可以因 pureQuery SQL 检验受益。在每种场景的每个阶段,生产力都会提升。

下面是一些可以因 pureQuery 检验和 SQL 编辑特性受益的场景:

提升应用程序开发生产力的 10 种独特场景

  1. 在创建或定制 SQL 时,希望探测数据库模式、表或列中的错误?
    使用 用语义检验探测和纠正输入的 SQL 场景。
    • 构建一个 pureQuery 应用程序,并在这个场景中体验每个 SQL 检验特性。使用 pureQuery SQL 内容辅助纠正问题。

  2. 在创建或定制 SQL 时,希望探测 SQL 关键字中的错误?
    使用 用语法检验探测和纠正输入的 SQL 场景。

  3. 希望从开发数据库和模式切换到测试或生产数据库和模式,并继续使用直接的 SQL 检验?
    使用 切换 SQL 检验所用的数据库 场景。
    • 使用 pureQuery Generate DDL 特性生成 DDL 脚本,用脚本从 pureQuery bean 创建表。使用新的 SQL / XQuery 编辑器执行生成的 SQL。

  4. 在正在构造数据库模式期间,希望忽略 pureQuery 应用程序中的 SQL 错误?
    使用 定制 SQL 检验的严重性 场景。

  5. 需要改变表名或列名,并用 SQL 检验了解对 Java 应用程序的影响?
    使用 探测数据库的修改对 Java 应用程序的影响 场景。
    • 在数据库浏览器中使用修改表功能。

  6. 不希望由于数据库服务器不可用而导致无错误 SQL 开发停顿?不希望受到其他团队成员对数据库做的修改的影响?
    使用 在 Java 应用程序中进行断开连接的高效的无错误 SQL 开发 场景。

  7. 希望在每次打开 IDE 时自动执行 SQL 检验,避免重复输入连接密码?
    使用 在数据库浏览器中保存密码 场景。
  8. 希望以报告格式查看应用程序中的错误?
    使用 生成 SQL 问题报告 场景。

  9. 希望修改 Java 编程和 SQL 错误的默认错误显示选项?
    使用 定制错误显示选项 场景。

  10. 希望在现有的所有程序中使用 pureQuery SQL 检验?
    使用 扩展 pureQuery SQL 检验 场景。

首先,需要使用 pureQuery 工具从 sample 数据库创建一个 pureQuery 应用程序:

设置 —— 创建 pureQuery 代码

执行以下步骤:

  1. 打开 Java 透视图。在 Java 透视图中添加数据库浏览器视图 —— 导航到 Window > Show View,选择 Data 并双击 Database Explorer
  2. 在数据库浏览器中连接 SAMPLE 数据库。
  3. 创建一个 Java 项目。
  4. 把它命名为 pureQuerySQLPrj。

    图 4. 创建一个 Java 项目
    创建一个 Java 项目

  5. 在数据库浏览器中,右键单击 PROJECT 表并选择 Generate pureQuery code
  6. 确保选中以下复选框:

    图 5. 生成 pureQuery 代码
    生成 pureQuery 代码

  7. 单击 Finish

pureQuerySQLPrj 现在包含以下文件:

  • Project.java ——– 代表 PROJECT 表的 bean
  • ProjectInlineSample.java —— 内联方法风格的程序,包含对 createselectupdatedelete 语句的建议

本文将处理 ProjectInlineSample.java 中生成的 SQL。

在本系列的下一篇文章中,将使用 pureQuery 支持的方法风格的应用程序开发。

  1. 在 Java 编辑器中打开 ProjectInlineSample.java。

    观察程序如何通过 pureQuery 的 API 使用 createselectupdatedelete 语句。

    还要注意,程序中的所有 SQL 用黄色框突出显示。pureQuery 的 SQL 注解特性可以区分出 Java 程序中的 SQL。在本文的其余部分中,我们将处理这些突出显示的 SQL。

  2. 确保项目已经启用了 pureQuery 支持:
    1. 右键单击 pureQuerySQLPrj 并选择 Properties
    2. 选择 pureQuery。观察与这个项目相关联的 SAMPLE 连接。
    3. 选择 Current schema 设置,可以看到连接所用的用户 ID 用作当前的模式设置。

pureQuery 工具使用这个连接对项目中的 Java 文件执行 SQL 检验。

用语义检验探测和纠正输入的 SQL

为了演示 pureQuery 的 SQL 检验特性,我们修改一下生成的 SQL。

  1. 在生成的第一个选择语句中,把两个列名改为无效的值(这个示例把 PROJNAME 和 PRENDATE 改为无效的值)。

    观察错误的列名下面显示的 Java 语言错误标志(在默认情况下,是红色的波浪线)。

  2. 保存文件,观察编辑器中的问题标志(在默认情况下,是红色的叉)。
  3. 打开 Problems 视图 —— 导航到 Window > Show View > Problems

    注意,这里列出了 Java 程序中的所有 无效列名和其他 Java 语言错误:

    图 6. 显示多个错误的列名
    显示多个错误的列名


  4. 可以使用 pureQuery 的内容辅助特性纠正列名:
    1. 把鼠标放在列名前面,按 Ctrl + Space(或内容辅助特性的默认快捷键)激活内容辅助。
      注意,这时会显示 PROJECT 表的列名列表。选择 PROJNAMEPRSTDATE 纠正列名错误。


      图 7. 列内容辅助
      列内容辅助


  5. 在生成的第一个选择语句中,把表名改为无效的值(这个示例把 PROJECT 表改为 PROJECT1)。

    观察错误的 SQL 下面显示的 Java 语言错误标志(在默认情况下,是红色的波浪线);在这个示例中,错误的 SQL 是表名 PROJECT1。
  6. 保存文件,观察编辑器中的问题标志(在默认情况下,是红色的叉)。
  7. 打开 Problems 视图 —— 导航到 Window > Show View > Problems

    注意,这里列出了 Java 程序中的无效表名和其他 Java 语言错误:

    图 8. 表错误
    表错误


  8. 可以使用 pureQuery 的内容辅助特性纠正表名:
    1. 把光标放在表名前面,按 Ctrl + Space(或内容辅助特性的默认快捷键)激活内容辅助。

      注意,这时会显示模式的表列表。选择 PROJECT 纠正表名。

      图 9. 表内容辅助
      表内容辅助


  9. 现在,把模式名改为无效的值并观察相似的错误。使用内容辅助纠正模式名。


已经实现的目标:

我们观察了 pureQuery 如何同时标出 SQL 中的所有错误,比如所有列名错误。与识别 SQL 错误的其他机制(比如使用 JDBC 预备语句)相比,这个特性确实非常方便。

还看到了 pureQuery 可以识别跨多行的错误并显示与其他 Java 语言错误相似的错误标志。

用语法检验探测和纠正输入的 SQL

  1. 在生成的更新语句中修改 update 关键字。

    这时会出现与修改表名时相同的效果。

  2. 可以使用快速纠正特性纠正某些 SQL 关键字。可以使用 Java 编辑器快速纠正特性纠正 update 关键字。
    1. 使用内容辅助纠正 SQL 关键字,见图 10:

      图 10. update 关键字错误和内容辅助
      update 关键字错误和内容辅助

注意:以后的 pureQuery 工具版本会提供 pureQuery 主机变量检验。

已经实现的目标:

我们观察到 pureQuery 能够探测和纠正 SQL 语句中的语法错误。

切换 SQL 检验所用的数据库

在通常情况下,在开发数据库上开发应用程序,在另一个数据库上测试,最后部署在生产数据库上。这些数据库的模式名常常是不同的。在这个场景中,学习如何在不修改任何代码的情况下,切换 pureQuery 项目所用的数据库并检验 SQL。

  1. 按照以下步骤,在 DB2 服务器上创建一个测试数据库,并把它命名为 TESTDB:
    1. 在 DB2 命令提示中运行以下 SQL 语句:

      db2 create database prod

  2. 在数据库浏览器中创建到 TESTDB 数据库的连接。
  3. 把 Java 项目的连接改为指向 TESTDB:
    1. 右键单击 pureQuerySQLPrj 并选择 Properties
    2. 选择 pureQuery 并把连接名改为 TESTDB:

      图 11. 修改 Java 项目所用的数据库
      修改 Java 项目所用的数据库


  4. 现在,在 TESTDB 数据库中 TESTSCHEMA 模式下创建 PROJECT 表:
    1. 打开 Project.java bean。
    2. 右键单击 bean 并从 pureQuery Assist 菜单中选择 Generate DDL
    3. 导航到 Window > Show View,然后选择 Console 打开控制台视图。
    4. 复制列出的 DDL(这是用来创建 Project bean 代表的表的 DDL 语句)。

      图 12. 在 PROD 数据库中 PRODSCHEMA 模式下创建 PROJECT 表
      在 PROD 数据库中 PRODSCHEMA 模式下创建 PROJECT 表


  5. 使用 SQL / XQuery 编辑器运行 DDL:
    1. 在数据库浏览器中,右键单击 TESTDB 连接下的 TESTDB 数据库并选择 New SQL or XQuery Script,打开 SQL/XQuery 编辑器。
    2. 指定名称 ProjectDDL 并确保选择 SQL Editor 按钮。
    3. 把控制台视图中的 SQL 脚本复制到 SQL/ XQuery 编辑器中的 ProjectDDL.sql
    4. 按照以下清单修改模式名:

      清单 1. 运行 DDL
                                      
      CREATE TABLE TESTSCHEMA.PROJECT (
      DEPTNO VARCHAR(255) NOT NULL,
      MAJPROJ VARCHAR(255) NOT NULL,
      PRENDATE DATE NOT NULL,
      PROJNAME VARCHAR(255) NOT NULL,
      PROJNO VARCHAR(255) NOT NULL,
      PRSTAFF DECIMAL(9 , 2) NOT NULL,
      PRSTDATE DATE NOT NULL,
      RESPEMP VARCHAR(255) NOT NULL
      )
      DATA CAPTURE NONE ;
      
      ALTER TABLE TESTSCHEMA.PROJECT ADD CONSTRAINT PROJECTPK PRIMARY KEY (PROJNO);
      

    5. 在编辑器中右键单击并选择 Run SQL。查看执行结果。


      图 13. 使用 SQL / XQuery 编辑器执行 DDL 脚本
      使用 SQL / XQuery 编辑器执行 DDL脚本

  6. 在数据库浏览器中刷新 TESTDB 连接的模式。
  7. 重新打开 ProjectInlineSample.java。

    注意,Java 编辑器会自动探测出原来的模式已经无效了。

    图 14. Java 编辑器自动探测出原来的模式在测试或生产数据库中不再有效
    Java 编辑器自动探测出原来的模式在测试或生产数据库中不再有效


  8. 使用内容辅助纠正错误。

注意,为了避免模式的修改导致代码修改,还可以避免使用属于当前模式的标识符进行限定。这样就可以简单地修改 Java 项目的当前模式,让它使用适当的模式名,如下所示:


图 15. 在 Java 项目连接上设置当前模式
在 Java 项目连接上设置当前模式


已经实现的目标:

您学习了如何在开发数据库和测试数据库之间切换,并针对这两个数据库进行 SQL 检验。实现这个目标的方法是切换与 Java 项目相关联的数据库。

另外,在构造应用程序时,可以避免用模式名限定 SQL;这样,当模式名改变时,只需修改 Java 项目的当前模式。

定制 SQL 检验的严重性

pureQuery 工具允许灵活地对待 Java 程序中的 SQL 错误,可以把它们看作错误或警告,甚至允许忽略它们。如果数据库模式不同步或者还在开发过程中,就需要把这些错误当作警告对待。

为了把 SQL 检验错误当作警告对待,需要把 SQL 问题的严重性级别首选项设置为 “Warnings”。

另外,如果您正在开发 SQL,但是数据库模式还不存在,那么可以选择关闭 SQL 检验。关闭检验的方法是把 SQL 问题的严重性级别首选项设置为 “Ignore”。

可以决定在应用程序开发的某些阶段关闭检验,以后再打开它。

按照以下步骤设置首选项:

  1. 选择 Window > Preferences > Data > pureQuery > Compiler Settings,见图 16:

    图 16. 把 SQL 检验严重性设置为忽略
    把 SQL 检验严重性设置为忽略

    修改这个首选项会触发工作空间重新构建。还可以选择重新构建特定的项目。

把 SQL 错误当作警告对待,会显示与 Java 语言警告相同的警告标志(在默认情况下,是黄色的波浪线),显示文件和行警告标志(在默认情况下,是黄色的叉),并在 Problems 视图的警告部分中列出警告。

已经实现的目标:

您学习了在数据库仍然处于开发阶段时如何关闭检验,以及如何把 SQL 错误当作警告对待。

探测数据库的修改对 Java 应用程序的影响

  1. 在 TESTSCHEMA 下面的 TESTDB 连接上选择 PROJECT 表,并选择 Alter
  2. 按照图 17 修改两个列名,然后选择 Run DDL

    图 17. 修改表的列名
    修改表的列名


  3. 重新打开 ProjectInlineSample.java,修改列名的影响现在反映在 Java 程序中:

    图 18. 探测出 Java 程序中出现受影响的数据库列名的所有地方
    探测出 Java 程序中出现受影响的数据库列名的所有地方

已经实现的目标:

您已经看到可以探测出 Java 应用程序中数据库修改的影响,这样就便于在开发应用程序时根据这些修改调整应用程序。

注意:未来的 pureQuery 工具版本会提供更完整的影响分析。

在 Java 中进行断开连接的高效的无错误 SQL 开发

可以在连接数据库的情况下使用 pureQuery SQL 检验,也可以在文件系统中保存连接并在离线情况下执行检验。

如果保存连接,pureQuery SQL 检验就使用保存的数据库元数据进行离线检验。

  1. 在数据库浏览器中,右键单击 SAMPLE 数据库的连接并选择 Save offline

    现在,所有 SQL 检验将使用保存的数据库模式。

已经实现的目标:

如果数据库实例由其他开发人员共享,那么可以把开发环境与数据库实例中的修改隔离开,这样在设计数据库应用程序时,就不需要连接数据库。这会大大提升生产力,避免应用程序开发受到干扰。

在数据库浏览器中保存密码

简化 SQL 检验所需的数据库连接操作:

  • 可以请求保存连接的密码,让它在每次 Eclipse 调用时都自动生效。如果保存了密码,还可以通过设置首选项在启动时自动重新连接。
  1. 选择 Window > Preferences > Data,然后选择密码信息设置的 Persistence Scope
  2. 选中在启动时自动重新连接的复选框。

注意:如果您的设置与以上设置不匹配,那么在 Eclipse 启动时,包含 SQL 代码的 Java 文件可能不显示无效 SQL 的错误标志。同样,在 Java 程序中 SQL 可能不会突出显示,您设置的 SQL 显示选项也无效。在文件的第一行会有一个警告,它指出这种现象的原因。


图 19. 如果没有建立连接,也没有离线保存连接,就会显示警告
如果没有建立连接,也没有离线保存连接,就会显示警告


已经实现的目标:

您学习了如何通过密码设置避免在每次打开 IDE 时重复输入密码。

生成 SQL 问题报告

探测出的所有 SQL 错误与其他 Java 语言错误一起显示在 Problems 视图中。可以使用标准的 Eclipse 特性定制 Problems 视图,让它只列出错误或警告。


图 20. 定制 Problems 视图
定制 Problems 视图

选择 Problems 视图中的所有错误,或者只选择您感兴趣的错误,然后可以把它们复制到 Eclipse 环境之外的报告文件中。


清单 2. 外部错误报告
                
Severity and description    Path    Resource    Location    Creation Time    Id
Table "PROJECT" does not contain column "DETNO".    
pureQueryValidationPrj/src/com/demo
ProjectInlineSample.java
line   6728

Table "PROJECT" does not contain column "PRTAFF".
pureQueryValidationPrj/src/com/demo
ProjectInlineSample.java
line6729

在 Java 程序中探测出的 SQL 错误与其他 Java 语言错误一起保存。也可以生成定制格式的报告,这需要编写一个实用程序,它扫描保存的错误并按所需的格式填充报告。

定制错误显示选项

Eclipse 允许把默认的错误/警告显示方式(错误采用红色的波浪线和叉;警告采用黄色的波浪线和叉)改为其他显示方式。这需要设置 SQL 错误的首选项。

按照以下步骤定制 Java 和 SQL 错误的显示方式:

  1. 导航到 Window > Preferences > General > Editors > Text Editors > Annotations,选择 Errors
  2. 修改以下首选项:
    • 把 “Text as” 改为 “Highlighted”
    • 把 “Color” 改为浅蓝色


    图 21. 定制的错误显示
    定制的错误显示


  3. 重新构建项目。

现在,所有 Java 和 SQL 错误以蓝色突出显示:


图 22. Java 和 SQL 错误以蓝色突出显示
Java 和 SQL 错误以蓝色突出显示


已经实现的目标:

您已经看到,pureQuery 可以通过 Java 编辑器首选项为 Java 程序中的 Java 和 SQL 提供一致的外观和感觉。

扩展 pureQuery SQL 检验

在 Eclipse 中的标准 Java 编辑器中,可以使用 pureQuery 的 SQL 集成。

在默认情况下,对于 pureQuery API 中使用的字符串,启用了 SQL 编辑功能。另外,在包含 SQL 的应用程序中,可以对选择的任何字符串使用这个功能。

关于为 Java 应用程序启用这个特性的细节,请参考 第 1 部分 中的 “在 Java 编辑器内部集成 SQL 编辑器 > 在程序中使用 pureQuery 的编辑器集成”。





回页首


生产力为什么会提升 10 倍

分享这篇文章……

digg 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot Slashdot 一下!

本文展示了 pureQuery SQL 检验特性的效果以及定制和扩展的方法。

现在,我们来分析一下这个特性为什么会使开发人员的生产力提升 10 倍。

如果没有 pureQuery 工具,成功地构建 Java 数据库应用程序需要执行以下步骤:

  1. 在 Java 代码中手工编写 SQL。SQL 可以有输入参数,可以返回结果集。
  2. 手工编写应用程序来测试 SQL。
  3. 手工编写 SQL 的所有输入参数信息并获取结果。
  4. 手工编写 try-catch 结构并显示捕获的异常。
  5. 执行应用程序。
  6. 如果 SQL 是无效的,就要检查抛出的 SQL 异常。
  7. 查阅数据库手册,搜索异常中返回的错误码,从而判断失败的原因。
  8. 打开数据库厂商提供的 SQL 编辑器或构建器,尝试纠正 SQL。
  9. 把 SQL 粘贴回 Java 程序中。
  10. 重复步骤 5-8,直到获得成功。

还有一个大缺点:必须连接数据库,才能执行测试。如果无法连接数据库,就不可能检验 SQL。这对开发活动限制很大。

如果没有 pureQuery,就无法同时找到程序中所有 SQL 语句中的所有错误。

通过使用 pureQuery 工具,就可以轻松地在 Java 应用程序中编写有效的 SQL。pureQuery 把编辑-调试-测试循环简化为一个步骤,因此大大提升了生产力。





回页首


结束语和后续内容

在 DB2 和 IDS 等 IBM 数据库上开发 Java 应用程序时,pureQuery 工具可以大大提高 SQL 生产力。

在本系列的下一篇文章(第 3 部分)中,深入学习如何使用不同的 pureQuery 风格开发 pureQuery 应用程序。

第 4 部分将重点讨论 Informix 数据库上的 pureQuery 应用程序生命周期。





回页首


致谢

感谢 Brian Payton 和 Roger Roles 提供的 Integrated Query 和解析器技术。

特别感谢 Robert Heath 和 Michael Hsing 审阅了本文。



参考资料

学习

获得产品和技术
  • IBM Viper Developer V9.5 公测版:IBM pureQuery 和工具可以通过 Viper Developer V9.5 公测版获得。请享受它带来的优势吧。

  • 使用 IBM 试用软件 构建您的下一个开发项目,可从 developerWorks 下载获得这些软件。


讨论


最近更新 ( 2008-04-25 22:56:28 )
 
Java家,