论坛首页 Java企业应用论坛

整合Hibernate的EJB架构分析

浏览 17940 次
该帖已经被评为精华帖
作者 正文
   发表时间:2003-09-16  
一、Hibernate是JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。

二、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。

三、 Hibernate不能用来直接和Entity Bean做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是Entity Bean的替代者出现的,让我再列一次我已经列n次的框架结构:

传统的架构:
1) Session Bean <-> Entity Bean <-> DB
为了解决性能障碍的替代架构:
2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate来提高上面架构的开发效率的架构:
3) Session Bean <-> DAO <-> Hibernate <-> DB

就上面3个架构来分析:
1、内存消耗:采用JDBC的架构2无疑是最省内存的,Hibernate的架构3次之,EB的架构1最差。

2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用 Batch语句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此Hibernate架构表现出最快的运行效率。 EB的架构效率会差的很远。

3、开发效率:在有JBuilder的支持下以及简单的项目,EB架构开发效率最高,JDBC次之,Hibernate最差。但是在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人,JDBC次之,而EB架构很可能会失败。

4、分布式,安全检查,集群,负载均衡的支持
由于有SB做为Facade,3个架构没有区别。
   发表时间:2004-04-15  
一早上就看了这个,感觉这个帖子没有回复可惜了。太好了,希望有更多的朋友看到这个,参与讨论。但是,标题为什么是:“整合Hibernate的EJB架构 ”呢?Hibernate的架构是对EJB框架的一种简化、还是……?虽然
robbin 写道
Hibernate是JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架,和EJB没有什么必然的联系。

但是,我还是想问一下,他们二者在“根本上的区别”(为什么这么设计,他们各自的存在空间?以及在实际系统中各自适用的范围——更具体的说,哪些系统我们要用实体EJB,哪些要用hibernate框架呢?)。

我没有做过EJB,从学校到公司两个月,开始学习Hibernate,因为公司的中小项目开始采用这个技术,我非常喜欢Hibernate,对Hibernate的使用可以说比较了解(仅仅是使用,原理、架构、设计、模式等等还不明白),

但是我想在我的毕设中间对HB框架和EJB架构作一些比较,说明一下在某些实际的工程中,Hibernate可以很好、很轻便的让我们面向对象的驾驭数据库,希望robbin能给我马上要搞定的毕设一下意见。毕竟,我已经把Hibernate作为我的毕设了,而且本人从写JDBC到现在有了HB,也加入了HB的支持行列。
所以,我有些不甘心看到这句话:
robbin 写道
Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系


我几乎每天都来看看着,以前只是看。今天大清早发帖,就因为精华帖中间这个帖很切合我的毕设,希望robbin和大家能给我的 毕业论文建议、意见!感谢大家对HB 新人的支持!

PS:我加了你的MSN,每天都看到的ID后面的括号里换绝世武功,但你就是不肯搭理我讲话
flashkai AT msn DAO com
0 请登录后投票
   发表时间:2004-04-15  
这方面的讨论其实已经很充分了,我想没有必要再敲一次,你在Java编程和Java企业技术版可以看到关于EJB,Hibernate架构上的很多讨论。

如果在msn上问我问题,我通常都会回复,除非我不在电脑前面,但是问我问题的人挺多的,所以如果只是打声招呼,我通常就不回复了,请谅解。

毕业设计导师不管的吗?现在的导师师德到哪里去了?我不觉得我有指导别人写论文的资格,我最多只能提点建议而已。
0 请登录后投票
   发表时间:2007-01-15  
   现在EJB3的实体Bean采用了POJO模型,一个简单的java bean就可以是一个Entity Bean。无需依赖容器运行和测试。而且从3开始Entity Bean持久化规范与EJB的其他规范如Session Bean, Message Driven Bean和EJB3容器规范开始分离,单独作为一个持久化API。
   在操作上,EQL与HQL基本上没多大的驱别了,而且因为有了Annotetation,少写了很多的xml
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics