hibernate的介绍

发表时间:2017-05-17 17:25:37 浏览量( 154 ) 留言数( 0 )

学习目标:

1、了解Hibernate的历史

2、了解Hibernate和JDBC的区别

3、了解Hibernate的优势


学习过程:

一、hibernate介绍

1、hibernate作者介绍

这里我特别的想介绍一下hibernate之父Gavin King,如今的Gavin King已经是JBoss核心成员之一、EJB3.0专家委员会成员、
《Hibernate In Action》作者。


虽然现在他头上顶着很多光环,但是如果时间回到2001年,那个时候的Gavin King和所有的程序员

一样都只是一个普通的程序员,天天干着重复的活,不过他这个人的性格充满激情、脾气倔强而且永不言败,当他不断的重复工作的时候,有一天终于忍不住了,向他的上司提出了使用EJB的Entity bean 1.1时,浪费了好多时间在处理Entity Bean的体系架构上,却没有花时间在核心业务逻辑的开发上,而且CMP给我们的限制太多了。我觉得肯定有更好的解决的方案。我们可以设计出比Entity Bean更好的方案,当然他的上司对此可不这样认为,因为EJB是业界的标准,谁也不会对此有任何的怀疑,但是Gavin King的性格不会就这样屈服的,于是用了两年的时间终于开发出了hibernate。而两年前他对那个对SQL和数据库一窍不通,现在居然会成为全世界J2EE数据库解决方案的领导者。所有大家不要怀疑自己的能力,也许你也可以这样。

2、hibernate是什么

要知道什么是hibernate,首先需要理解什么是ORM,ORM的全称是:Object-Relational Mapping,对象-关系映射,实现实体域对象持久化封装数据访问的细节。因为我们java操作的基本单位是对象,而数据库操作的基本单位是表,在我们以前的实现中常常对象和表之间是有一定的对应关系的,但是两者之间还是不一样的,面向对象编程和数据库编程的思维始终感觉是不太一样的。ORM就是解决这个问题的一种思想。实现ORM的框架有很多比如:myBatis,hibernate,siena等等。

所以Hibernate是什么呢?它是世界主流的,实现持久层,轻量级一个开源框架,它是采用ORM模式实现一个优秀的java组件,是我们可以用面向对象的思想来操作数据库,节省了我们开发处理数据的时间。它提供了强大、高效的将java对象进行持久化操作的服务。

3、hibernate和jdbc是什么关系,hibernate有什么优点

hibernate是对JDBC进行了非常轻量级的对象封装,所有hibernate还是依赖JDBC的。hibernate不仅仅只是简单封装JDBC,与原始的jdbc对比使用hibernate还有很多优点。

  • 使用更为简洁的hql(Hibernate query language)数据查询语言,与使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,hql操作的是对象。

  • 操作的对象不同,从对象的角度操作数据库,体现了面向对象思想。JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。

  • 数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。

  • 可移植性比较好,没有侵入性,设计架构良好,三层架构的理念是上层对下层的依赖,只是依赖接口不依赖具体实现。你可以很容易的在mysql和oracle数据库之间进行迁移。

当然网上也有很多不同的意见,比如有的人说使用原始的JDBC的效率才是最高的,当然我个人而言也不否认在某些情况下也许使用JDBC的效率更高,但是hibernate可以有更多的方式提高操作数据库的效率,比如二级缓存等等。就总体而言hibernate在一些大型项目中还是非常推荐使用的。

二、下载hibernate

你可以在hibernate的官方网站上面下载最新版的hibernate,现在hibernate已经不仅仅只是支持ORM,还有很多其他的框架,这里我们只需要下载ORM就可以了。下载网址是:

http://hibernate.org/

下载完成之后就解压就可以了,文件里面包含了hibernate的必需的一些包和想象的文档资料。