Hibernate的分析【收藏】

原创 2004年06月25日 09:31:00
一、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个架构没有区别。

CSDN文章收藏

五种提高 SQL 性能的方法http://www.csdn.net/develop/read_article.asp?id=46371Java程序设计资源推荐http://www.csdn.net/d...
  • zlyperson
  • zlyperson
  • 2005年01月17日 01:03
  • 844

jquery实现收藏效果

function fav() { try { window.external.addFavorite(sURL, sTitle); } catch(e) { try { w...
  • hjt321658
  • hjt321658
  • 2013年12月22日 11:09
  • 751

智能厨房重构-用ActiveAndroid来实现收藏的功能

上一篇说了智能厨房重构-Retrofit和RxJava进行网络请求,这一篇来记录一下使用ActiveAndroid关系型数据库进行本地对象的保存。1.ActiveAndroid的介绍该项目的githu...
  • u014316462
  • u014316462
  • 2016年08月10日 10:40
  • 3026

hibernate框架的结构和分析

在上篇博客中介绍了struts2框架的原理和流程分析,可以说struts框架一路走来,改变非常大,而且让我们开发人员变得更加轻松,里面的设计理念的改变也是让我们编程人员的思路得到更大的扩展。   ...
  • NeoAdrian
  • NeoAdrian
  • 2016年03月17日 14:11
  • 2633

33个超级有用必须要收藏的PHP代码样例

PHP代码样例
  • sunscheung
  • sunscheung
  • 2015年10月09日 11:33
  • 773

利用本地数据库给项目添加收藏功能

收藏功能主要对模型进行添加,查询和删除,我这里只给了部分代码, 能实现基本的功能, 也涉及到在数据库中对字典进行添加,我的另一篇博客也讲到这类功能,也可以参考我的林一篇博客. 数据库利用bold类型...
  • qq_31382921
  • qq_31382921
  • 2016年07月01日 21:19
  • 1049

ecshop之实现取消收藏功能

找到根目录下面的 user.php/* 添加收藏商品(ajax) */ elseif ($action == 'collect') { include_once(ROOT_PATH .'inc...
  • laike1355
  • laike1355
  • 2016年03月24日 09:49
  • 1364

查看csdn我的收藏

你懂得。http://my.csdn.net/my/favorite
  • xoyabc
  • xoyabc
  • 2014年12月08日 23:46
  • 3014

商品详情页面实现点击收藏,取消收藏

html代码: {if condition="$is_member_fav_goods == 0"} 收藏 {else/} 收藏 {/...
  • caikys
  • caikys
  • 2017年12月25日 15:25
  • 212

Hibernate4.3.7初步使用

首先需要将hibernate-release-4.3.7.Final\lib\required之下的jar包全部加入到项目的classpath之中,如果希望更快的配置cfg和hbm之类的文件,可以在E...
  • shijiebei2009
  • shijiebei2009
  • 2015年01月12日 16:20
  • 3545
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate的分析【收藏】
举报原因:
原因补充:

(最多只允许输入30个字)