mybatis缓存配置

mybatis缓存配置mybatis的缓存有三种方式:1、一级缓存(基于SqlSession会话级别的;2、二级缓存(基于nameSpace级别的,范围比以及缓存更广);3、第三方缓存;mybatis缓存使示意图:一、一级缓存说明:其中一级缓存是mybatis默认使用的缓存,无需手动配置,二级缓存需要手动配置;一级缓存失效条件1)sqlSession不同,由于一级缓存是基于sqlSession级别的,所以当使用不同sq…

大家好,又见面了,我是你们的朋友全栈君。mybatis的缓存有三种方式:


1、一级缓存(基于SqlSession会话级别的;
2、二级缓存(基于nameSpace级别的,范围比以及缓存更广);

3、第三方缓存;

mybatis缓存使示意图:

mybatis缓存配置


一、一级缓存说明:

其中一级缓存是mybatis默认使用的缓存,无需手动配置,二级缓存需要手动配置;

一级缓存失效条件

1)sqlSession不同,由于一级缓存是基于sqlSession级别的,所以当使用不同sqlSession进行查询时缓存也不同;

2)sqlSession相同,手动清空一级缓存;

3)sqlSession相同,两次查询之间执行了增删改操作;

4)sqlSession相同,查询条件不同;

二、二级缓存相关配置:

步骤如下:

1)、开启缓存

在mybatis配置文件中设置启用缓存

 <settings>
    <setting name="cacheEnabled" value="true"/>
 </settings>

2)、使用缓存

在各个XXmapper.xml配置文件中加上

<cache eviction="FIFO"  flushInterval="10800000"  size="512" readOnly="true" /> 

属性说明:

mybatis缓存配置

3)、相关的实体类bean对象需要实现序列号接口Serializable

通过以上配置mybatis二级缓存配置完成!


三、mybatis缓存相关属性设置:

在XXmapper.xml配置文件的各个增删改查节点中可以设置以下属性控制缓存;

useCache:默认为true,当设置false时,则不使用二级缓存(对一级缓存没有影响);

flushCache:在增删改标签中默认为true,即:进行增删改之后会自动清除一级、二级缓存内容;

localCacheScpoe:本地缓存作用域,默认为SESSION即开启一级缓存,当设置为STATEMENT时则关闭一级缓存;

说明:


在一级缓存和二级缓存同时存在的情况下,查询出来的数据都会自动放到一级缓存中,只有当一级缓存提交或者关闭之后,数据才会转移到二级缓存中,也就是说这个时候才能从二级缓存中取到数据,
数据查询的时候会先查询二级缓存,再查询一级缓存,最后查询数据库;


四、第三方缓存配置:

Mybatis自身的缓存其实是很简陋的,其顶层接口为Cache,查看其具体实现,底层其实就是个Map数据结构而已,因此可以集成第三方缓存接口相关接口,进行数据缓存操作;

比如集成Ehcache,其实也就是实现了Cache接口,


mybatis缓存配置

具体配置如下:

1)、基础配置ehcache.xml(省略说明…)

2)、其它xml配置如下;

mybatis缓存配置

最后:

如果需要在命名空间中共享相同的缓存配置和实例,在这样的情况下你可以使用 cache-ref 元素来引用另外一个已经配置好的缓存。

即:在其他XXmapper.xml中配置缓存的引用,

如下:

<cache-ref namespace="com.x.x.x.XXXMapper"/>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143373.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【懒人必备】智能窗帘机器人,告别手动拉窗帘——硬件设计篇

    【懒人必备】智能窗帘机器人,告别手动拉窗帘——硬件设计篇简介:智能窗帘机器人方案,无需专业人员上门安装,使普通窗帘秒变智能窗帘。概述随着智能家居的深入拓展,智能窗帘凭借成熟的技术和产品,逐步成为了智能家居家庭中的标配,在家装智能化市场有很高的应用价值。目前智能窗帘的产品主要以电动窗帘产品为主,该产品主要通过电机驱动实现对窗帘的操控,从安装上讲,该产品更适合前装市场,因为需要结合用户户型、门窗大小预留安装空间和电源接口。对于后装市场,往往需要专业人员上门丈量确认是否符合改装要求,大大增加了安装成本,因此目前市场上,出现的小型的窗帘机器人,完美解决的后装市场的

    2022年6月23日
    33
  • C语言数组——字符数组

    C语言数组——字符数组C语言目录C/C++学习资源(百度云盘链接)计算机二级资料(过级专用)C语言学习路线(从入门到实战)编写C语言程序的7个步骤和编程机制C语言基础-第一个C程序C语言基础-简单程序分析VS2019编写简单的C程序示例简单示例,VS2019调试C语言程序C语言基础-基本算法C语言基础-数据类型C语言中的输入输出函数C语言流程控制语句C语言数组——一维数组C语言数组——二维数…

    2022年7月11日
    14
  • mysql前缀索引的索引选择性

    mysql前缀索引的索引选择性mysql前缀索引的索引选择性一.基础概念在mysql中建立前缀索引的意义在于相对于整列建立索引,前缀索引仅仅是选择该列的部分字符作为索引,减少索引的字符可以节约索引空间,从而提高索引效率,但这样也会降低索引的选择性关于索引的选择性,它是指不重复的索引值(也称为基数cardinality)和数据表的记录总数的比值,范围从1/(数据表记录总数)到1之间。索引的选择性越高则查询效率越高,因为选

    2022年5月23日
    35
  • PHPExcel_把Excel数据导入数据库PHP

    PHPExcel_把Excel数据导入数据库PHPPHPExcel导出到Excel前提,准备工作1、PHP版本5.3以上2、官网下载稳定版本的PHPExcel官网地址:http://phpexcel.codeplex.com/以下均以PHPExcel_1.8.0稳定版为学习版本插曲:当我用在官网下载的1.8.0版本练习时,发现与PHP7不能兼容,经Goole后发现要下载Github上的最新版本,附地址:https://github.c

    2025年7月1日
    0
  • Office系列在线预览

    Office系列在线预览

    2021年8月12日
    65
  • pyecharm激活码_通用破解码「建议收藏」

    pyecharm激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号