科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道无需 JDBC 的快速 Java 数据访问

无需 JDBC 的快速 Java 数据访问

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 虽然名声在外,但是 Java Database Connectivity(JDBC)编程方法实际上并不是那么令人激动。

作者: Rafael A. Coss等 来源:IT专家网 2008年5月2日

关键字: 访问 数据 JDBC java

  • 评论
  • 分享微博
  • 分享邮件
Java 无处不在。如果您是一名应用程序开发人员,那么您很可能正在使用 Java 进行开发。如果是这样,您应该知道这样的开发并非总是那么有趣。

  使用 Java Database Connectivity(JDBC) 创建应用程序需要很多的步骤,其中不少步骤都比较麻烦。您不仅需要创建一个 Java 数据访问对象层,还需要处理 CRUD(create, replace, update, delete)SQL 操作。为此,通常不得不使用两套工具:一套用于 Java 开发,另外一套用于数据库 CRUD 操作。如果有一套工具可以同时处理这两种工作,不是更方便吗?IBM 也这么认为,并着手创建了这样的工具。这个名为 pureQuery(之前的代码名称为“JLINQ”)的新的高性能平台包括用于应用程序的开发工具、API 和高级运行库。IBM 的 pureQuery 是为简化访问数据的应用程序的开发和管理而设计的。它对应用程序生命周期中的开发、部署、管理和治理等各个阶段都有帮助(详见图 1)。

  图 1. pureQuery 体系结构概览

  pureQuery 体系结构概览

  pureQuery 工具、API 和运行时环境提供了对数据库中的数据以及内存中的 Java 对象的访问。作为 IBM Data Studio 工具集的一个组件,一个公共的数据库应用程序开发和管理平台, pureQuery 提供了高级的 Java 数据访问功能,并真正避免了 JDBC 编程,因为它将查询语言与 Java 相集成。

  数据访问 API 的问题

  Java 开发人员可以选择多种 Java 数据访问 API 来构建应用程序,从 JDBC 到 Java Persistence Architecture(JPA)。这些 API 可以分为两大类:直接 SQL 访问和托管对象。每种方法都有其支持者和反对者。图 2 总结了每种方法的优缺点。

  图2. 几种数据访问方法比较

  几种数据访问方法比较

直接 SQL 访问很好理解。它便于控制发出的 SQL,从而提高 SQL 的性能。但是,JDBC 开发过程会比较单调乏味,并耗时较长。在直接 SQL 访问方法学中,Java 程序员必须将结果集从 JDBC 映射到 Java 对象,并创建语句和绑定参数占位符。为获得最佳性能,开发人员必须掌握 JDBC API,并利用批处理和结果优化等特性。为提高 JDBC 性能,有些人可能会考虑 SQLJ;但是,这种选择要求开发人员重新编写数据访问层。

  JDBC 开发的单调乏味促使对象关系映射(ORM) 框架问世,该框架提供一个数据访问抽象层。利用 ORM 通常可以更轻松地创建数据访问层。但是,ORM 对发出的 SQL 的控制比较有限,而且,它们给运行时性能问题的诊断加多了一层的复杂性。调优和诊断变得更加困难,因为开发人员无法再控制将什么样的 SQL 发送到数据库;因此,难以更改 SQL 或者决定由哪个应用程序发出 SQL。

  IBM 创建了 pureQuery,以解决这些方法的局限性。pureQuery 提供了一个具有 SQL 智能的 Java 编辑器,但是它并不是另一种类 SQL 的语言——它是一种可以以声明的方式查询关系数据库以及 Java 集合和数据库缓存的语言。扩展的 Java 编辑器包括一个集成的 SQL 编辑器,开发人员可以像编辑 Java 那样利用代码完成、验证和执行辅助等特性。此外,IBM 正在致力于通过 pureQuery 增强对 JPA 的支持。

  洞察 pureQuery

  pureQuery 简化了 Java 数据访问应用程序整个开发周期(开发、部署、管理和问题诊断)中与数据服务器(尤其是对于 IBM 数据服务器)和 Java 对象相关的工作。pureQuery 运行时可以与所有具有 JDBC 驱动程序的数据库打交道,并提供了与所有版本的 DB2 和 Informix Dynamic Server(IDS)的附加工具的集成。您可以选择和 JPA(一种 J2EE 标准)或 Spring 和 iBatis 等流行的开源项目一起使用 pureQuery。pureQuery 与最近宣布的 Project Zero 计划 —— zero.data 中的底层技术——相集成。 pureQuery 技术将 SQL 编辑带入到 Java 开发环境中。

  简言之,pureQuery 使很多与 Java 相关的数据访问编程任务变得容易很多。它提供了一个良好的环境,可帮助您在开发周期中尽早发现问题,并从数据库一直追踪回应用程序源代码。可以通过相同的 Java API 同时使用静态和动态 SQL。对静态 SQL 的支持改善了问题诊断和治理。DB2 DBA 应该理解静态 SQL 访问对于应用程序性能、应用程序管理和数据访问安全(治理)的好处。

  pureQuery 简化并统一了所有数据访问的实现。它并没有强迫您使用特定的 API(例如 EJB2、JPA、Spring 或 iBatis),但确实为某些用于访问数据的已有 API 的实现提供了便利。利用 pureQuery,可以直接在 Java 中编写数据访问代码。在编写查询时,可以获得设计时语法和模式检查以及更好的工具支持(例如代码完成/辅助)。

  IBM Data Studio 解决方案将很多重复的 JDBC 和对象构造任务自动化。例如,pureQuery 的SQL 智能可以帮助您在开发过程中完成 SQL 语句。

  SQL 编辑器集成(如图 3 所示)包括了以下特性,以提供对语义和语法验证的支持:

  •   设计时编译
  •   智能内容辅助
  •   语法着色

  图 3. SQL 编辑器集成

  SQL 编辑器集成

  直接在 Java 编辑器中测试 SQL,这可以提高生产率;您可以在数据库上快速地测试 SQL,并标记错误,就像处理 Java 编程错误一样。

  通过使用 pureQuery,可以缩短 Java 编辑-编译-调试开发周期中的 SQL 周期。您不必等到运行时就可以知道一个查询字符串是否格式良好,或者是否将返回错误。图 4 显示了 pureQuery 如何在 Eclipse Java Perspective 中像对待 Java 错误一样标记 SQL 错误。

  图 4. Eclipse Java Perspective 中 pureQuery 的错误标记

  Eclipse Java Perspective 中 pureQuery 的错误标记

  这种工具集成可以像 Java 开发人员编写代码时一样提供交互式的、智能的代码辅助和即时 SQL 错误警告,从而大幅提升 Java 程序员的生产率。pureQuery 还使开发人员可以查询内存中不受管的对象。它可以查询堆上没有副本或存储的原始对象。这些对象可以与来自一个数据服务器查询的结果相连接,因为 pureQuery 使用完全标准的 SQL。例如,清单 1 中的查询使用 pureQuery 的内存中查询特性连接两个 Java 集合。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章