前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >碎片化 | 第四阶段-53-hibernate持久化session问题解决-视频

碎片化 | 第四阶段-53-hibernate持久化session问题解决-视频

作者头像
码神联盟
发布2018-04-03 11:18:41
4570
发布2018-04-03 11:18:41
举报
文章被收录于专栏:码神联盟码神联盟

视频内容

如清晰度低,可转PC网页观看高清版本:

http://v.qq.com/x/page/h0568t95mz4.html

Hibernate特性

延迟加载

做一些查询数据操作时,有一些API方法具有延迟的机制,即:我们使用API去操作查询数据,此时并没有调用我们的sql语句,而是在使用对象的时候,才去调用sql加载数据

代码语言:javascript
复制
session.get方法//无延迟加载特性
query.list()//无延迟加载特性
session.load方法//具有延迟加载特性
query.iterate()//具有延迟加载特性

问题(并发业务):

代码语言:javascript
复制
我调用了sql语句,查询出数据,在赋值界面,.....no session

问题流程:请求->filter控制器->Action->DAO(关闭session)->result->jsp

解决:

代码语言:javascript
复制
1:将数据放到缓存

    请求->filter控制器->Action->DAO(关闭session)->result->jsp(缓存)

2:Spring中解决,可以通过拦截器、AOP等处理,通过opensessioninviewfilter组件(web.xml),可以处理session资源、集中处理

解决流程:
    请求->filter控制器->Action->DAO(不关session)->result->jsp->关闭session

持久化

代码语言:javascript
复制
1:临时状态(Transient)
    new xxx()
    可以被回收站进行回收,gc


2:持久状态(Persisten)

    get/load/find/exc
    不可以被回收站进行回收

3:游离状态(Detached)

    只能有持久化状态演变而来
    evict、close、clear
    可以被回收站进行回收

缓存(性能优化)

代码语言:javascript
复制
1:一级缓存(自动开启)

在我们使用对象的时候,查询操作,会自动将数据进行缓存,生命周期和session同步
第一次查询,是通过调用sql语句查询,第二次查询,就是从缓存中取值

2:二级缓存

3:查询缓存
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码神联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 延迟加载
  • 持久化
  • 缓存(性能优化)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档