Mybaits的一二级缓存

目录

一、什么是缓存

        缓存的特点:

        缓存的术语:

        缓存的适用性:

二、什么是mybatis缓存

        1.一级缓存

                1.1 一级缓存的配置

                1.2 一级缓存的工作流程

                1.3一级缓存的实现示例

                 1.4 一级缓存失效的情况

        2.二级缓存

                2.1 二级缓存的配置

                2.2 二级缓存的工作流程

                2.3 二级缓存总结

三、总结

        一级缓存和二级缓存的区别:


一、什么是缓存

        缓存(cache),即数据交换的缓冲区,当应用程序需要读取数据时,先从数据库中将数据取出,放置在缓冲区中,应用程序从缓冲区中读取数据。

        缓存的特点:

  • 缓存的优点:缓存可以让从数据库中取出的数据存在内存当中,需要数据的时候直接在内存中去读取,更加快速便捷。
  • 缓存的弊端:虽然读取数据的时候是直接在内存当中去拿比较快速,但是这样拿到的数据依旧是原来的旧数据,很可能读到的不是最新的数据。

        缓存的术语:

  • 命中:需要的数据在缓存中找到称为命中
  • 未命中:需要的数据在缓存中并未找到,需要重新获取,称为未命中

        缓存的适用性:

  • 适合使用缓存:
    • 经常查询并且不经常改变的
    • 数据的正确性对最终结果影响不大的

        比如一个公司的介绍,新闻等

  • 不适合使用缓存:
    • 经常改变的数据
    • 数据的正确性对最终结果影响很大的

        比如商品的库存,故事的牌价等

二、什么是mybatis缓存

        mybatis包含一个非常强大的查询缓存特性,他可以非常方便的定制和配置缓存,通过缓存减少Java Application与数据库的交互次数,从而提升程序的运行效率。

  • 默认情况下一级缓存开启(sqlSession级别的缓存,也称本地缓存)
  • 二级缓存需要手动开启,映射器级别的缓存,针对不同的namespace的映射器
  • 为了提高扩展性,Mybatis定义了缓存接口Cache,我们可以通过实现Cache接口来自定义二级缓存

        1.一级缓存

                1.1 一级缓存的配置

                        Mybatis默认开启了一级缓存,一级缓存有两个级别可以设置:session级别和statement级别。默认是session级别

                       session级别:即在一个Mybatis会话中执行的所有语句都会共享这一个缓存。

                       statement级别:可以理解为缓存只对当前执行的这一个statement有效。

                       我们可以在根配置文件下去配置一级缓存:

<setting name="localCacheScope" value="session">

or

<setting name="localCacheScope" value="statement">
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值