zoukankan      html  css  js  c++  java
  • 阶段3 1.Mybatis_11.Mybatis的缓存_6 Mybatis中的一级缓存






    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但是 是两次查询


  • 相关阅读:
    vs2010装虚拟机后启动慢
    LINUX FIFO(读书笔记,LINUX程序设计第四版)
    WPF控件 ProgressBar
    C# SQLite操作示列
    win10下使用Linux命令
    类初始化与实例化过程
    结构与类 Delphi
    多线程应用 Delphi
    (珍藏)SQL Server中常用的SQL语句
    获取当前用户本地应用程序设置文件夹 Delphi
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11325162.html
Copyright © 2011-2022 走看看