文档章节

Hibernate基本概念

hchen1982
 hchen1982
发布于 2016/12/09 10:38
字数 901
阅读 19
收藏 4

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

什么是Hibernate?

      Hibernate,翻译过来是冬眠的意思,其实对于对象来说就是持久化。

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

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

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

我们从三个角度理解一下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的核心就是使我们可以用面向对象的思维来操作关系型数据库。

本文转载自:http://blog.csdn.net/jiuqiyuliang/article/details/39078749/

共有 人打赏支持
hchen1982
粉丝 7
博文 40
码字总数 3753
作品 0
无锡
高级程序员
Hibernate 基本概念

这一段正在学Hibernate,首先要了解下Hibernate大概的意思,究竟什么是Hibernate,到底它是个什么东西,必须从整体上把握下Hibernate在整个开发过程中所起到的作用,这样对更深入的理解很有帮...

ke_ry
2016/11/15
0
0
java web开发 如何stepbystep?如何从入门到精通?

我学java web有半年时间了,熟悉了以下基本概念:从jsp-->javabean-->servlet-->struts-->hibernate-->webwork-->struts2; tomcat; 还没有独立的做过中等规模以上的项目。 对与开源中国里的j......

吉米123
2014/01/03
147
0
java.lang.StackOverflowError异常解决

在hibernate一对多映射中,两个实体都重写了toString()方法,,应用程序递归太深了,所以发生了堆栈溢出。解决方法就是将多的一方对象里面重写的toString方法去掉,或者两个对象里面重写的t...

大黄有故事
2016/11/05
0
0
Hibernate基本原理(一)

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

architect刘源源
01/11
7
0
Hibernate 介绍及基础应用

一、Hibernate入门基本概念 1、对象持久化: 对象是只能存在内存中,而内存不能永久的保存数据。如果要永久保存对象的状态,需要进行对象的持久化,即把对象存储到专门的数据库中。关系数据库...

Winnie007
2015/08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql在查询结果前加序号

在查询结果前加序号: set @rn=0; select @rn:=@rn+1 as 序号,你查询的结果集

lyle_luo
19分钟前
1
0
webpack 工作原理

暂无内容

agenyun
27分钟前
1
0
iOS返回指定控制器或者关闭自己当前控制器

RT。。。 这种情况其实很常见,比如,从A界面进入B界面在进入C界面,如果返回时,直接从C回到A,怎么做?或者说无限跳转进入BCDEF...XYZ。。。之后直接返回某一个界面,怎么做? 其实这种的有...

RainOrz
28分钟前
1
0
超好用的在线PDF转Word网站,真后悔没早发现

把PDF转成Word还是经常干的事情。 然而,下载一大堆软件来干这件简单的事情还是显得过于繁琐和复杂。 何况很多网上的软件安装常常出问题,在度娘里面搜索,然后下载又会经常遇到钓鱼网站,电...

dillonxiao
31分钟前
1
0
文章收藏

对接口或者方法进行性能测试的工具contiperf: http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/1127/205747.html...

月下狼
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部