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,与数据库断开连接。

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

724

被折叠的 条评论
为什么被折叠?



