注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > Java > 内容正文

EJB 3.0是Hibernate的克隆吗?

发布时间:2006-06-14 14:36:35 来源:天极开发 网友评论 0 条
相关专区
·初学者专区·高级技术
·图像与多媒体·网络编程
·Java开源·Eclipse
·EJB开发 ·设计模式
精彩专题
·Java6新功能 ·Borland传奇
·JBuilder05·EJB 3.0
·Servlet API·JDBC入门讲座
主题社区
·Java源码·Java

  友情推荐:从老虎到野马 Java 6.0新功能观察

  摘要 Sun的EJB 3.0规范正处于其最后的"冲刺"阶段,许多公司都在为遵循这一规范而忙碌着。这个EJB规范最新版本所提供的众多优点中比较突出的当属其数据库功能,但是一些开发人员感到,这个规范仅仅是Hibernate持久性存储引擎的一个"克隆"版。真的吗?本文正是想讨论这一问题。

  实践证明,Hibernate是针对于Java语言所创建的最优秀的持久化存储引擎之一。至今,我还清晰地记得第一次使用Hibernate工作的情景。当时,我们已经有了一种现成的持久化存储引擎,但是这个引擎将消耗大量的系统资源并且从未真正正确工作过。令人惊奇的是,Hibernate"瞬间"解决了我们的持久化存储问题!这真是一个"天赐之物"。不觉间,时间快速推进到今天。EJB 3.0又浮出水面,并且不久我们就要计划把我们当前的EJB 2.x服务器向这个更高版本升级了。然而,仔细地分析一下EJB 3.0中所作的持久性存储变化,有人可能会感到惊讶-这不是来自于Hibernate的一个"克隆"品吗?难道Sun当真"偷窃"了来自于Hibernate的设计吗?我的回答是,情况要比这些复杂得多。

  一、 EJB 3.0

  EJB 3.0必须实现的重要目标之一是,要使之成为更为有用和更易于使用的开发工具。Sun公司的Linda DeMichiel认识到,为了成功实现这一目标,EJB 3.0必须要基于开发人员今天正在使用的现有库;否则,它将会导致一种困难的升级操作并且可能会引不起足够的重视。因此,来自于Oracle,JBoss,Apache,BEA,Novell,Google的成员和其它方面的专家都被邀请参与制订这一规范。这个小组的目标是,生产一种规范-能够使得EJB更易于开发并且还要创建一种便于开发人员能够容易地实现升级的持久性存储标准。

  当这个小组开始开发EJB 3.0规范时,他们很快认识到,其中很多特征应该在功能上与所有的主要的供应商和库保持一致。我们将在下面的几节中讨论这些特征。

  (一) EntityManager

  这个EntityManager负责处理一个事务。在JDO中,它被称作持久性存储管理器,而在Hibernate中称它为一个会话。在GlassFish工程中,EntityManager被作如下描述:

  其实,一个EntityManager实例与一个持久性存储上下文相关联。一个持久性存储上下文是一组实体实例,其中的任何一个持久性实体都是唯一的一个实体实例。在该持久性存储上下文中,实体实例及其生命周期都是可被管理的。这个接口定义了用于与持久性存储上下文进行交互的方法。EntityManager API用于创建和删除持久性实体实例-通过其主键查找实体和查询实体。

  这个可由一个给定的EntityManager实例管理的实体集合是通过一个持久性存储单元进行定义的。一个持久性存储单元定义了所有类的集合,这些类是相联系的或由应用程序加以分组,并且它们必须共存于它们到单个数据库的映射中。

  (二) 命名查询

  一个命名查询是一个预定义的查询,它被赋予一个名字,这样它可以在以后通过该名字加以存取。用数据库术语来说,命名查询被称作存储过程。当结合本机查询时(见下一节),数据库查询应该是非常轻松的。

  (三) 本机查询

  不是使用具有很多限制性的实体查询语言,本机查询允许直接从EJB中全面地使用SQL语言。现在,我们有可能直接在数据库上调用count(),max()和其它功能而不必付出其它周折。

  (四) 回调监听器

  回调监听器,是一种事件监听器,或用数据库术语来说是,是一种触发器。它们支持当一个事件发生时进行代码调用。

  (五) 脱离/重新依附对象

  能够脱离开一个EntityManager的控制范围而又能够重新返回而被持续化存储,这在EJB 3.0版本之前是无法实现的。在以前,为了实现这一目的,必须把来自于一个对象的值必须被复制到一个POJO(普通Java对象)中,然后被再往回复制。

  在EJB 3.0之前,我总是使用值-对象并且把来自于EJB的值复制到一个POJO中;然后,使用在前端使用该对象。如果该POJO中的一个值被改变,它将不得不被"推回"到该EJB;然后,该值被复制回来。这种"混乱"状态现在已经不复存在了。一个对象甚至能够完全离开JVM并且在以后某个时期返回回来并且被重新依附。这种改变所带来的效率是不能被低估的。

  (六) O/R映射类型

  能够把一个EJB中的字段直接映射到一个数据库中的列上是EJB 3.0以前也是很难实现的。这一功能实现一直不那么令人满意,并且很多第三方开发工具都一再推迟对这种功能的支持。我最喜欢的xDoclet的一个特征是,它能够定义在我的EJB中每一个持久性字段对应哪种SQL类型。借助于EJB 3.0和注解技术,我们不再需要使用一种第三方工具。

  二、 EJB 3.0对象

  值得注意的是,企业Java Bean现在被称为POJO。随着注解技术的出现,java bean不再需要接口、home和描述符支持文件。仅仅这个特征就为EJB 3.0赢得了大批开发团队的青睐。

  现在,既然企业对象不再被锁定到应用程序服务器内,那么我们不再需要把它们复制进和复制出POJO,这样就允许不必把应用程序服务器后端和前端区别得那么严格,从而使开发人员能够更容易地显示和编辑存储于EJB中的数据。我们很快就会看到这些变化对xDoclet所产生的有趣影响。

  三、 结论

  尽管毫无疑问,EJB 3.0基于Hibernate,但是,事实上它是基于所有的顶级的对象/关系映射工具。看来,这个工具并非这些工具简单"修改"版,而事实上是由Sun创造的又一部杰出的"电影"。不必让开发人员学习一种"全新的但还是功能相同的工具",开发人员只需要轻松地花一些时间就可以升级到新版的EJB 3.0中,因为EJB 3.0正是基于他们已经了解和喜欢的工具创建的。

软件频道精品推荐

更多精彩
点击体验>>

关于 EJB 3. 的新闻
  • 利用EJB 3.0+JPA设计企业应用程序
  • JAVA篇:EJB 3.0开发指南之依赖注入
  • POJO应用架构:Spring与EJB 3.0的对比
【评论】【收藏本文】【打印】【关闭】
上一篇文章:Java SE 6在Solaris的可观察性特征分析
下一篇文章:Java FTP客户端库的选择
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Java控件设计入门
Java控件设计入门
全站资源
  • 微软官方入门教程19:轻松掌握Vista系统的快
  • 微软2008大冲击,预借Vista SP1力促Vista市
  • 在收件箱中获得 Windows Vista 的最新更新
  • 微软官方Vista入门教程全集19篇(Vista学院
  • Windows Vista 的成功将势不可挡
  • 快快抛弃Vista,拥抱XP SP3!你觉得呢?
  • 浅谈Vista系统关闭虚拟内存与使用内存盘加速
  • 嘿嘿,按下键盘上面的三个键,马上让你的Vi
  • Windows Vista的盗版率只有Windows XP的一半
  • 3DMark和PCMark Vantage新版将只支持Vista系
阅读排行
  • Java连接SQL Server 2000
  • Java文件操作详解
  • Java控件设计入门
  • Java操作Excel电子表格
  • Java: JNI完全手册
  • Java命令行简介
  • 开发J2EE应用应遵循的几点原则
  • Servlet与Javabean配置
  • Java规则引擎与其API应用详解
  • CLASSPATH详解
最新技术文档
  • 中断Java ME手机上的屏幕保护程序
  • 使用Java动态创建ODBC数据源
  • Java 程序初始化过程详解
  • 使用Java进行Web开发的随想
  • 理解Java Swing中的Accelerator Key
  • 用Java实现多线程服务器程序
  • Java企业应用系统框架的比较与选择
  • Java虚拟机的研究与实现
  • Java系统中内存泄漏测试方法的研究
  • 解析Java类和对象的初始化过程
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载