Mybatis中的一级缓存和二级缓存
        一级缓存:
            它指的是Mybatis中SqlSession对象的缓存。
            当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供一块区域中。
            该区域的结构是一个Map。当我们再次查询同样的数据,mybatis会先去sqlsession中
            查询是否有,有的话直接拿出来用。
            当SqlSession对象消失时,mybatis的一级缓存也就消失了。
创建新项目

复制pom.xml的依赖

导入一对多的代码

只需要演示缓存,很多代码不需要。 删除IAccountDao

Account和AccountUser删除


测试类中的删除AccountTest删除

因为没有account。所以这里resultMap可以删除掉。

返回的这里改成resultType="user" 而不用resultMap

查询两次id为41的 判断 两个结果集的引用地址是否为一个

把实体类重写的toString方法先注释掉。

测试方法。运行结果。地址为同一个

只发起了一次查询

演示session关闭缓存消失


再次执行测试方法
对象的引用只不再是同一个

获取了两次SqlSession对象。执行两次select查询

当SqlSession消失时我们的一次缓存也消失了

clearCache

虽然是一个SqlSession但是 是两次查询

转载于:https://www.cnblogs.com/wangjunwei/p/11325162.html

阶段3 1.Mybatis_11.Mybatis的缓存_6 Mybatis中的一级缓存相关推荐

  1. MyBatis框架:延迟加载策策略、一级缓存、二级缓存

    MyBatis框架:延迟加载策略和缓存 Mybatis 延迟加载策略 1.1 何为延迟加载? 1.2 实现需求 1.3 使用association实现延迟加载 1.3.1 账户的持久层DAO接口 1. ...

  2. Mybatis中的一级缓存

    像大多数的持久化框架一样,Mybatis也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能. Mybatis中缓存分为一级缓存,二级缓存. 证明一级缓存的存在 一级缓存是SqlSess ...

  3. Mybatis 中的一级缓存与二级缓存

    一,Mybatis中为什么要有缓存   缓存的意义是将用户经常查询的数据放入缓存(内存)中去,用户去查询数据的时候就不需要从磁盘(关系型数据库)中查询,直接从缓存中查询,从而提高了查询效率,解决了高并 ...

  4. hibernate中的一级缓存

    hibernate中的一级缓存 Hibernate提供了两种缓存,这里主要写一级缓存. 第一级缓存是session的缓存,由于Session对象的生命周期通常对应一个数据事务或者一个应用事务,因此它的 ...

  5. 二级缓存使用步骤_Mybatis的一级缓存和二级缓存的理解以及用法

    作者:全me村的希望 https://www.cnblogs.com/hopeofthevillage/p/11427438.html 程序中为什么使用缓存? 先了解一下缓存的概念:原始意义是指访问速 ...

  6. mybaits中的一级缓存和二级缓存使用

    什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息 ...

  7. MyBatis中的一级缓存和二级缓存介绍

    先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能. 一级缓存 一级 ...

  8. java mysql 二级缓存_深入理解MyBatis中的一级缓存与二级缓存

    http://blog.csdn.net/weixin_36380516/article/details/73194758 先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中 ...

  9. 多级缓存中的一级缓存全网流量分发CDN

    鸡蛋不要放在一个篮子里,篮子摔了就都没了. httpdns 浏览器访问一个域名的过程:先去操作系统的hosts文件中寻找域名对应的ip地址,存在就拿来使用,直接向该ip地址发起网络请求.如果没有就去操 ...

  10. 别盲从了,spring 解决循环依赖真的一定需要三级缓存吗?demo结合源码讲解三级缓存的真正目的,一级缓存singletonFactories的真正作用,看到文章最后让面试官眼前一亮

    背景 本篇是我上一篇<3分钟秒懂,最简单通俗易懂的spring bean 生命周期介绍与源码分析,附上demo完整源码>姊妹篇 spring 三级缓存问题是面试中的热点问题,大部分回答者会 ...

最新文章

  1. Intellij Idea 生成serialVersionUID的方法
  2. 为什么说可视化编程是糟糕的想法?
  3. python 模型交叉验证法_python – 交叉验证和模型选择
  4. SAP2014年最新版本EHP7安装经验分享
  5. 专注力 化繁为简的惊人力量
  6. 信息学竞赛计算机基础知识,信息学奥赛-计算机基础知识.doc
  7. selenium firefox驱动_Python3+selenium配置常见报错解决方案
  8. android+新版本+menu,【Android界面实现】SlidingMenu最新版本使用详解
  9. redhat 6安装mysql5.7_RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
  10. ElasticSearch常用API操作示例
  11. linux开启443端口
  12. 综合应用_6多字符串-烟锁池塘柳
  13. 应用宝shangjia安全评估报告_《安全评估报告》提交指引
  14. sql语言之模糊查询
  15. XTUOJ-1299-String
  16. 从零开始详解应用内支付——商品创建及测试上架
  17. 过程计算机系统 pcs,科学网-对PCS(等离子体控制系统)软件基本结构的理解-章勇的博文...
  18. [Easy] 169. Majority Element
  19. 2021-09-02 集合基础知识
  20. win10蓝牙允许设备连接到此计算机,win10系统配置蓝牙时“允许Bluetooth设备连接到此计算机”选项灰色的图文步骤...

热门文章

  1. 拓端tecdat|电商平台数据解锁网红零食销量密码
  2. 拓端tecdat|R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
  3. 拓端tecdat|R语言连续时间马尔可夫链模拟案例 Markov Chains
  4. 拓端tecdat|python爬虫进行Web抓取LDA主题语义数据分析报告
  5. java中的执行顺序_Java中的执行顺序
  6. 操作系统 第一部分 操作系统的基本概念
  7. 大疆DJI Thermal SDK Linux编译
  8. asscalar()函数
  9. python for a,b in c
  10. Python获取二维矩阵每列最大值