
MyBatis的一级缓存和二级缓存
发布日期:2021-05-06 23:31:31
浏览次数:24
分类:精选文章
本文共 606 字,大约阅读时间需要 2 分钟。
私人笔记,不喜勿喷,喷就揍你
一级缓存不跨sqlsession,不同的sqlsession中的一级缓存不同,每次查询的时候先去一级缓存中查,若没有再到数据库查询,然后存入一级缓存,若执行了commit操作,一级缓存则被清空,设计成会清空是为了防止脏读,一级缓存不需要在.xml中进行设置,默认开启
正式开发时,事务由spring管理,发生在service中,一个service中包括很多mapper方法的调用,当事务开启时,创建一个sqlsession,事务结束时,关闭sqlsession,所有一个service可以使用1级缓存。
二级缓存,默认不开启,每一个namespace有一个二级缓存区域,如果两个mapper的namespace相同,它们的二级缓存区域是同一个。执行commit也会清空对应的二级缓存。
二级缓存的开启,在sqlMapConfig.xml和对应的mapper.xml中都需要进行配置
在mapper.xml中的配置,写一个<cache/>标签就可以了,标签里的参数需要时再配置
禁用二级缓存
二级缓存的存储介质不固定,可以是内存也可以是硬盘,或者是远程服务器,所以要求pojo实现序列化接口
session不关闭,数据写不到二级缓存区域
=================================华丽的分割线============================
测试用的:
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月20日 00时51分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
重学c#系列——异常续[异常注意事项](七)
2019-03-06
不一样的备忘录模式(设计模式十六)
2019-03-06
【golang-GUI开发】qt之signal和slot(一)
2019-03-06
Markdown使用笔记
2019-03-06
「从零单排HBase 06」你必须知道的HBase最佳实践
2019-03-06
跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现
2019-03-06
「从零单排canal 04」 启动模块deployer源码解析
2019-03-06
用ThreadLocal来优化下代码吧
2019-03-06
netcore中使用session
2019-03-06
js 写日期选择器
2019-03-06
几种流行的AJAX框架对比:Jquery,Mootools,Dojo,ExtJs,Dwr
2019-03-06
Android 开发学习进程0.25 自定义控件
2019-03-06
Android 开发学习进程0.26 fragment的工厂实例化
2019-03-06
写个PHP框架吧
2019-03-06
多媒体文件格式全解说(下)--图片
2019-03-06
淘宝WAP版小BUG分析
2019-03-06
svn源码泄露漏洞(git同理)
2019-03-06
SpringMVC中利用HandlerExceptionResolver完成异常处理
2019-03-06