J2EE 中使用EntityBean和JDO各有什么优点缺点

c1978 2004-09-22 03:52:51
J2EE 中使用EntityBean和JDO各有什么优点缺点
...全文
53 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yabbi21 2004-09-22
相比entity bean,
JDO的优点是:

1)设计简单。
2)细粒度控制,允许开发人员对整个持久性进程进行完全控制,包括高速缓存、持久性、并发性和同步等。
3)编码简单。JDO 体系结构向开发人员隐藏了低级别的持久性细节。
4)JDO 并不仅仅使 Java 对象持久;它还透明地处理整个相关对象图的持久性。因此,当实例被持久存储时,它所维护的对其它对象实例的任何内部引用也都被持久存储(除非它们已被声明为瞬态)。JDO 还存储类型层次结构的完整信息,并能根据类型(父类和接口)实现请求,而不是只了解持久实例的特定局部类型。

回复
efarer 2004-09-22
学习。。。
回复
yabbi21 2004-09-22
实体 bean:
提供健壮的数据持久性。bean 容器处理大部分的数据完整性、资源管理和并发性功能,从而使开发人员关注业务逻辑和数据处理,而不是这些低级细节。使用 bean 管理的持久性(Bean Managed Persistence,BMP)实体 bean 时,开发人员编写持久性代码而容器确定何时执行该代码。使用容器管理的持久性(Container Managed Persistence,CMP)实体 bean 时,容器生成持久性代码并管理持久性逻辑。

JDO: 只是提供面向对象的持久数据存储。开发人员使用 POJO(无格式普通 Java 对象,plain ordinary Java object)来装入和存储持久数据。

实体 bean 主要有下列优点:

1 )标准化。EJB 规范定义一组与供应商无关的接口,J2EE 供应商可以实现这些接口来支持实体 bean。这种标准化允许采用最佳实践的开发并缩短雇用新开发人员时的适应期。因为基本的组件体系结构和设计模式大家都知道,所以很容易找到合格的人才来实现它们。
2 )容器管理的服务。正如我们在本系列的前两篇文章中讨论的那样,EJB 容器管理的服务为处理诸如安全性、事务处理、连接合用和资源管理之类的企业功能提供了极大的好处。
3)透明持久性。CMP时容器能自动管理持久性语义。虽然使用 BMP 实体 bean 时,开发人员必须编写持久性逻辑,而容器则确定何时调用由开发人员定义的方法。同时使用 CMP 和 BMP 实体 bean 时,容器决定何时持续保持 bean 的状态以及如何确保与底层数据存储的数据完整性和并发性。
4)事务支持。开发人员对 CMP 事务(隔离级别、事务需求和方法的包含/排除)有粗粒度的控制权,对 BMP 事务有细粒度的控制权,这些控制都是通过在 bean 代码中以程序方式处理事务语义实现的。在这两种情况下,容器管理事务并确定是否应该提交给定的事务。
5)基于组件的设计。实体 bean 被设计成自包含组件,这些组件配置有部署描述符,无需更改任何代码就可以将它们部署到任何 J2EE 应用程序服务器。

总之,实体 bean的优点是可以从标准化和业界最佳实践中受益,简化了企业开发的某些复杂性
缺点则是:
1)设计复杂。
2)由于企业 bean 和(尤其是)实体 bean 的复杂性,所以一次迭代(设计/构建/测试/集成/测试/部署)所花的时间比其他 Java 持久性解决方案所花的时间可能长很多。
3)响应时间不理想
4)资源占用过高,总是会消耗掉大量的服务器资源。






回复
viano 2004-09-22

EntityBean
1.实际的应用中我们很少用到EntityBean,如果用到了,只是用它update和insert。检索完全用jdbc自己来拼sql文查询。EntityBean作为一个长期存在于server中的对象,占用了很多资源,而一个企业级的应用,除了DB操作外,还有更多的逻辑处理。并且,有的应用数据库十分复杂,用EntityBean不一定全部能够解决。检索要求的是速度快,完全符合逻辑业务的要求,对于一些特殊的复杂的查询无法用EntityBean实现。对于开发人员,不是每个人都有比要弄清楚 EntityBean的原理,但每个人都清楚SQL的语法,所以从开发效率上讲,弃用EntityBean也是有好处的。

2.在SessionBean中,最好引用petstore中相关的设计模式,大量的业务逻辑在SessionBean中实现,涉及到DB操作时则调用DAO层,这样,简化了SessionBean,在项目的后期维护时,你会发现很方便快捷。



JDO 不知道!

回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-22 03:52
社区公告
暂无公告