Hibernate持久层(原理、基本流程)

Hibernate是一款开源的ORM框架,它简化了Java应用与关系数据库的交互。本文介绍了Hibernate的持久化原理,包括配置文件、持久化步骤以及主要接口的作用,如Configuration、SessionFactory、Session和Transaction,帮助开发者理解如何通过Hibernate进行对象的持久化操作。

Hibernate持久层

Java中对象的持久化有3种方式:

(1)序列化对象,存到格式化的文本中;

(2)将对象持久化到XML文档中;

(3)持久到数据库中,一般指关系型数据库。

 

以前:表示层 业务逻辑层 数据库层

 

其中业务逻辑层:除了负责业务逻辑意外,还要负责相关的数据库操作(增删改查)

 

为了使业务逻辑层的开发人员能真正专注于业务逻辑的开发,不纠缠与底层的实现细节,可以把数据访问从业务逻辑中分离出来,这就形成了单独地持久层。

 

现在:表示层 业务逻辑层 持久层 数据库层

 

对象关系映射:ORM

对象之间存在着关联和继承关系,但是在关系数据库中,数据之间无法表达这些多对多关系。

对象-关系映射(ORM)实现了Java应用中对象到关系数据库中表的自动持久化,并使用元数据(XML文件)来描述对象和数据库之间的映射关系。

 

ORM完成的是将数据从一种表现形式转换为另一种表现形式。

因此,ORM对象-关系映射系统一般以中间件的形式存在。

Hibernate就是一款实现了ORM的框架。

 

Hibernate

是一个开放源代码的对象-关系映射(ORM)框架,它对JDBC进行了轻量级的封装,开发人员可以使用面向对象的编程思想来进行持久层开发,操作数据库。

还可以使用Hibernate提供的HQL直接从数据库中获得Java对象。

 

Hibernate:主要由hibernate.properties + XML Mapping两个文件来实现

Hibernate.properties:用来配置Hibernate和底层数据库的连接信息;(也可以用hibernate.cfg.xml

XML Mapping:映射文件,用来完成持久化类和数据表之间的映射关系。

 

Hibernate的工作原理

Hibernate实现ORM框架。

 

持久化过程中,会用到5个接口:

Configuration接口 + SessionFactory接口 + Session接口 + Transaction接口 数据查询的Query接口

通过这些接口,可以对持久化对象进行操作,还可以及逆行事务控制。

 

持久化步骤:

(1)Hibernate的初始化,创建Configuration对象。

这一步用来读取XML配置文件和映射文件的信息到Configuration对象的属性中,具体为:

a) 从Hibernate配置文件Hibernate.cfg.xml中读取配置信息,存放到Configuration对象中;

b) 根据配置文件中的mapping元素加载所有实体类对应的映射文件到Configuration对象。

(2)创建SessionFactory实例

通过Configuration对象读取到的配置文件信息创建SessionFactory,即将Configuration对象内的配置信息存入SessionFactory的内存(属性)中。SessionFactory充当数据存储源的代理,并负责创建Session对象。(到此Configuration对象的使命就结束了)

(3)创建Session实例,建立数据库连接

Session通过SessionFactory打开,创建一个Session对象,就相当于与数据库建立了一个新的连接!Session对象用来操作实体对象,并把这些操作转换成对数据库中数据的增加、删除、查询和修改操作!

(4)创建Transaction实例,开始一个事务

Transaction用于事务管理,一个Transaction对象对应的事务可以包括多个操作。在使用Hibernate进行增加、删除和修改操作时必须先创建Transaction实例。

(5)利用Session的方法进行持久化操作。

将实体对象持久化到数据库中

(6)提交操作结果并结束事务。

对实体对象的持久化操作结束后,必须提交事务。

(7)关闭Session,与数据库断开连接。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值