在开始学Hibernate以前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难仍是眼高手低?数据库
若是只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么作的,你也能够很快上手。架构
这难道是学习的最终目的吗?app
不是,绝对不是。咱们须要了解这门技术的基本概念,它究竟是什么,它是干什么的,它有什么优缺点。下面我就带领你们一块儿回顾一下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的全部内容都在这了。那咱们从上到下简单的认识一下,每一个接口进行一句话总结。
一、Configuration接口:负责配置并启动Hibernate
二、SessionFactory接口:负责初始化Hibernate
三、Session接口:负责持久化对象的CRUD操做
四、Transaction接口:负责事务
五、Query接口和Criteria接口:负责执行各类数据库查询
注意:Configuration实例是一个启动期间的对象,一旦SessionFactory建立完成它就被丢弃了。
优势:
一、更加对象化
以对象化的思惟操做数据库,咱们只须要操做对象就能够了,开发更加对象化。
二、移植性
由于Hibernate作了持久层的封装,你就不知道数据库,你写的全部的代码都具备可复用性。
三、Hibernate是一个没有侵入性的框架,没有侵入性的框架咱们称为轻量级框架。
对比Struts的Action和ActionForm,都须要继承,离不开Struts。Hibernate不须要继承任何类,不须要实现任何接口。这样的对象叫POJO对象。
四、Hibernate代码测试方便。
五、提升效率,提升生产力。
缺点:
一、使用数据库特性的语句,将很难调优
二、对大批量数据更新存在问题
三、系统中存在大量的攻击查询功能
Hibernate可使咱们采用对象化的思惟操做关系型数据库。这篇博文最主要的目的是从总体上认识Hibernate,内容可能会有点空,不是特别详细,可是后面会有更加针对性的博文进行讲解。敬请期待。