美文网首页
Mybatis的一级缓存与二级缓存

Mybatis的一级缓存与二级缓存

作者: 李小二的倔强 | 来源:发表于2024-04-01 22:35 被阅读0次

    什么是缓存?缓存是内存中的一块临时区域用来优化查询速度。

    Mybatis 可以借助缓存进行查询优化

    一级缓存

    SqlSession级别的缓存,它是程序自带的不可卸载(随着session的创建而创建, 随着session的关闭而销毁。

    一级缓存存取数据的时机:

    1、查询

    ①第一次查询:查询缓存,如果缓存中没有数据,查询数据库,并且将查询结果保存到一级缓存中
    ②第二次查询相同的数据:查询缓存,返回缓存中的内容

    2、一级缓存

    内部封装了一个Map<key,value>集合,Map集合封装到Sqlsession中
    验证一级缓存:查询两次相同的内容
    可以清空一级缓存sqlsession.close()、sqlsession.clearCache()。

    二级缓存

    SqlSessionFactory级别的缓存,随着SqlSessionFactory的创建而创建,随着SqlSessionFactory的关闭而销毁。
    对于一个SqlSessionFactory而言,所有Sqlsession的查询结果都可以缓存到二级缓存中

    使用规则:(只执行查询方法不会向二级缓存中存放数据)
    1、实体类对象需要实现序列化接口
          序列化接口:需要本地存储或者网络传输。
    2、需要在核心配置文件中开启二级缓存
         <setting name="cacheEnable" value= "true"/> (cacheEnable : true)
    3、需要在mapper配置文件中开启使用二级缓存
         <cache />
    4、需要在缓存的sql语句配置中配置使用二级缓存
         useCache=“true”
    5、操作的过程中需要提交之后才会存入缓存中。
         session.commit();

    相关文章

      网友评论

          本文标题:Mybatis的一级缓存与二级缓存

          本文链接:https://www.haomeiwen.com/subject/gbwitjtx.html