Hibernate框架(二)

1、概念介绍

  • ORM,关系对象映射,就是讲Java 中的一个对象与数据库中表建立映射关系,从而操作对象就可以操作表。
  • 什么是持久化?将内存中的一个对象持久化到数据库的过程。Hibernate 框架就是用来进行持久化的框架。
  • 持久化类,一个Java 对象与数据库中的表建立了映射关系,那么这个类在Hibernate 中成为持久化类。
  • 持久化类的编写规则
    Hibernate框架(二)
  • 主键的分类
    Hibernate框架(二)
  • Hibernate 主键生成策略
    Hibernate框架(二)
    Hibernate框架(二)
  • 持久化类的三种状态,Hibernate 是持久化框架,通过持久化类完成ORM 操作,为了更好地管理持久化类,将持久化类分成三种状态。瞬时态,没有唯一的标识OID,没有被session 管理,称为瞬时态对象;持久态,有唯一的标识OID,被session 管理,称为持久态对象;脱管态,有唯一的标识OID,没有被session 管理,称为脱管态对象。持久化类的持久态对象,可以自动更新数据库。
    Hibernate框架(二)
  • 三种状态的转换
    Hibernate框架(二)
    Hibernate框架(二)

2、Hibernate 的一级缓存

持久化态对象能够自动更新数据库,依赖的原理就是Hibernate 的一级缓存。
Hibernate框架(二)

  • 缓存,是一种优化的方式,将数据存入到内存中,使用的时候直接从缓存中获取,不用通过存储源。
  • Hibernate 框架中提供了优化手段:缓存、抓取策略。Hibernate 中提供了两种缓存机制:一级缓存、二级缓存。
  • Hibernate 的一级缓存:称为是Session 级别的缓存,一级缓存生命周期与Session 一致(一级缓存是由Session 中一系列的Java 集合构成)。一级缓存是自带的不可卸载。
    Hibernate框架(二)
  • Hibernate 的二级缓存:是SessionFatory 级别的缓存,需要配置,现在不用了,因为有redis。
  • Hibernate 的一级缓存快照区
    Hibernate框架(二)

3、Hibernate 的事务管理

  • 事务,指的是逻辑上的一组操作,组成这组操作的各个逻辑单元要么全部成功,要么全部失败。
  • 事务特性:原子性(事务不可分割)、一致性(事务执行前后,数据的完整性保持一致)、隔离性(一个事务执行过程中,不应该受到其他事务的干扰)、持久性(事务执行完成后,数据持久到数据库)。
  • 如果不考虑隔离性,引发安全问题:读问题,脏读(一个事务读到另一个事务未提交的数据)、不可重复读(一个事务读到另一个事务已经提交update 的数据,导致多次查询结果不一致)、虚读(一个事务读到另一个事务已经提交insert 的数据,导致多次查询结果不一致);写问题(了解),引发两类丢失更新。解决方法,设置事务隔离级别。 Hibernate框架(二)
  • 事务处于Service层。

4、Hibernate 其他的API

Query 接口,用于接收HQL(Hibernate Query Language),查询多个对象。
Hibernate框架(二)
Criteria接口,QBC(Query By Criteria),主要用于条件查询,是一种更加面向对象的查询方式。
Hibernate框架(二)
SQLQuery用于接收SQL,特别复杂情况下使用SQL。一般使用前两个就可以了。

结束!!!