[/color][color=indigo]一、Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。 二、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。
[/size][size=x-small][/size][size=medium] 三、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之间来回犹豫不决,甚至搞不清楚的话,程序都没有办法写。
分享到:
相关推荐
Struts,Spring,Hibernate优缺点_fly.mht
Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...
### Struts, Spring, Hibernate 三大框架的优缺点分析 #### Struts框架 **优点:** 1. **组件模块化与灵活性:** Struts框架强调组件的模块化设计,这使得开发者可以根据项目的不同需求灵活地选择和组合这些组件。...
以下是这三个框架的详细优缺点分析: **Struts** Struts是一个开源的MVC框架,主要用于构建Web应用程序。它的主要优点包括: 1. **开源性**:Struts作为Apache基金会的项目,其源代码公开,开发者可以深入了解其...
### Struts、Spring、Hibernate 的优缺点分析 #### 一、Struts 框架 **优点:** 1. **实现 MVC 架构模式:**Struts 通过 Model-View-Controller (MVC) 设计模式,使得业务逻辑与表示层分离,便于维护和扩展。 2. ...
### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...
一.持久化:将内存中的瞬时态数据保存成数据库中持久态数据的操作 1.瞬时态:以new命令实例化后从未用session将其与数据库关联(保存)过的... 2.Hibernate映射文件:Hibernate映射文件是Hibernate与数据库进行持久化的桥梁
### JPA与Hibernate的优缺点分析 #### Java Persistence API (JPA) Java Persistence API(简称JPA)是Java平台提供的一套对象关系映射(ORM)标准,它旨在为Java应用提供一种统一、灵活的数据持久化解决方案。JPA...
### SSH框架:Struts、Hibernate、Spring 的优缺点分析 #### Struts **优点:** 1. **MVC模式的支持**:Struts框架遵循MVC(Model-View-Controller)设计模式,它将应用程序分为模型层、视图层和控制器层,这样的...
#### 二、Hibernate优缺点 - **优点**: - **无需SQL**:减少手写SQL的需求,提高开发效率。 - **面向对象**:开发更加面向对象,简化复杂度。 - **高移植性**:容易迁移至不同的数据库系统。 - **透明持久化**...
二、Hibernate优缺点 1. 优点: - 提高开发效率,减少编写数据库操作的代码。 - Hibernate使用Java反射机制,实现了对象和数据库之间的透明性。 - 性能良好,作为一个轻量级框架,它的映射灵活性高。 - 提供了...
标题中的“jdbc与hibernate的优缺点比较”是一个关于两种主流Java数据库访问技术的讨论。JDBC(Java Database Connectivity)是Java中用于与数据库交互的一组接口和类,而Hibernate是一个对象关系映射(ORM)框架,...
Hibernate优缺点 优点: - 提高开发效率:ORM避免了手动编写SQL语句。 - 易于维护:面向对象的编程方式更符合人类思维。 - 数据独立性:更换数据库只需修改配置文件,无需改动代码。 缺点: - 性能损耗:相比原生...
**Hibernate优缺点** 优点: 1. 提高开发效率:通过ORM将Java对象和数据库表映射,减少手动编写SQL语句的工作量。 2. 隔离数据库细节:应用代码与数据库无关,更换数据库时只需调整配置文件。 3. 支持对象关系映射...
1. Hibernate 的检索方式有哪些 ? 2. 在 Hibernate 中 Java 对象的状态有哪些 ? 3. Session的清理和清空有什么区别? 4. load()和get()的区别 5. hibernate 优缺点......
让我们详细分析一下SSH的优缺点。 **Struts** Struts作为一个MVC框架,具有以下优点: 1. **MVC架构**:Struts通过分离业务逻辑、视图和控制逻辑,使应用结构清晰,易于维护和扩展。 2. **Taglib库**:Struts提供...
本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### Struts框架 **优点:** 1. **实现了MVC设计模式:**Struts框架很好地支持了MVC(Model-View-Controller)设计模式,使得开发者能够更加...
本文将详细介绍这三大框架的学习方法、优缺点以及它们的基本概念。 首先,Spring框架是Java企业级应用的基石,它提供了一个全面的编程和配置模型,旨在简化开发过程。学习Spring,你需要理解IoC(控制反转)和AOP...