ssm框架学习---mybatis中缓存

12 篇文章 0 订阅

缓存的目的:将部分数据缓存到内存中,提高系统的性能

一级缓存:它是sqlsession级别的,每个sqlsession对象内部都有一个hashmap用来存放查询的数据,mybatis中默认时开启的

(1)当执行查询时,首先如果是第一次查询,会从数据库中查询并将结果缓存到一级缓存中,以后再查相同的sql就不再发出sql语句,而是直接从缓存中拿

(2)如果在两次相同的查询之间,存在inset,update,delete的commit操作,它会清空缓存

二级缓存: 它是mapper级别的,当然如果两个mapper.xml文件对应同一个命名空间,它们就共用同一个二级缓存,确切说二级缓存是命名空间级别的,

(1)当一个sqlsession查询出数据会缓存到二级缓存中,其它的sqlsession执行相同的查询可以从缓存中读取

(2)其它的sqlsession执行了插入、删除、修改等操作,会清空二级缓存

注意点:

(1)首先需要在sqlmapconfig.xml中设置开启二级缓存

(2)需要在mapper.xml中配置缓存选项

(3)对于缓存的对象需要实现序列化接口,因为二级缓存不一定在内存中可能其它地方如磁盘或者远程服务器上

mybatis和其它分布式缓存框架的整合:

mybatis提供了一个cache接口,实现cache接口即可,默认提供的是这个实现类

PerpetualCache

(1)在mapper中cache标签的type为你所想要使用的实现类,并加入包和对应的第三方的缓存的配置文件等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值