Java程序员从笨鸟到菜鸟之(五十)细谈Hibernate(一)hibernate基本概念和体系结构

长平狐 发布于 2012/11/12 11:43
阅读 106
收藏 0

        数据库操作是当今传统应用软件不可缺少的一部分,几乎所用的应用性系统和交互性软件都离不开数据库的支持,所以对数据库数据库的操作也是一个必不可少的工作,在java的世界里,传统的数据库访问就是jdbc数据库访问,刚开始学习的时候应该还能满足我们的需求,但真正在实际应用中,其繁琐的操作,开发效率低效,代码冗余等不可避免的缺点也是大家有目共睹的,所以,一套高效简便的数据库访问框架在这种繁琐工作中诞生了,这就是我们如今java世界里风靡全球的Hibernate框架(这个应该不夸张吧),所以从今天开始,我和大家就一起进入hibernate的复习。

Hibernate百度名片:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

从上边百度名片中,我们可以看出:

1)         其实hibernate底层依然是jdbc实现的,只不过jdbc的繁琐操作都让框架来替我们做了,程序员已经从繁琐的jdbc操作中解脱出来了。

2)         Hibernate是一个对象关系映射模型,也就是说,它主要操作的是对象和关系之间的映射,对象,即为我们java中类的对象,只不过类一般是一些实体类

3)         Hibernate不仅仅是在web上的应用框架,这是很多初学者的任务,认为hibernate只是用在web开发中的。其实这是一个很错误的观点

持久化:

       上面我们看出hibernate主要完成的是一个数据持久化的重任,很多人应该想了,这个,持久化是什么啊?下面我们就来说一下这个持久化:持久化是将程序数据在持久状态和瞬时状态间转换的一种机制,持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

(1)瞬时状态(transient)

保存在内存中的数据。程序退出后,数据就消失了。

(2)持久状态(Persisten)

 

      在一定周期内保持不变就是持久化,持久化是针对时间来说的. 数据库中的数据就是持久化了的数据,只要你不去删除或修改. 比如在IE浏览器中一次Session会话中Session对象变量也是不变的,是Session容器中持久化 ,对象持久化的方式有很多种,根据周期不同有,page,Session,Application,

  hibernate为应用程序提供了高效的O/R关系映射和查询服务,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。他也是对对象持久化一个很好的实现。简单示例一下:

                                             

 

对象关系映射

        从上边我们可以看出,Hibernate是一个开放源代码的对象关系映射框架,对象/关系数据库映射(object/relational mapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。ORM,即Object- Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的 SQL语句打交道,只要像平时操作对象一样操作它就可以了。 对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论应当基于三个核心原则: 
        
简单:以最基本的形式建模数据。 
        
传达性:数据库结构被任何人都能理解的语言文档化。 
        
精确性:基于数据模型创建正确标准化了的结构。 

 

下面我们就一起来认识一下hibernate,Hibernate能做什么?

Hibernate能帮助我们利用面向对象的思想,开发基于关系型数据库的应用程序

第一:将对象数据保存到数据库

第二:将数据库数据读入对象中

 

Hibernate体系结构:

一个非常简要的Hibernate体系结构的概要图:

                                                  

从这个图可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。

我们来更详细地看一下Hibernate运行时体系结构。由于Hibernate非常灵活,且支持多种应用方案,所以我们这只描述一下两种极端的情况。“轻型”的体系结构方案,要求应用程序提供自己的JDBC 连接并管理自己的事务。这种方案使用了Hibernate API的最小子集:

                                                   

“全面解决”的体系结构方案,将应用层从底层的JDBC/JTA API中抽象出来,而让Hibernate来处理这些细节。

 

好了,hibernate基本概念和体系结构就先介绍到这,下一篇博客我将会和大家一起来开发我们的第一个hibernate应用程序,谢谢大家支持。

 



原文链接:http://blog.csdn.net/csh624366188/article/details/7556342
加载中
返回顶部
顶部