为什么80%的码农都做不了架构师?>>>

1)Hibenate中一级缓存,也叫做session的缓存,它可以在session范围内减少数据库的访问次数!  只在session范围有效! Session关闭,一级缓存失效!

2)当调用session的save/saveOrUpdate/get/load/list/iterator方法的时候,都会把对象放入session的缓存中。

3)Session的缓存由hibernate维护, 用户不能操作缓存内容; 如果想操作缓存内容,必须通过hibernate提供的evit/clear方法操作。

特点:

        只在(当前)session范围有效,作用时间短,效果不是特别明显!

        在短时间内多次操作数据库,效果比较明显!

 

 

  • 缓存相关几个方法的作用

session.flush();       让一级缓存与数据库同步

session.evict(arg0);    清空一级缓存中指定的对象

session.clear();       清空一级缓存中缓存的所有对象

在什么情况用上面方法?

批量操作使用使用:

Session.flush();   // 先与数据库同步

Session.clear();   // 再清空一级缓存内容

  • 面试题1: 不同的session是否会共享缓存数据?

不会。

User1  u1 = Session1.get(User.class,1);   把u1对象放入session1的缓存

Session2.update(u1);     把u1放入session2的缓存

U1.setName(‘new Name’);

如果生成2条update sql, 说明不同的session使用不同的缓存区,不能共享。

  • 面试题2: list与iterator查询的区别?

list()

一次把所有的记录都查询出来,

会放入缓存,但不会从缓存中获取数据

Iterator

N+1查询; N表示所有的记录总数

即会先发送一条语句查询所有记录的主键(1),

再根据每一个主键再去数据库查询(N)!

会放入缓存,也会从缓存中取数据!

转载于:https://my.oschina.net/u/242479/blog/520937

hibernate缓存理解相关推荐

  1. 初识Hibernate 缓存

    生活就像一杯咖啡,让你我慢慢的品尝,品尝它的苦涩和甘甜...... 一.什么是Hibernate缓存. 解析:白话来说就是缓存数据的容器 官方标准点缓存:是计算机领域的概念,它介于应用程序和永久性数据 ...

  2. Hibernate缓存和加强

    Hibernate缓存和加强 懒加载 懒加载(Load On Demand)是一种独特而又强大的数据获取方法 ,是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较 ...

  3. Hibernate缓存集成IMDG

    1 第三方缓存插件 除了Ehcache这种轻量级的缓存方案外,几乎所有IMDG产品都提供了对Hibernate二级缓存的直接支持,常用的有: Ø  Hazelcast Ø  GridGain Ø  J ...

  4. Hibernate缓存原理与策略 Hibernate缓存原理:

    Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...

  5. Hibernate 缓存机制

    转载:http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html 一.why(为什么要用Hibernate缓存?) Hibernate是一个 ...

  6. Hibernate 缓存

    我这里使用的是Hibernate5.2.0版本 Hibernate缓存分为一级缓存(有的也叫Session缓存)和二级缓存. 一级缓存(Session) 一级缓存的生命周期和session的生命周期一 ...

  7. 【大话Hibernate】hibernate缓存详解

    为什么要用hibernate缓存? hibernate是一个持久层框架,经常访问物理数据库.为了降低应用程序对物理数据源访问的次数,从而提高应用程序的运行性能,我们想到使用hibernate缓存机制. ...

  8. (11) Hibernate 缓存机制

    一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...

  9. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识

    hazelcast 使用 HazelCast的最大功能之一就是对Hibernate第二级缓存的支持 . JPA具有两个级别的缓存. 一级缓存在事务期间缓存对象的状态. 通过两次查询相同的对象,您必须获 ...

最新文章

  1. 基于matlab的元音共振峰的估算
  2. LDAP操作过程中出现的错误代码
  3. http协商缓存VS强缓存
  4. 为什么手机上传图片这么慢 前端_怎样在手机上就能把图片压缩到100K以下?
  5. IDEA中进行SpringBoot开发时提示:Error resolving template xxx, template might not exist or might not be acce
  6. 计算机软件通常称为,计算机软件通常分为
  7. (2) nginx信号量
  8. Ubuntu创始人谈Windows 7、Chrome OS
  9. python学习高级篇(part2)--类方法,静态方法,访问控制
  10. SAP Hybris - how to find corresponding cronjob for a given import
  11. IOS开发之Swift学习笔记
  12. maven-compiler-plugin 插件详解
  13. C++基础与深度解析第七章:深入IO
  14. 误差分析(python)
  15. Android 手机抓包工具 Packet Capture
  16. java打印sscil码_2018最新发布 |SSCI收录语言学学科期刊目录
  17. 数学建模基础理论【二】(定积分)
  18. ONLYOFFICE历史版本功能的开发技术之一
  19. 【转载】客单价是什么意思?如何提高客单价?
  20. 外卖店优先级 第十届蓝桥杯真题 C++

热门文章

  1. tomcat vue 不用 前后端_部署前后端分离项目(后端 tomcat 前端 nginx)
  2. android mysql sqlite_android内嵌的SQLite创建数据库,在哪里查看?
  3. 软件维护复杂度的因素
  4. 如何实现跨项目代码复用
  5. c 提示错误expected) before ; token_实践总结——Git 常见错误及解决方法
  6. linux僵尸进程理解,聊聊Linux系统中的僵尸进程
  7. pcie总线连接两台电脑_基于PCIE总线多主互连系统的设计与实现
  8. 美国大学计算机与信息科学,【计算机学术讲堂】美国福特汉姆大学计算机与信息科学系Md Zakirul Alam Bhuiyan博士莅临我院作学术报告...
  9. mysql case when 使用
  10. VSCode配置PyQt5和designer