当前位置: 移动技术网 > IT编程>开发语言>Java > 详解Java中Hibernate的基本原理

详解Java中Hibernate的基本原理

2019年07月19日  | 移动技术网IT编程  | 我要评论

在开始学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可以使我们采用对象化的思维操作关系型数据库。

总结

以上所述是小编给大家介绍的java中hibernate的基本原理,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网