zoukankan      html  css  js  c++  java
  • mybatis 梳理17--缓存 (占坑) 一级缓存、二级缓存、三级缓存

    1、为什么要用缓存?

    如果缓存中有数据,就不用从数据库获取,大大提高系统性能。

    mybatis提供一级缓存和二级缓存

    2、一级缓存:

    (1)一级缓存是sqlsession级别的缓存

    在操作数据库时,需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据

    不同的sqlsession之间的缓存区域是互相不影响的。

    (2)一级缓存工作原理:

    ①第一次发起查询sql查询用户id为1的用户,先去找缓存中是否有id为1的用户,如果没有,再去数据库查询用 户信息。得到用户信息,将用户信息存储到一级缓存中。

    ②如果sqlsession执行了commit操作(插入,更新,删除),会清空sqlsession中的一级缓存,避免脏读

    ③第二次发起查询id为1的用户,缓存中如果找到了,直接从缓存中获取用户信息

    ④mybatis默认支持并开启一级缓存。

    (3)一级缓存演示

                 

    (4)一级缓存失效

    1. sqlSession不同

    2. 当sqlSession对象相同的时候,查询的条件不同,原因是第一次查询时候一级缓存中没有第二次查询所需要的数据

    3. 当sqlSession对象相同,两次查询之间进行了插入的操作

    4. 当sqlSession对象相同,手动清除了一级缓存中的数据

  • 相关阅读:
    idea 快捷键
    python 之网页解析器
    python 之正则表达式
    Python Requests快速入门
    Html style="visibility:hidden"与style="display:none"的区别
    html 之table标签结构学习
    python 之format字符串格式化
    Python 时间戳和日期相互转换
    SQL 字符串函数
    xampp默认配置拿shell
  • 原文地址:https://www.cnblogs.com/Master-Sun/p/14313704.html
Copyright © 2011-2022 走看看