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的主要内容,如果未能解决你的问题,请参考以下文章
SSH---Struts2Hibernate5Spring4集成开发
SSH---Struts2Hibernate5Spring4SSH框架整合笔记