Hibernate总结2

Posted qq1171492144

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate总结2相关的知识,希望对你有一定的参考价值。

1.Hibernate持久化类的编写规则

持久化就是将内存中的数据永久存储到关系型数据库中,持久化类指一个java 类与数据库建立了映射关系,这个类就叫做持久化类

持久化类的编写有如下规则

  • 持久化类需要提供一个无参的构造方法
  • 持久化类的属性需要是私有的,对私有属性提供get和set方法
  • 持久化类的属性要尽量使用包装类的类型
  • 持久化类要有一个唯一标识的OID 与表的主键对应
  • 持久化类尽量不要使用final进行修饰

2.Hibernate主键生成策略

技术图片

3.Hibernate的持久化对象的三种状态

3.1 持久化对象三种状态的概述

1.瞬时态:瞬时态的实例是由new命令创建、开辟内存空间对象,不存在持久化标识OID,尚未与Hibernate Session关联

2.持久态:存在持久化标识OID,加到Session缓冲中,并且相关联的Session没有关闭,在数据库中有对应的记录

3.托管态:存在持久化标识OID,并且仍然与数据库中的数据存在关联,只是失去了与当前Session的关联

3.2 持久化对象三种状态的转换

技术图片

4.hibernate的一级缓存

hibernate的一级缓存就是Session缓存,Session缓存是一块内存空间,用来存放相互管理的Java对象,Hibernate的一级缓存的作用就是减少数据库的访问次数

Hibernate的一级缓存特点

  • 当应用程序调用Session接口的save(),update(),saveOrUpdate()时,如果Session缓存中没有相对应的对象,Hibernate就会自动的把从数据库查询到的相应对象的信息加入到一级缓存中
  • 当调用Session接口的load(),get()方法时,以及Query接口的list(),iterator()方法时,会判断缓存中是否存在该对象,有则返回,不会查询数据库,如果缓存中没有要查询的对象,在到数据库中查询相应的对象,并添加到一级缓存中
  • 当Session调用close()方法时,Session缓存会被清空

 

以上是关于Hibernate总结2的主要内容,如果未能解决你的问题,请参考以下文章

struts2hibernate和SSH的实现

SSH---Struts2Hibernate5Spring4集成开发

SSH---Struts2Hibernate5Spring4SSH框架整合笔记

SSH---Struts2Hibernate5Spring4散点知识

步入社会后,年前小总结

Hibernate入门