5Hibernate高级应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Hibernate中使用EhCache
EhCachcProvider类位于Hibernate3.jar包中,而不是位于 ehcache-1.1.jar包中。EhCache有自己的配置文档,名为ehcache.xml。
在Hibernate中使用EhCache
此外,还需要在持久化类的映射文件中进行配置。
»持续性
(2)Hibernate的事务 Hibernate直接使用JDBC连接和JTA资源,不添加任 何附加锁定行为 。
数据库操作的不确定情况:
–脏数据 –不可重复读取 –虚读
在Hibernate配置文件中设置隔离级别 JDBC连接数据库使用的是默认隔离级别,即可重读 Repeatable Read)。在Hibernate的配置文件中,可以修改 隔离级别:
良好的缓存管理机制以及合理的缓存应用模 式往往是性能提升的关键。
(2)数据缓存策略
ORM的数据缓存包含如下层次: 1. 事务级缓存:在当前事务范围内的数据缓存策略。
2.
3.
应用级缓存:在某个应用中,或者应用中某个独
立数据访问子集中的共享缓存。 分布式缓存:在多个应用实例,多个JVM之间共 享的缓存模式。
1. DB是否与其他应用共享
2.
应用是否需要部署在集群环境中
二级缓存
如果数据满足以下条件,则可以纳入缓存管 理:
1. 数据不会被第三方应用更改
2.
3. 4. 5.
Hale Waihona Puke Baidu
数据大小在可接受的范围内
数据更新频率较低 同一数据可能会被系统频繁利用 非关键数据
二级缓存
不适合放入缓存的数据:
经常被修改的数据。
财务数据,绝对不允许出现并发。
1:读操作未提交(Read UncOmmitted)。
2:读操作已提交(Read Committed)。
4:可重读(Repeatable Read)。 8:可串行化(Serializable)。
设置隔离级别:
<property name=“hibernate.connection.isolation”>4</property>
在Hibernate中使用EhCache
EhCache是一个纯Java程序,可以在Hibernate中作 为一个插件引入。它具有运行快、结构简单、占用内存小、 依赖性小、支持多CPU服务器和文档齐全的特点。 在Hibernate中使用EhCache,需要在 hibernate.cfg.xml中设置如下:
与其他应用共享的数据
Hibernate中本身并未提供二级缓存的产品化实现, 而是通过第三方缓存组件提供了接入接口。
Hibernate第三方缓存实现
Hibernat中提供的面向第三方缓存实现的接口: 1. EhCache 2. OpenSymphony OSCache 3. SwarmCache 4. JBossCache
<property name=“hibernate.jdbc.batch_size”> 20</property>
然后在一定时刻提交更改并清空Session的 Cache:
二级缓存
二级Cache是SessionFactory范围内的缓存, 所有的Session共享同一个二级Cache。
在引入二级缓存时必须考虑以下两个问题:
在Hibemate中使用JDBC事务的例子
(3)事务和Session
DB操作必须在Session管理下进行,但不推 荐一次简单的DB源自调用就打开和关闭一次 Session。 关于Hibernate和Session的事务管理, Spring框架提供了非常完美的解决方案。
(3)Hibernate数据缓存
Hibernate的数据缓存分为两个层次: 1. 内部缓存(也称为一级缓存) 2. 二级缓存 Hibernate中缓存在以下情况中发挥作用: 1. 通过id(主键)加载数据时 2. 延迟加载
一级缓存
如果要同步很大数量的对象,就需要有效地管理 Cache.
在保存50000个或更多对象时,程序可能抛出 OutOfMemoryException异常,因为Hibernate在一级 Cache缓存了新加入数据库的所有对象。要解决这个问 题,首先把JDBC批处理数量设置为一个合理的数值(一 般是10~20)。 在Hibernate.cfg.xml中设置如下:
在Hibernate中使用EhCache
如果希望把整个Student的散装属性都加入到二 级缓存中还需要在Student.hbm.xml文件的<class> 标记中加入<cache>子标记,如下面代码所示:
缓存同步策略
缓存同步策略决定了数据对象在缓存中的存 取规则。Hibernate提供4种内置的缓存同步策略:
1.
2. 3. 4.
事务(transactional)
读写(read-write) 非严格读写(nonstrict-read-write) 只读(read-only)
Hibernate事务
1、事务控制
(1)事务的特性 事务是一步或几步操作组成的逻辑执行单元。 事务具备4个特性:
»原子性 »一致性 »隔离性
Hibernate高级应用
LOGO
Hibernate性能优化
1.DB设计
2.API的正确使用
3.主配置参数
4.映射文件优化 5.一级缓存的管理 6.二级缓存的管理 7.事务控制策略
Hibernate数据缓存
(1)数据缓存概述 在特定硬件基础上,缓存往往是提升系统性 能的关键因素。 对于ORM而言,缓存更为重要。
相关文档
最新文档