• MyBatis中的缓存1


    1、应用程序和数据库交互的过程是一个相对比较耗时的过程

    2、缓存存在的意义:让应用程序减少对数据库的访问,提升程序运行的xiaolv

    3、MyBatis中默认SqlSession缓存开启

      3.1  同一个SqlSession对象调用同一个<select>时,只有第一次访问数据库,第一次之后把查询结果缓存到SqlSession缓存区(内存)中

      3.2 缓存的是statement对象,(简单记忆:必须是用一个<select>)

        3.2.1在Mybatis时 一个<select>对应一个statement对象

      3.3 有效范围必须是同一个SqlSession对象

    4、缓存流程  (sqlsession)

      4.1  步骤一:先去缓存区中找是否存在statement

      4.2 步骤二:返回结果

      4.3 步骤三:如果没有缓存statement对象,去数据库获取数据

      4.4 步骤四:数据库返回查询结果

       4.5 步骤五:把查询结果放到对应的缓存区中

     

    5、SqlSessionFactory缓存

      5.1 又叫:二级缓存

      5.2 有效范围:同一个factory 内哪个SqlSession都可以获取

      5.3 什么时候使用二级缓存:

        5.3.1 当数据频繁被使用,很少被修改

      5.4 使用二级缓存步骤

        5.4.1 在mapper.xml中添加

        5.4.2 如果不写readOnly="true" 需要把实体类序列化

    1 <cache readOnly="true"></cache>

      5.5 当SqlSession对象close()时 或commit()时会把SqlSession缓存的数据刷(flush)到SqlSessionFactory缓存区中

    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    Halcon图像分割
    Halcon图像变量
    C# 线程同步
    C# 单例模式实现
    C# 限制窗体弹窗显示必须关闭后才能重新实例化窗体
    Java定时清理过期文件
    GrayLog + Logspout + Docker 实现分布式日志聚合
    基于Spring Security OAuth2搭建的Spring Cloud 认证中心
    快速搭建Docker Registry私有仓库
    让你的Spring Boot应用快速运行在Docker上面
  • 原文地址:https://www.cnblogs.com/axu521/p/10104546.html
Copyright © 2020-2023  润新知