mybatis之二级缓存的配置和使用

本文介绍了MyBatis的一级缓存和二级缓存概念,详细讲解了如何开启二级缓存,包括全局配置和mapper映射文件中的设置。并强调了实体类实现Serializable接口的重要性,以确保数据能够正确存储和反序列化。最后通过测试验证了二级缓存的效果。
摘要由CSDN通过智能技术生成

目录 

1、什么是二级缓存

2、开启二级缓存

2.1、mybatis全局配置

2.2、mapper映射文件中使用二级缓存

3、测试二级缓存

1、什么是二级缓存
一级缓存:是框架默认为我们开启的,我们不需要做任何配置,是SqlSession级别的缓存,在操作数据库的时候需要创建一个SqlSession,其中有一个HashMap,用于存储缓存数据。不同的SqlSession之间,其缓存数据的HashMap是不同的。所以当我们多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。但是不同的SqlSession对象,因为不同的SqlSession都是相互隔离的,所以相同的Mapper、参数和方法,他还是会再次发送到SQL到数据库去执行,返回结果。

二级缓存:是 mapper 级别的缓存,多个sqlSession去操作同一个Mapper的sql,不管Sqlsession 是否相同,只要 mapper 的 namespace相同就能共享数据。也可以称之为 namespace 级别的缓存 。sqlSession 关闭后(close) ,一级缓存的数据会保存到二级缓存中,新的相同的查询语句就会去二级缓存中去查询。二级缓存是Mapper级别的缓存,多个SqlSession去操作同一个Mapper中的SQL语句,则这些SqlSession可以共享二级缓存,即二级缓存是跨SqlSession的。

2、开启二级缓存

2.1、mybatis全局配置

<settings>
    <!-- 开启二级缓存 -->
    <setting name&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值