Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
大多数应用程序都需要处理数据。Java应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。
优秀的面向对象开发人员厌倦了这种重复性的劳动,他们开始采用通常的“积极”偷懒做法,即,创建工具,使整个过程自动化。对于关系数据库来说,这种努力的最大成果就是对象/关系映射(ORM)工具。
这类工具有很多,从昂贵的商业产品到内置于J2EE中的EJB标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而Hibernate就是这样的一个例子。
Hibernate API学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。
这里的讨论假定您已经通过创建Hibernate映射文档,建立了一个关系数据库,并且拥有要映射的Java类。有一个Hibernate“工具集” 可在编译时使用,以支持不同的工作流。例如,如果您已经拥有Java类和映射文档,Hibernate可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,Hibernate也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于Eclipse的alpha 插件,它们可以在IDE中提供智能的编辑支持以及对这些工具的图形访问。
使用Hibernate的场合
既然Hibernate看起来如此灵活好用,为什么还要使用其他的工具呢?下面有一些场景,可以帮助您做出判断(或许通过提供一些比较和上下文,可以有助于鉴别非常适用Hibernate的场合)。
如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如Hibernate这般易于使用)!从Java 1.4开始,有一个标准的Java Preferences API可以很好地发挥这个作用。(在ONJava文章中可以找到有关Preferences API的更多信息。)
Hibernate的优点
1、Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。
2、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。
3、Hibernate不能用来直接和Entity Bean做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是Entity Bean的替代者出现的,让我再列一次我已经列n次的框架结构:
为什么选择Hibernate
4、由于是对JDBC的轻易级封闭,内存消耗少,最快的运行效率。
5、开发效率高,Eclipse、JBuilder等主流JAVA集成开发环境对Hibernate有很好的支持,在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人。
6、分布式,安全检查,集群,负载均衡的支持。
为什么要选择Hibernate
1、开源和免费的License,我可以在需要的时候研究源代码,改写源代码,进行功能的定制。
2、轻量级封装,避免引入过多复杂的问题,调试容易,也减轻程序员的负担。
3、具有可扩展性,API开放,当本身功能不够用的时候,可以自己遍码进行扩展。
4、开发者活跃,产品有稳定的发展保障。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zdwzzu2006/archive/2009/09/24/4590289.aspx
分享到:
相关推荐
在本章中,我们将对这三个框架进行概述,探讨它们如何帮助企业应对复杂的Web应用开发挑战。 首先,框架是软件开发中的一个重要概念,它提供了一种标准和可重用的结构,使得开发人员可以专注于业务逻辑,而不是重复...
【Hibernate概述及实例分析】 Hibernate 是一款在Java环境中广泛应用的对象/关系数据库映射(ORM)框架,它将复杂的数据库操作转化为对Java对象的操作,简化了数据持久化的过程。ORM技术的核心在于将对象模型(如...
### Hibernate概述及重要知识点 #### 一、持久化技术简介 **持久化**是指将内存中的数据保存到磁盘上,以确保即使在系统重启或断电后数据仍然可用。在现代软件开发中,最常见的方式是将数据保存至数据库中,这种...
“Hibernate3学习笔记(一)-hibernate概述和简单实例入门” 这个标题表明了本文档将介绍的是关于Hibernate3的基本概念和初步应用。Hibernate3是Java开发中的一个流行对象关系映射(ORM)框架,它简化了数据库操作,将...
【hibernate概述】 Hibernate是一个开源的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够以面向对象的方式处理数据库。Hibernate通过提供数据持久化的框架,将Java类与数据库表之间的映射...
### Hibernate的概述 #### 一、什么是Hibernate? Hibernate是一个开源的对象-关系映射(Object-Relational Mapping,简称ORM)框架,它通过一种简洁的方式来处理Java应用中的数据持久层编程问题。简而言之,ORM是...
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
1. **Hibernate概述**:Hibernate是一种开源的ORM框架,它通过映射Java类到数据库表,将数据层与业务逻辑层解耦。这使得开发者能够专注于业务逻辑,而无需深入关注SQL语法。 2. **安装与配置**:文档会详述如何在...
1. Hibernate概述: Hibernate是一个开源的Java库,它提供了一种在Java应用中持久化数据的方式,使得开发者无需编写大量的SQL语句,即可实现对数据库的CRUD(创建、读取、更新和删除)操作。它的核心理念是将面向...
### Hibernate概述 Hibernate是一个开源的对象关系映射(Object Relational Mapping, ORM)框架,用于Java应用程序中的数据库操作。它允许开发人员将Java对象映射到关系型数据库中的表,并通过这些对象进行数据库...
第2章 Hibernate概述 第3章 快速起步 3.1 准备工作 3.2 Hibernate配置 3.3 日志配置 3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 ...
本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...
#### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元数据,将应用业务逻辑中使用...
1. **Hibernate概述**:Hibernate是一个开源的Java库,它提供了对JDBC的高级抽象,使开发者可以避免编写大量的SQL代码。通过使用Hibernate,开发人员能够将对象模型与关系数据库模型进行映射,实现对象的持久化。 2...
## Hibernate概述 1. **ORM框架**:ORM是Object-Relational Mapping的缩写,它提供了一种方式,让开发者可以使用面向对象的方式来处理关系数据库。Hibernate就是这种技术的典型代表,它将Java对象和数据库表之间的...
一、Hibernate概述 Hibernate是一个强大的持久化框架,它通过提供一种对象-关系映射(ORM)机制,将Java对象与数据库中的记录进行关联。这使得开发者能够用面向对象的方式来处理数据库,提高了开发效率和代码的可...
1. **Hibernate概述**:Hibernate提供了一种在Java应用程序中持久化对象的机制,通过将对象模型转换为关系数据模型,使得开发者可以专注于业务逻辑而不是底层的数据库操作。 2. **安装与配置**:文档详细解释了如何...