Hibernate基本原理(一)

 在开始学Hibernate以前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难仍是眼高手低?数据库

      若是只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么作的,你也能够很快上手。架构

      这难道是学习的最终目的吗?app

      不是,绝对不是。咱们须要了解这门技术的基本概念,它究竟是什么,它是干什么的,它有什么优缺点。下面我就带领你们一块儿回顾一下Hibernate:框架

 

什么是Hibernate?

 

      Hibernate,翻译过来是冬眠的意思,正好如今已经进入秋季,世间万物开始准备冬眠了。其实对于对象来讲就是持久化。学习

 

扫盲--------------------------------------------------------------------------------------------------------测试

      持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,固然也能够存储在磁盘文件中、XML数据文件中等等。spa

 

持久化是将程序数据在持久状态和瞬时状态间转换的机制。
 hibernate

JDBC就是一种持久化机制。文件IO也是一种持久化机制。
 翻译

平常持久化的方法:
一、将鲜肉冷藏,吃的时候再解冻的方法也是。
二、将水果作成罐头的方法也是。orm

结束----------------------------------------------------------------------------------------------------------

  

咱们从三个角度理解一下Hibernate:

 

1、Hibernate是对JDBC进一步封装

       原来没有使用Hiberante作持久层开发时,存在不少冗余,如:各类JDBC语句,connection的管理,因此出现了Hibernate把JDBC封装了一下,咱们不用操做数据,直接操做它就好了。
 

2、咱们再从分层的角度来看

       咱们知道很是典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,并且持久层的框架还有不少,好比:IBatis,Nhibernate,JDO,OJB,EJB等等。

 

3、Hibernate是开源的一个ORM(对象关系映射)框架

      ORM,即Object-Relational Mapping,它的做用就是在关系型数据库和对象之间作了一个映射。从对象(Object)映射到关系(Relation),再从关系映射到对象。这样,咱们在操做数据库的时候,不须要再去和复杂SQL打交道,只要像操做对象同样操做它就能够了(把关系数据库的字段在内存中映射成对象的属性)。

 

Hibernate的核心:

 

                 

 

     从上图中,咱们能够看出Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。Hibernate的全部内容都在这了。那咱们从上到下简单的认识一下,每一个接口进行一句话总结。

一、Configuration接口:负责配置并启动Hibernate

二、SessionFactory接口:负责初始化Hibernate

三、Session接口:负责持久化对象的CRUD操做

四、Transaction接口:负责事务

五、Query接口和Criteria接口:负责执行各类数据库查询

 

注意:Configuration实例是一个启动期间的对象,一旦SessionFactory建立完成它就被丢弃了。

 

Hibernate的优/缺点:

 

优势:

一、更加对象化

      以对象化的思惟操做数据库,咱们只须要操做对象就能够了,开发更加对象化。

二、移植性
      由于Hibernate作了持久层的封装,你就不知道数据库,你写的全部的代码都具备可复用性。

三、Hibernate是一个没有侵入性的框架,没有侵入性的框架咱们称为轻量级框架。

      对比Struts的Action和ActionForm,都须要继承,离不开Struts。Hibernate不须要继承任何类,不须要实现任何接口。这样的对象叫POJO对象。

四、Hibernate代码测试方便。

五、提升效率,提升生产力。

 

缺点:

一、使用数据库特性的语句,将很难调优

二、对大批量数据更新存在问题

三、系统中存在大量的攻击查询功能

 
总结:

 

      Hibernate可使咱们采用对象化的思惟操做关系型数据库。这篇博文最主要的目的是从总体上认识Hibernate,内容可能会有点空,不是特别详细,可是后面会有更加针对性的博文进行讲解。敬请期待。

相关文章
相关标签/搜索