MyBatis的缓存

MyBatis
一级缓存是sqlsession级别的缓存
MyBatis 的一级缓存存在于 SqlSession 的生命周期中,在同一个 SqlSession 中查询
时, MyBatis 会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个 Map
对象中。如果同一个 SqlSession 中执行的方法和参数完全一致,那么通过算法会生成相同的
键值,当 Map 缓存对象中己经存在该键值时,则会返回缓存中的对象。

强制刷新缓存的方式
<select id=” selectByid” flushCache=” true ” resultMap=’” userMap” >
select * from sys user where 工d = #{id)

flushCache= " true ” ,这个属性配置为 true 后, 会
在查询数据前清空当前的一级缓存,因此该方法每次都会重新从数据库中查询数据

任何的 INSERT 、
UPDATE 、 DELETE 操作都会清空一级缓存

二级缓存是内存缓存,默认是开启的.
启用mybatis自带的二级缓存的步骤
1.开启二级缓存(默认开启)
2.缓存的类实现序列化接口
3.在对应的mapper.xml或者mapper接口中,指明改mapper启用缓存.

MyBatis 的二级缓存是和命名空间绑定的 ,即 二级缓存需要配置在 Mapper. xml 映射文件中 ,
或者配置在 Mapper抖va 接口中。在映射文件中 , 命名空间就是 XML 根节点 mapper 的
namespace 属性 。 在 Mapper 接口中,命名空间就是接口 的全限定名称。

MyBatis 默认提供的缓存实现是基于 Map 实现的内存缓存,己经可以满足基本的应用 。 但
是当需要缓存大量的数据时,不能仅仅通过提高内存来使用 MyBatis 的二级缓存,还可以选择
一些类似 EhCache 的缓存框架或 Redis 缓存数据库等工具来保存 MyBatis 的二级缓存数据 。 接
下来两节,我们会介绍两个常见的缓存框架 。

集成其他缓存:
ehcache
直接mybatis与ehcache集成,不管spring.

配置 EhCache
在 src/main/resources 目录下新增 ehcache.xml 文件 。

<?xml version = ” 1. 。 ” encoding= ” UTF - 8 ” ?〉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值