构建跨越联合数据的实体EJB - 编程入门网
构建跨越联合数据的实体EJB时间:2011-01-28 IBM C.M. Saracco简介 实体 Enterprise JavaBeans™(EJB)开发人员发现自己面临数据建模问题的挑战,这并不稀奇。因为实体 EJB 通常代表由关系 DBMS 管理的数据,所以程序员们常常必须决定:如何将表中现有的数据映射到支持 Web 应用程序所需的新的服务器端 Java™ 对象。尽管许多开发工具可以帮助程序员构建映射到单个表的单个实体 EJB,但很难找到有以下能力的工具:能帮助程序员创建实体 EJB,且该实体 EJB 映射到非关系数据或由多个数据源(可能既有关系数据源,也有非关系数据源)管理的数据。 在本文中,我们将研究 IBM® DB2® 联合数据库管理系统(DBMS)是如何帮助 EJB 程序员解决这些问题的。该技术为程序员提供了全异数据的单站点映象,呈现了一个虚拟数据库,这个虚拟数据库掩盖了远程数据源所需的应用程序编程接口(API)中的差别。这是联合 DBMS的特征之一,它使 EJB 程序员能以透明和高效的方式使用全异数据。 前一篇文章 处理 Web 应用程序中的全异数据介绍了联合 DBMS 概念并对它们如何能补充 Web 应用程序服务器环境做了说明。另一篇文章 构建访问联合数据的Web 组件研究了构建使用联合数据的会话 EJB 和 Web 服务的设计需求。在本文中,我们将研究联合 DBMS 技术更进一步的用法:作为创建带有容器管理的持久性(container-managed persistence (CMP))的实体 bean的基础。但在我们深入研究技术细节之前,理解联合数据库技术在什么情况下可能有益于实体 EJB 程序员是很重要的。 益处何在? CMP 实体 bean 代表着 DB2 联合数据库技术的一种相当完善的用法,因为数据库访问的代码 — 也就是实现持久性的代码 — 是在部署 EJB 时自动生成的。相反,构建访问持久数据的会话 EJB的程序员,要编写自己的JDBC 语句才能建立数据库连接以及发出 SQL 语句。 在随后的几节中,我们将讨论如何构建使用联合 DBMS 技术的各种 CMP 实体 bean。IBM的WebSphere® Studio Application Developer 集成版(WSADIE)将作为我们的Java开发平台。但是,首先要理解在什么情况下使用 DB2 联合技术会对实体 bean 程序员有好处,这很重要。联合技术可以: 扩展 EJB 所表示的数据源的范围。尽管流行的Java 编程工具 — 如 IBM的WSADIE — 提供对多种数据源的本机支持,但 DB2的联合技术提供了对一些其它数据源(包括非关系数据源)的现成的访问能力。此外,如果需要,DB2 程序员还可以构建封装器,以便使 DB2 能访问任何想访问的数据源,其中包括“旧的”DBMS、文件系统、原型软件等。 支持许多常用 DBMS的CMP 实体 bean的自动化开发和部署,而 不要求这些 DBMS的客户机软件安装在运行 WSADIE 或 IBM WebSphere Application Server的平台上。 支持单个 CMP 实体 bean的自动化开发和部署,该实体 bean的属性映射到来自多个数据源的数据。在这种方案中,会创建一个 DB2 视图,它连接或合并来自多个数据服务器的数据。因为“视图更新”问题对任何关系 DBMS 都很常见,所以这样的CMP 实体 bean 都被开发成“只读”的。 实体 EJB 概述 EJB 是遵守某些编程规范的服务器端软件组件。实体 EJB 代表了通常存储在关系 DBMS 中的持久数据。开发人员可以自己管理他们 bean的持久方面(通过 bean 管理的持久性,或简称 BMP),但大多数人选择将这一职责委托给容器(通过 容器管理的持久性,或简称 CMP)。本文着重讨论 CMP 实体 bean。 EJB 规范对开发人员制定了某些编码需求。这些需求会稍有不同,取决于您希望支持的EJB 规范级别。对于本文,我们将着重关注 EJB 1.1,它是 WebSphere Application Server 版本 4(我 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |