一、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个架构没有区别。
四、EB和Hibernate学习难度在哪里?
EB
的难度在哪里?不在复杂的XML配置文件上,而在于EB运用稍微不慎,就有严重的性能障碍。所以难在你需要学习很多EJB设计模式来避开性能问题,需要学
习App
Server和EB的配置来优化EB的运行效率。做EB的开发工作,程序员的大部分精力都被放到了EB的性能问题上了,反而没有更多的精力关注本身就主要
投入精力去考虑的对象持久层的设计上来。
Hibernate难在哪里?
不在Hibernate本身的复杂,实际上Hibernate非常的简单,难在Hibernate太灵活了。
当你用EB来实现持久层的时候,你会发现EB实在是太笨拙了,笨拙到你根本没有什么可以选择的余地,所以你根本就不用花费精力去设计方案,去平衡方案的好坏,去费脑筋考虑选择哪个方案,因为只有唯一的方案摆在你面前,你只能这么做,没得选择。
Hibernate
相反,它太灵活了
,相同的问题,你至少可以设计出十几种方案来解决,所以特别的犯难,究竟用这个,还是用那个呢?这些方案之间到底有什么区别呢?他们的运
行原理有什么不同?运行效率哪个比较好?光是主键生成,就有七八种方案供你选择,你为难不为难?集合属性可以用Set,可以用List,还可以用Bag,
到底哪个效率高,你为难不为难?查询可以用iterator,可以用list,哪个好,有什么区别?你为难不为难?复合主键你可以直接在hbm里面配置,
也可以自定义CustomerType,哪种比较好些?你为难不为难?对于一个表,你可以选择单一映射一个对象,也可以映射成父子对象,还可以映射成两个
1:1的对象,在什么情况下用哪种方案比较好,你为难不为难?
这个列表可以一直开列下去
,直到你不想再看下去为止。当你面前摆着无数的眼
花缭乱的方案的时候,你会觉得幸福呢?还是悲哀呢?如果你是一个负责的程序员,那么你一定会仔细研究每种方案的区别,每种方案的效率,每种方案的适用场
合,你会觉得你已经陷入进去拔不出来了。如果是用EB,你第一秒种就已经做出了决定,根本没得选择,比如说集合属性,你只能用Collection,如果
是Hibernate,你会在Bag,List和Set之间来回犹豫不决,甚至搞不清楚的话,程序都没有办法写。
分享到:
相关推荐
Hibernate 优点** - **无需依赖容器**:降低了开发难度,减少了代码量,加快了开发周期。 - **封装 JDBC**:自动生成高效 SQL 代码。 - **状态管理**:提供对象状态的管理,例如瞬态、持久化和分离状态。 - **HQL*...
Hibernate优点 Hibernate的优点包括: * 封装了JDBC,简化了很多重复性代码。 * 简化了DAO层编码工作,使开发更对象化了。 * 移植性好,支持各种数据库,如果需要可以轻松地更换数据库。 Hibernate是一个非常强大...
3. **Hibernate 优点**: - **面向对象思维**:通过对象映射到数据库记录,使得编程更直观。 - **移植性**:数据库独立性,可以轻松更换数据库系统。 - **性能提升**:通过缓存机制和SQL优化,提高了查询速度。 ...
**Hibernate优点** 1. **简化数据库操作**:通过对象模型和映射,可以使用Java对象进行操作,减少了手动编写SQL的繁琐工作。 2. **支持复杂查询**:提供HQL(Hibernate Query Language)和Criteria API,方便进行...
Hibernate优点** - **高性能**:Hibernate作为一个轻量级框架,具有优秀的性能表现,得益于其灵活的映射机制。 - **跨数据库兼容性**:Hibernate支持多种关系数据库,确保代码的可移植性,能够处理一对一、一对多...
2. **Hibernate优点**:简化数据库操作,提高开发效率,支持多种数据库,提供缓存机制,减少对数据库的直接操作,提升应用程序性能。 ### 二、Hibernate架构 1. **配置文件**:`hibernate.cfg.xml`是Hibernate的...
BeetSql是一个全功能DAO工具,同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 在开发效率上,无需注解,自动使用大量内置SQL,轻易完成增删...
7. Hibernate优点:简化数据库操作,支持面向对象编程,提高开发效率,支持延迟加载,提供强大的检索功能。 8. 延迟加载:当对象的关联属性没有立即加载,而是首次访问时才加载,以减少不必要的数据库交互。 9. 类...
Hibernate 有很多优点,它可以帮助开发者快速地访问和操作数据库。下面是 Hibernate 的一些优点: * 简洁高效:Hibernate 提供了一种简洁高效的方式来访问和操作数据库。 * 支持多种数据库管理系统:Hibernate 支持...
Hibernate的原理和优点
Hibernate工作原理、Hibernate的核心组件、Persistent Object、Hibernate的运行过程、Hibernate缓存的作用、Hibernate缓存分类、Hibernate优点、 Hibernate缺点、spring原理 、AOP(Aspect-Oriented Programming): ...
hibernate v3.04中文参考手册.pdf Hibernate 开发指南.pdf hibernate-distribution-3.3.1.GA hibernate.chm Hibernate.pdf ...hibernate优点.htm hibernate培训教程.doc Hibernate开发指南.pdf hibernat培训.ppt
### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...
Hibernate 的主要优点是: * 简化了数据库交互的过程 * 提高了开发效率 * 提高了系统的可维护性 Hibernate 和 JDBC 比较 Hibernate 和 JDBC 都是用于访问关系数据库的技术,但是它们之间有着本质的区别。JDBC 是...
ORM框架的主要优点在于它可以极大地简化数据访问层的开发工作,减少重复性的代码编写,并提供了一种更为面向对象的方式来处理数据库操作。 ### Hibernate的工作原理 Hibernate的核心机制是对象关系映射,即将Java...
Hibernate 的优点有很多,以下是一些主要的优点: * 轻量级封装:Hibernate 对 JDBC 进行了轻量级的封装,使得 Java 程序员可以使用面向对象的编程思想来操作数据库。 * 面向对象编程:Hibernate 支持面向对象的...
ORM 的主要优点包括: 1. **提高开发效率**:通过对象模型进行数据库操作,减少了对SQL的依赖,提高了代码的可读性和可维护性。 2. **平台无关性**:Hibernate 支持多种数据库,如 MySQL、Oracle、PostgreSQL 等,...
Hibernate 的优点 * 是一个 ORM 框架 * 操作数据库的框架 * 面向对象编程的代码编程比较简单 * 做到了数据缓存 * 广泛应用于企业中的中小型项目 Hibernate 的缺点 * 该框架程序员是没有办法干预 SQL 语句的生成 *...
五、Hibernate Spatial 4 的优点 Hibernate Spatial 4 提供了对空间几何对象的数据库操作支持,包括空间查询、空间索引和空间分析等功能。它还提供了与其他 Hibernate 项目的集成支持。 六、结论 Hibernate ...