集成JPA与pureQuery: 让Java Persistence API利用DB2静态执行

IBM WebSphere Application Server V7 交付了对其 Java Persistence API (JPA) 实现的增强,支持对 IBM DB2 数据服务器数据访问的优化,以提高安全性,并具备显著降低 数据访问开销的潜力。实现优化的方式是通过使用 WebSphere JPA 与 IBM Data Studio pureQuery 运行 时之间的内置集成来支持静态 SQL 访问——这一切全都不需要更改应用程序代码或运行广泛 的测试用例。

引言

IBM WebSphere Application Server V7 交付了增强的 Java Persistence API (JPA) 实现,可支持 pureQuery,从而可以支持用于 DB2 的静态 SQL。本文介绍如何利用通过 IBM Data Studio pureQuery 运行时提供的静态 SQL 的性能和安全性,同时使用 JPA 实现其完整的对象关系功能。它几乎就像拿起您 的蛋糕并将其吃掉一样简单。

在简要介绍一些有关 SQL 和 pureQuery 的信息之后,本文将对动 态 (JDBC) 访问与通过 JPA 的静态 (pureQuery) 访问进行更详细的比较和对比。您将了解如何使用 WebSphere Application Server V7 中的静态生成器 (wsdb2gen) 实用工具来生成 SQL,然后了解如何将 生成的 SQL 绑定到 DB2 包中。本文在结束时简要概述了如何使用 pureQuery 客户端优化功能作为对这 里描述的静态生成器功能的补充。

先决条件

本文假设读者基本熟悉 JPA。

基础

什么是静态 SQL?

DB2 中的静态 SQL 是一个强大的功能,可以通过预先执行某些工作来简化运行时的数据访问,例如确 定数据库访问路径。这可以使运行时执行得更快速并且更加一致。

图 1. 静态执行比动态执行更 加高效

静态 SQL 的安全模型也不同于动态 SQL 的安全模型。使用静态 SQL,用户仅收到执行绑定进程输出 (称为包)的权限,并且该包包含 SQL 语句。换句话说,如果对某个表的所有访问都是静态的,则 DBA 将不需要授予对整个表或视图的访问权限,而是仅授予对包的访问权限。此外,可静态执行的 SQL 越多 ,则意味着恶意注入 的机会越少,恶意注入是动态 SQL 的一个众所周知的安全问题。

时间: 2024-08-03 06:03:40

集成JPA与pureQuery: 让Java Persistence API利用DB2静态执行的相关文章

JAVA PERSISTENCE API (JPA)

13.2.1. About JPA The Java Persistence API (JPA) is the standard for using persistence in Java projects. Java EE 6 applications use the Java Persistence 2.0 specification, documented here: http://www.jcp.org/en/jsr/detail?id=317.Hibernate EntityManag

Java Persistence API 2.0更新

力争更全面.更出色 Java Persistence API (JPA) 最初引入到了 Java Platform Enterprise Edition (Java EE) 5 中,作为 规范 的 Enterprise JavaBean (EJB) 3.0 家族的一部分. 自那时起,JPA 1.0 逐渐成为流行的持久性框架.即使这一最初的规范已经很全面且功能很强大了,但是总会有一些改进的空间.下一代的 JPA 规范(JPA 2.0)目前正在 JSR 317 的开发中. JPA 专家组正在努力最终

使用Java Persistence API与JavaServer Faces开发Web应用

当您需要应用程序支持数据时, JavaPersistence API (JPA)为使 用关系型数据库提供了一个简单的方法.尽管过去 JPA 一直与 Enterprise JavaBeans (EJBs)一起使用,但是 JPA 与 Web 应用程序一起直接使用 也十分方便.本篇文章描述了 IBM Rational ApplicationDeveloper for WebSphere Software V7.5 提供的简化程序模型与工具,它们能方便地 构建使用 JPA 的 Web 应用程序.注意:本

在Visual Web应用程序中使用Java Persistence API

借助 NetBeans IDE 6.0 和 Visual Web 工具,您可以使用 Visual Web 数据提供程 序组件以及 Java Persistence API(JPA)来编写连接到数据库表的应用程序.建立了到 数据库表的连接之后,可以使用 Java Persistence API 执行数据库 CRUD 操作(即创建 .读取.更新和删除操作).在开发基于数据库的应用程序时,使用 Java Persistence API 能提供更高的灵活性. 本文是本系列文章的第 1 篇(共两篇),主要

Java Persistence API中带注释的命名查询是否真的非常有用?

对注释的注释 Java Persistence API (JPA) 定义了访问数据的多种方法:通过实体管理器.通过 JPA-QL 或通过本机查询.在 JPA 中,注释用作将 Java 对象映射到底层数据库的一种机制.您还可以提供 XML 元数据作为映射注释的覆盖或备选机制.不过,我看到的大多数 JPA 使用情况都明显喜欢使用注释.规范文档使用注释,而不使用基于 XML 的映射示例(仅向您显示 XML 模式)来表示所有示例这一事实可能是覆盖的原因之一.创建对象关系映射,以便从 Java 对象模型抽

使用Java Persistence API修改数据库表行

有关如何使用 NetBeans IDE 的更多信息,请参阅 NetBeans 网站上的 支持和文档. 本文将使用以下技术和资源 JavaServer Faces 组件/ Java EE 平台 1.2/Java EE 5* Travel 数据库 不是必需的 阅读本文的前提条件本文是本系列文章(共两篇)的第二部分.您应该已经阅读了 在 Visual Web 应用程序中使用 Java Persistence API 这篇文章,并且创建了其中所描述 的两个项目以及一些不同的类和网页.第一篇文章提供了建立

Java Persistence API (JPA) 的陷阱

JPA是Java EE 5很重要的一部分,它的采用大大简化了Entity Bean的使用.但JPA有一个很明显的缺陷,就是无原则地采用JPA,就有可能将数据库结构移植到你的应用程序的代码中.这将给应用程序的维护和升级带来麻烦. 本文讲的"无原则地采用JPA",主要指通过Annotation对Entity Bean之间的关系进行定义.这些数据实体的关系,如一对多,一对一,多对一,多对多及关联操作(cascade)等,很明显是数据库概念.为了实现ORM的目的,JPA不得不将其在Entity

Java Persistence with Hibernate中文版Hibernate实战第2版出版

Java Persistence with Hibernate中文版Hibernate实战第2版出版 图灵出版社官方Hibernate实战(第2版)链接为: http://www.turingbook.com/Books/ShowBook.aspx?BookID=260 书 名: Hibernate实战(第2版) 评论星级: **** 书 号: 978-7-115-17448-2 原 书 名: Java Persistence with Hibernate 原出版社: Manning Publi

IBM WebSphere Application Server V7.0 Feature Pack for Java Persistence

IBM WebSphere Application Server V7.0 Feature Pack for Java Persistence API 2.0 新特性介绍 对象 - 关系持久化是 Java EE 应用开发中的一个重要部分.Java Persistence API (JPA) 是对象 - 关系持久化的 Java EE 标准,从 Java EE 5 开始被引入.最新的 JPA 2.0(JSR-317) 规范是 Java EE 6 标准的一部分,它引入了新的对象 - 关系持久化 API