`
kidiaoer
  • 浏览: 822364 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Hibernate的优点,为什么用Hibernate

阅读更多
一、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入门到精通

    要使用 Hibernate,首先需要搭建 Hibernate 的开发环境。下面是 Hibernate 环境搭建的主要步骤: 1. 映射配置文件 在 Hibernate 中,映射配置文件(hibernate.cfg.xml)是用于配置 Hibernate 的核心配置文件。该...

    hibernate与mybatis一起使用取长补短

    标题“hibernate与mybatis一起使用取长补短”暗示了在一个项目中同时采用这两种框架,旨在充分利用它们各自的优点,以提升项目的性能和灵活性。 Hibernate是一款强大的ORM框架,它提供了完整的对象模型支持,包括...

    Hibernate完整使用教程

    为什么选择 Hibernate Hibernate 的出现是为了解决传统的 JDBC 编程中的问题。传统的 JDBC 编程需要编写大量的代码来处理数据库交互,而 Hibernate 则提供了一种简洁的方式来访问关系数据库。 Hibernate 的主要优点...

    Hibernate的原理和优点

    Hibernate的原理和优点

    Hibernate使用指南

    Hibernate 的作用:用面向对象的编程思想来操作数据库。表现为对数据的持久化。 一、 Hibernate 的基本概念 Hibernate 是一个开放源代码的对象关系映射(ORM)框架,它提供了一个面向对象的方式来访问关系数据库。...

    Hibernate3.6

    Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的方式来处理数据库操作。在 Hibernate 3.6 版本中,这个框架继续强化了其在简化数据库访问、提高开发效率以及支持多种数据库平台...

    深入浅出 Hibernate.pdf

    1. **简化数据访问**:通过Hibernate可以使用面向对象的方式来进行数据库操作,无需直接编写SQL语句。 2. **提高开发效率**:由于大部分数据访问逻辑由框架自动完成,因此可以节省大量的开发时间。 3. **易于维护**...

    ibatis 与hibernate之间的比较优点和缺点

    ### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...

    Eclipse中Hibernate简单配置和使用

    Hibernate优点 Hibernate的优点包括: * 封装了JDBC,简化了很多重复性代码。 * 简化了DAO层编码工作,使开发更对象化了。 * 移植性好,支持各种数据库,如果需要可以轻松地更换数据库。 Hibernate是一个非常强大...

    Hibernate Spatial 4 教程

    五、Hibernate Spatial 4 的优点 Hibernate Spatial 4 提供了对空间几何对象的数据库操作支持,包括空间查询、空间索引和空间分析等功能。它还提供了与其他 Hibernate 项目的集成支持。 六、结论 Hibernate ...

    Hibernate学习笔记整理

    Hibernate 的优点 * 是一个 ORM 框架 * 操作数据库的框架 * 面向对象编程的代码编程比较简单 * 做到了数据缓存 * 广泛应用于企业中的中小型项目 Hibernate 的缺点 * 该框架程序员是没有办法干预 SQL 语句的生成 *...

    Netbeans 配置 hibernate 的方法

    使用 Netbeans 配置 Hibernate 有很多优点。首先,Netbeans 提供了一个用户友好的界面,使得配置 Hibernate变得非常简单。其次,Netbeans 支持多种数据库类型,例如 MySQL、Oracle、SQL Server 等。最后,Netbeans ...

    JDBC与Hibernate区别

    在实际应用中,开发者可以根据具体情况进行权衡,甚至结合两者的优点,例如使用Hibernate进行常规操作,而在性能关键点采用JDBC优化。重要的是理解它们的工作原理,以便在不同的开发环境下做出明智的决策。

    hibernate注入的三种方式

    在探讨Hibernate注入的三种方式时,我们主要关注的是如何在Spring框架中整合Hibernate,以便实现对象关系映射(ORM)并进行数据库操作。这三种方式包括:通过`LocalSessionFactoryBean`配置、直接注入`...

    hibernate

    Hibernate 优点** - **无需依赖容器**:降低了开发难度,减少了代码量,加快了开发周期。 - **封装 JDBC**:自动生成高效 SQL 代码。 - **状态管理**:提供对象状态的管理,例如瞬态、持久化和分离状态。 - **HQL*...

    hibernate视频

    Hibernate是一个开源的对象关系映射(Object Relational Mapping,简称ORM)框架,它为Java应用提供了一种将对象模型与数据库模型进行转换的机制,从而简化了数据持久化的操作。接下来,我们将对这个视频教程可能...

    hibernate实例

    使用Hibernate的优点很多: 1. Hibernate不是专门为Java Web项目设计的,它可以被应用在任何Java项目中,包括Java SE项目。 2. Hibernate可以显著减少代码量。在没有ORM框架的时代,程序员需要编写大量的JDBC代码...

    hibernate使用主键关联的一对一关系

    在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...

Global site tag (gtag.js) - Google Analytics