hibernate.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:5 大小:35KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HibernateSession&TransactionHIbernate中的SessionSession的特点1、不是线程安全的,应该避免多个线程共享同一个Session实例2、Session实例是轻量级的,所谓轻量级:是指他的创建和删除不需要消耗太多资源3、Session对象内部有一个缓存,被称为Hibernate第一缓存,他存放被当前工作单元中加载的对象,每个Session实例都有自己的缓存。HibernateSession缓存被称为Hibernate的第一级缓存。SessionFactory的外置缓存称为Hibernate的二级缓存。这两个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存存放元数据和预定义SQL,SessionFactory的内置缓存是只读缓存。HibernateSession缓存的三大作用:1,减少数据库的访问频率,提高访问性能。2,保证缓存中的对象与数据库同步,位于缓存中的对象称为持久化对象。3,当持久化对象之间存在关联时,Session保证不出现对象图的死锁。Session如何判断持久化对象的状态的改变呢?Session加载对象后会为对象值类型的属性复制一份快照。当Session清理缓存时,比较当前对象和它的快照就可以知道那些属性发生了变化。Session什么时候清理缓存?1,commit()方法被调用时2,查询时会清理缓存,保证查询结果能反映对象的最新状态。3,显示的调用session的flush方法。session清理缓存的特例:当对象使用native生成器时会立刻清理缓存向数据库中插入记录。TransactionTransanction接口是Hibernate的数据库事务接口,用于管理事务,他对底层的事务作出了封装,用户可以使用Transanction对象定义自己的对数据库的原子操作,底层事务包括:JDBCAPI,JTA(JavaTransactionAPI)。Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBCTransaction的封装,或者是JTATransaction的封装