J2EE探险者: 长期数据管理,第2部份[Java编程]
本文“J2EE探险者: 长期数据管理,第2部份[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用程序组件应实现针对企业服务的恳求.要实现这些恳求,利用程序组件常常必须更改底层数据存储的状况.这些更改绝对不能破坏长期数据存储的完好性.(在有关数据长期性的 第一篇文章中,我们将 长期数据存储定义为独立的数据资源库,即便在服务器崩溃或网络失利时,这个数据资源库也能保护此中的数据.)为了确保长期性,利用程序组件必须能处理并发性、衔接纳理、数据完好性以及同步.J2EE 的三种数据管理技术都能为开辟人员处理这些功效,只不过每种技术都有自己的处理办法.
上月我们探究了实体 bean 和 JDBC 的优缺陷.本月,我们将查看 Java 数据对象若何与无状况会话 bean 组合,以及该办理筹划若何与尺度实体 bean 利用程序举行对比.由于 JDO 还是一种相当新的技术(最新的 J2EE 长期性办理筹划),所以我们将首先概述其工作原理.
JDO 概述
长期以来,Java 利用程序和长期数据管理之间的关系一向是不简单处理的.很多长期性机制以关系的办法而不是面向对象办法存储数据.即,数据存储在由包含字段的记录构成的表中,而不是存储为自包含对象(这些对象拥有内部数据和对别的对象的引用,而别的对象也拥有内部数据和引用).将面向对象的表示转换成关系表示一向就很麻烦、易出错且会降低利用程序性能.直到近来,少数几个本质上是非关系型的长期性机制(比方 SQL BLOB 和 Java 序列化)利用起来也很麻烦.大大都长期性机制让开辟人员负责处理长期性,或利用非 Java 语言(比方 SQL)与后端数据存储举行彼此作用.
JDO 的长处在于它很简单.开辟人员利用 Java 语言长期存储对象实例并从存储器检索实例.处理逻辑、同步和弊端转移等均被透明地处理.开辟人员无需利用 SQL 或 Java 语言供应的不便的序列化机制,只利用 POJO(无格局普通 Java 对象)便可,操纵 JDO 接口将对象引用传送到存储器中并从存储器检索对象引用.
JDO 还采取了很多 JDBC 利用的高级体系构造.它利用一种可插入的体系构造,在这一体系构造中,开辟人员将自己的代码编写成尺度接口集(JDO API),而供应商供应这些接口的实现.这答应利用 JDO 接口的利用程序“插入”任何支持 JDO API 的数据存储.和 JDBC 一样,这可以使移植简单,并增长各供应商之间的竞争,从而产生更好的产品,因为供应商会力争供应更有效且功效更强盛的实现.
会话 bean 和 JDO
会话 bean 是任何归并了 EJB 技术的 J2EE 体系构造的基干.关于无状况会话 bean 特别如此.正如从前谈论的,无状况会话 bean 的安定性和可猜测性使其分外合适于管理长期的企业数据.
但是会话 bean 本身不能拜候长期数据存储.它们必须与别的技术(照实体 bean、JDBC 或 JDO)相结合以成立一种长期数据管理机制.将会话 bean 与 JDO 结合近似于将它们与 JDBC 结合,但 JDO 是以更面向对象且更以 Java 为中央的概念处理该问题的.
功效强盛的组合
通过向 EJB 容器恳求资源管理器衔接工厂,企业 bean 得到对外部资源的拜候权.利用 JDBC 的 EJB 组件是这样做的,利用 JDO 的 EJB 组件也是这样做的.会话 bean 必须做的第一件事是通过调用 JNDI 查询,得到对 PersistenceManagerFactory 的引用.然后从工厂得到 PersistenceManager 实例.假如会话 bean 正在利用容器管理的事件,那么每个业务办法将利用工厂来得到新的 PersistenceManager 实例,之后在退出该办法之前关闭该实例.假如利用的是 bean 管理的事件,那么开辟人员将肯定事件的开始条件和完毕条件.因此,可以在多个业务办法调用中利用同一 PersistenceManager 实例.一样,可以在一个业务办法中翻开并管理多个事件. PersistenceManager API 支持全部这些筹划.
与 PersistenceManager 交互的 JDO API 很简单且非常直观.开辟人员通过调用 makePersistent() 办法使对象长期.并且,这个办法特点符被重载,从而答应将各种对象范例视为长期对象(单个对象、对象数组或对象调集).检索对象一样很简单. getObjectById() 办法利用由开辟人员肯定的唯一值(近似于主键)来辨别对象实例.JDO 还支持基于范例的查询,这些查询能基于指定的范例(即,实现大众接口的子类和类)检索单个对象或对象调集.与 JDBC 近似,JDO 支持基本的事件性控件: begin() 、 commit() 和 rollback() ,并能指出 PersistenceManager 实例应当采取乐观的还是悲观的事件管理办法.
以上是“J2EE探险者: 长期数据管理,第2部份[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |