Hibernate_02

package xinfei.code;
/**
 * 一、持久化类的编写规范
 * 		什么是持久化类?
 * 			持久化类:和数据库表做了映射关系的类,我们就可以把这个类称之为持久化类
 * 		hibernate对持久化类的要求规范:
 * 			1.需要提供一个无参的构造方法(hibernate是通过无参构造器来实例化对象的)
 * 			2.所有属性都要私有化
 * 			3.需要对外提供get/set方法
 * 			4.基本类型和包装类型,建议使用包装类型
 * 			5.持久化类不能被final修饰
 * 				如果修饰了会怎么样?	不能被继承
 * 				修饰的结果:延迟查询会变成立即查询
 * 					延迟查询解释:延迟查询是hibernate的一种优化手段
 * 					,如果暂时不需要使用这些数据的时候,就不连接数据库查询
 * 					如果被final修饰了当前的持久化类,就意味着我们的hibernate失去了延迟加载的优化手段
 * 				原因:get查询返回的是当前类型的对象;load查询返回的是代理对象
 * 			6.持久化类必须要有标识属性(OID属性)
 * 				什么是标识属性?
 * 					a.只要一个类和数据库的一张表有了映射关系,我们就可以把这个类称为持久化类
 * 					b.只要一个类中的某个属性和数据库表里面的主键做了映射关系,我们就可以把这个属性称为标识属性或OID		
 * 				为什么必须要有标识属性呢?
 * 					hibernate就是根据标识属性来区分多个对象是否是同一个对象
 * 					
 * 				不同的技术用来区分多个对象是否为同一个
 * 					a.jvm是通过判断内存地址值,b.数据库.是判断主键,c.hibernate判断oid
 * 				结论:持久化类中,必须要有oid属性,oid属性不能相同必须唯一
 * 二、hibernate的一级缓存
 * 		Hibernate的一级缓存就是指Session缓存,Ssesion缓存是一块内存空间,用来存放相互管理的java对象
 * 		,在使用Hibernate查询对象的时候,首先会使用对象属性的OID值在Hibernate的一级缓存中进行查找
 * 		如果找到匹配OID值得对象,就直接将该对象从一级缓存中取出使用,不会再查询数据库
 * 		如果没有找到相同OID值得对象,则回去数据库中查找相应数据,当数据库中查询到所需数据时,还该数据信息也会方法一级缓存中
 * 	  一级缓存的作用:Hibernate的一级缓存的作用就是减小数据库的访问次数
 *    Hibernate的一级缓存有如下特点:
 *    	1. 当应用程序调用Session接口save()/update()时,如果Session缓存中没有
 *    	          相应的对象,Hibernate就会自动的把数据库中查询的相应对象信息加入到一级缓存中
 * 		2.当调用Session接口的load()、get()方法,以及Query接口的list/iterator()方法
 * 			会判断缓存中是否存在该对象,有则返回,不会查询数据库,如果缓存中没有要查询的对象
 * 			再去数据库中查询对应对象,并添加到一级缓存中
 * 		3.当调用Session的close()方法时,Session缓存会被清空
 * 	对象的三种状态
 * 		1.瞬时态:瞬时态也称为临时态或者自由态,瞬时态的实例是由new创建、开辟内存空间的对象
 * 		  ,不存在持久化标识OID(相当于主键值),尚未与Hibernate Session关联,在数据库中也没有记录
 * 		  瞬时态的对象在内存中是孤立存在的,与数据库中的数据无任何关联
 * 		2.持久态:持久态的对象存在持久化标识OID,加入到了Session缓存中,并且相关联的Session
 * 		 没有关闭,在数据库中有相应的记录,每条记录只对应唯一的持久化对象,需要注意的是
 * 		持久化对象是在事物还未提交前变成持久态的
 * 		3.托管态:实例与Session的关联被关闭就变成了托管态
 * @author zx
 *
 */
public class text02 {

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值