pureQuery Runtime 功能摘要

pureQuery Runtime 可与 Java 应用程序一起使用。pureQuery Runtime 也可与 DB2® ODBC/CLI and Microsoft .NET 应用程序一起使用。

Java pureQuery API 应用程序的功能

pureQuery Runtime 提供 API 功能和客户机优化功能。

对于使用 pureQuery API 的应用程序,InfoSphere® Optim™ pureQuery Runtime 提供以下功能:

可用于对数据库、内存中集合和迭代器对象运行 SQL 语句的单个 API

Java 平台提供了大量的数据结构和 API,用于处理内存中集合和来自各种数据源的外部数据。这些功能部件中的每一个都能够完美地解决特定类型的问题。pureQuery 还拥有一组自己独有的接口,用于检索和修改集合中的数据。例如,pureQuery 提供一个 API 用于 Java 数组、列表、映射和迭代器。每个 API 都会查询并(在某些情况下)更新集合中的数据。

同样,JDBC API 提供了一种使用 SQL 访问关系型 JDBC DataSource 对象和其他外部 JDBC DataSource 对象的方法。但是,pureQuery 允许应用程序使用一种或组合使用多种已知查询语言来访问所有这些数据源。

用于数据访问的简单编程模型
pureQuery 作为 JDBC 上的一个单独(薄)层运行。pureQuery 简化了查询、更新、存储过程调用以及与访问数据库有关的其他任务。pureQuery 运行于 Java 2 平台,Standard Edition 5.0 (J2SE 5.0) 和 Java 平台,Standard Edition 6 (Java SE 6) 之上。
只需少量的开发人员干涉就可自动将 SQL 数据映射到返回类型
pureQuery 为多种 Java 对象模式提供 SQL 查询结果和已返回对象之间的自动映射。对于查询结果和 Java 对象之间的复杂映射,提供了一个允许定制映射的可插拔退出接口。

您可以创建并注释返回包含表连接的 SQL 查询结果的 Bean。 查询结果返回为一组包含其他 Bean 实例的 Bean 集合。Bean 的层次结构反映了查询结果的一对一和一对多关系。例如,一个查询包含雇员表和部门表之间的连接。 查询返回指定给不同部门的雇员。 结果返回为一组部门 Bean,其中每个部门 Bean 实例都表示一个部门。每个部门 Bean 包含一个雇员 Bean 列表。每个雇员 Bean 实例包含雇员信息。

支持使用注释方法和内联方法开发 SQL 应用程序
注释方法支持用于在定制接口中定义自己的方法。可以使用 SQL 语句注释的定义来创建方法。通过使用注释方法来创建数据访问对象,可以开发遵循“数据访问对象 (DAO)”模式的应用程序。

内联方法支持用于利用 IBM 提供的数据接口中定义的方法。内联方法对于在应用程序运行时期间需要构造 SQL 语句的应用程序很有用。通过内联方法,SQL 语句可在方法调用中作为参数传递,这与 JDBC 中采用的方法类似。

提供管理静态运行 SQL 语句的支持。 您可以注释代码,以将接口中使用的 SQL 语句分组。您可以控制组的绑定过程。 也可以控制 pureQuery StaticBinde 实用程序使用的绑定选项,并可以控制为包含 SQL 语句的数据包生成的名称。

支持运行时动态和静态 SQL
对于嵌入式 SQL 和到运行时才了解的特别 SQL,pureQuery 代码可结合使用动态 SQL 和标准 JDBC 驱动程序。
当 pureQuery 代码使用注解方法的编程风格和 DB2 数据库时,该代码还可使用静态 SQL。静态 SQL 具有以下优点:
避免使用动态语句高速缓存
通过使用静态 SQL,减少对 DB2 动态语句高速缓存的争用,并提高使用动态 SQL 的应用程序的性能。
一致的存取路径
通过在应用程序运行前锁定存取路径,静态 SQL 使得响应时间更具可预测性和稳定性。相反地,将在运行时计算动态 SQL 的存取路径。
潜在提高应用程序性能
静态 SQL 能够提高应用程序的性能。
  • 由于存取方案在运行时之前就已确定,因此无需在运行时准备 SQL 语句。
  • 由于不需要准备和描述每个语句,因此减少了客户机应用程序和数据库服务器之间的网络流量。
  • 静态 SQL 严格限制了谓词中所使用的主变量或参数的数据类型。这种严格限制可以确保输入数据与数据库中的目标类型保持一致。
提高安全性
您可以授予用户针对 DB2 数据包的 EXECUTE 特权,而不是针对数据库对象的特权。
简化数据包修改
由于可以为每个 DB2 数据包创建多个版本,因此可以重新捆绑数据包,而不会存在丢失优先存取路径的风险。
当在 z/OS® 上运行 pureQuery 应用程序时,支持 JDBC 类型 2 连接。
由于 JDBC 类型 2 驱动程序整合了 Java 和本机代码,因此类型 2 连接通常比类型 4 连接更易执行。
支持平台和数据访问应用程序框架开发
pureQuery Runtime 支持以下平台和框架:
  • Java
  • Java Persistence API (JPA)
  • Spring
  • Hibernate
  • iBatis

支持 pureQuery 客户机优化的 Java 应用程序

未使用 pureQuery API 的应用程序可以利用客户机优化,它不同于其他支持在 DB2 上静态运行 SQL 的技术:
  • pureQuery 客户机优化不使用预处理器,它不同于对嵌入式 SQL 使用预处理器的 COBOL 编程语言。
  • pureQuery 客户机优化不使用转换程序或定制程序,这不同于 SQLJ。
  • 您无需将 SQL 语句硬编码为应用程序的数据源。

客户机优化更改了 JDBC 驱动程序与应用程序的交互方式,因此不需要这些组件,也不必更改您的代码。pureQuery 客户机优化提供以下功能:

安全存储 pureQuery 数据
pureQuery 配置信息、pureQueryXML 数据(其中包括 pureQuery Runtime 使用的 SQL 数据)和捕获的 SQL 数据可以存储在安全位置,并由 pureQuery Runtime 按需访问。pureQuery Runtime 可以配置为从安全位置检索 pureQuery 数据。pureQuery Runtime 可以将从使用 pureQuery 客户机优化的支持 pureQuery 的应用程序中捕获到的 SQL 数据存储在安全位置。
DB2 专用寄存器支持
从应用程序捕获 SQL 语句时,pureQuery 客户机优化将跟踪 SQL 语句使用的 DB2 专用寄存器信息。pureQuery 客户机优化将记录常用及可能影响 SQL 语句行为的专用寄存器的专用寄存器值。在某些情况下,当两次发出相同的 SQL 语句时,如果专用寄存器的值在第一次和第二次运行该语句之间发生更改,那么该语句的行为会有所不同。

pureQuery Configure 实用程序选项 -optionsFileForBind 可以根据与捕获的 SQL 语句一并记录的专用寄存器信息来生成包含绑定选项的 StaticBinder 选项文件。选项文件还包含有关 pureQueryXML 文件中的语句集和 SQL 语句的信息和警告,以及专用寄存器信息。

该文件中的信息可帮助您指定一组绑定选项,这样在静态运行某个 SQL 语句时,其行为类似于从应用程序发出并动态运行该语句的行为。当您绑定包含 SQL 语句的 DB2 程序包时,可使用 pureQuery StaticBinder 实用程序指定绑定选项。

轻松管理 pureQueryXML 文件
以下功能部件可帮助您管理 pureQueryXML 文件中的 SQL 语句和语句集:
  • Configure 实用程序可以按 SQL 语句中的文本(例如,表名或列名)或按专用寄存器使用情况对 SQL 语句进行分组。
  • 对于在指定天数内应用程序没有发出的 SQL 语句,Configure 实用程序可以从 pureQueryXML 文件将其删除。当 SQL 语句从某个应用程序发出时,pureQuery Runtime 可以进行跟踪,并更新 pureQueryXML 文件中的信息。
  • Configure 实用程序可以在处理 pureQueryXML 文件之前或之后设置语句集的状态。语句集的状态可控制 Configure 实用程序是否尝试修改语句。
  • Configure 实用程序可以更改 pureQueryXML 文件中 SQL 语句的数据库位置名和模式名。
  • StaticBinder 实用程序可以在 pureQueryXML 文件中的 SQL 语句绑定过程返回错误时处理该语句。该实用程序可将语句标记为无效,或将其从文件除去。 如果语句标记为无效,该语句仍保留在文件中,但不作为可绑定的语句进行处理。可以使用 Configure 实用程序将语句更改为有效可绑定的语句或除去无效语句。
  • Configure、Merge 和 StaticBinder 实用程序可以对输入 pureQueryXML 文件执行 XML 模式验证。
  • ManageRepository 实用程序可以生成报告,列出两个 pureQueryXML 文件之间的差异。通过将更新的 pureQueryXML 文件与原始文件进行比较,可以轻松查看对更新文件所做的更改。

ODBC/CLI 应用程序和 .NET 应用程序的功能

调用级接口 (CLI) 是用于关系数据库访问的 C 和 C++ 应用程序编程接口。 CLI 使用函数调用将动态 SQL 语句作为函数参数传递。.NET 应用程序包含以任何基于 .NET 的语言编写的应用程序,如 C# 和 VB.NET。

在为连接到 DB2 数据库或 Informix® 数据库的 CLI 或 .NET应用程序启用 pureQuery 客户机优化之后,即可控制应用程序发出的 SQL 语句。例如,如果应用程序连接到 DB2 数据库,那么可以将应用程序配置为针对数据库静态运行 SQL 语句。您可以控制允许针对数据库运行的 SQL 语句。

pureQuery 客户机优化的优点包括:
  • 针对 DB2 数据库静态运行 SQL 语句。
  • 使用工具诊断 SQL 语句的问题,以追溯至应用程序源代码。
  • 使用优化语句替换执行欠佳的 SQL 语句。
  • 通过运行有限的 SQL 语句集来降低 SQL 注入攻击的风险。

对于 CLI 应用程序,您可以运行 SQL 语句,并使用 DB2 命令 db2cli 来验证 SQL 语句。 指定准备好 SQL 语句,但不运行以验证 SQL 语句。您可以捕获在 pureQueryXML 文件中运行或验证的 SQL 语句。

有关使用 .NET 开发 DB2 应用程序的信息,请参阅 ADO.NET application development

有关使用 CLI 开发 DB2 应用程序的信息,请参阅 Introduction to DB2 Call Level Interface and ODBC


反馈