【SSH进阶之路】Hibernate基本原理(一)

转载 2017年06月30日 20:24:29

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

      如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。

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

      不是,绝对不是。我们需要了解这门技术的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领大家一起回顾一下Hibernate:


什么是Hibernate?


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

 

扫盲--------------------------------------------------------------------------------------------------------

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

 

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

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

日常持久化的方法:
1、将鲜肉冷藏,吃的时候再解冻的方法也是。
2、将水果做成罐头的方法也是。

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

  

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

 

一、Hibernate是对JDBC进一步封装

       原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,我们不用操作数据,直接操作它就行了。
 

二、我们再从分层的角度来看

       我们知道非常典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。

 

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

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

 

Hibernate的核心:

 

                 

 

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

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

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

3、Session接口:负责持久化对象的CRUD操作

4、Transaction接口:负责事务

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

 

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

 

Hibernate的优/缺点:

 

优点:

1、更加对象化

      以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。

2、移植性
      因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。

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

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

4、Hibernate代码测试方便。

5、提高效率,提高生产力。

 

缺点:

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

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

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

 
总结:

 

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

【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-08-29 07:56:11
  • 20437

【SSH进阶之路】Hibernate基本原理

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低?       如果只是停留在使用的层面上,我相信什么技术...
  • gxjasonkidd033
  • gxjasonkidd033
  • 2014-09-22 13:52:29
  • 309

【SSH进阶之路】Hibernate基本映射(三)

【SSH进阶之路】Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库。 【SSH进阶之路】Hibernate搭建开发环境+简单实例...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-10-17 08:19:27
  • 36320

【SSH进阶之路】Hibernate映射——一对多关联映射(七)

一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。关联关系都是由多端维护,一端维护多端的关系,在加载一端时,可以将多端加载上来。...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-11-16 08:10:16
  • 17015

【SSH进阶之路】【一】Hibernate基本原理

在开始学hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不...
  • Vchen_hao
  • Vchen_hao
  • 2016-12-09 09:15:43
  • 348

【SSH进阶之路】Hibernate映射——多对多关联映射(八)

多对多映射是现实生活中最常见的映射,也是最容易理解的映射。废话少说,直接开始。   映射原理        不论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张做一个关联。用第三张表...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-11-22 08:14:13
  • 15283

【SSH进阶之路】Struts基本原理 + 实现简单登录(二)

上面博文,主要简单的介绍了一下SSH的基本概念,比较宏观,作为初学者能够有一个整体上的认识,个人认为对学习有很好的辅助功能,它不仅仅是一个瞭望塔,更是检验是否真正掌握所有内容的一个前提。       ...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-08-29 07:56:04
  • 17698

公司中 C和C++程序员进阶之路

从一次考试说起。 2010年10月份,综合部邀请我给新入职3个月的员工草拟考试试题,这些同事大部分在公司做的实习,算起来至少也有5、6个月的工作经验了吧。 试题的内容,是针对日常需要面对的...
  • Tony_Wong
  • Tony_Wong
  • 2014-05-02 09:47:44
  • 2014

Node.js进阶之路

  • 2017年07月17日 13:15
  • 42.03MB
  • 下载

java工程师进阶之路

java工程师进阶之路,努力学习20周,奠定CTO 下面是需要掌握的知识点:...
  • u011159417
  • u011159417
  • 2017-03-03 17:18:25
  • 1223
收藏助手
不良信息举报
您举报文章:【SSH进阶之路】Hibernate基本原理(一)
举报原因:
原因补充:

(最多只允许输入30个字)