为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate缓存策略

难度中级
时长34分
学习人数
综合评分9.63
124人评价 查看评价
9.7 内容实用
9.6 简洁易懂
9.6 逻辑清晰
打卡 。。。。。。
昨天面试被问到了。。讲不清楚 哎
hibernate.cfg.xml
-------------------
hibernate 3.3配置二级缓存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
hibernate.cfg.xml
-------------------
hibernate 4.0以后配置二级缓存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
query.list()和query.iterate()区别

1.返回的类型不同:
list()返回List;iterate()返回Iterate。

2.查询策略不同:
list()直接发送sql语句,查询数据库;
iterate()发送sql语句,从数据库取出id,然后先从缓存中根据id查找对应信息,
有就返回结果,没有就根据id发送sql语句,查询数据库。

3.返回对象不同:
list()返回持久化实体类对象;
iterate()返回代理对象。

4.与缓存的关系不同:
list()只缓存,但不使用缓存(查询缓存除外);
iterate()会使用缓存。
程序效率提升明显,挺好的视频
希望把工程包也共享出来,谢谢
倒个包倒了一个多小时,不是少这个就是少那个,自己都醉了,不过总算可以了,谢谢老师了
可以可以---
1.一级缓存 Session缓存 会话级缓存
2.一级缓存的生命周期和Session相同 Session销毁一级缓存也就会销毁

evict清空Session中的一级缓存
clear清空一级缓存中的容器的数据
3.一级缓存会对程序性能影响
相关方法 Query query=session.createQuery("hql语句");
query.list()不会使用到一级缓存

query.iterate()会使用到一级缓存
Session就是一级缓存,第一次去请求时发送一次hql语句将查询的数据放到缓存中,当第二次时不会发送hql语句 先去一级缓存中的容器 map中去查到,如果没有会再次去请求数据库,如果存在直接返回,
使用不同的Session 查询同一对象会多次查询
讲的有点浅
课程须知
学习本门课程之前,建议先了解一下以下知识,会更有助于理解和掌握本门课程: 1、掌握ORM框架的基础知识 2、能使用Hibernate对Mysql数据库进行简单操作
老师告诉你能学到什么?
1、ORM框架中缓存的基本工作原理 2、Hibernate中缓存的分类和使用 3、掌握使用缓存针对项目进行性能优化的原则

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消