mybatis的二级缓存
来源:互联网 发布:编写高质量javascript 编辑:程序博客网 时间:2024/05/21 11:24
缓存范围是跨SqlSession的,范围是mapper的namespace,相同的namespace使用一个二级缓存结构。
需要进行参数配置让mybatis支持二级缓存。
1.在全局的配置文件SqlMapConfig.xml中加入,表示打开二级缓存开关
<setting name="cacheEnabled" value="true"/>
2.还需要在mapper.xml中配置是否打开该mapper的二级缓存。
<mapper namespace="com.mo.mapper.userMapper"><!--开启二级缓存--><cache />
二级缓存注意事项
1.实现序列号
注意:将查询结果的pojo对象进行序列化实现 java.io.Serializable接口
public class User implements Serializable {
2.如果清除缓存
如果执行提交操作需要清除二级缓存。
如果想让statement执行后刷新缓存(清除缓存),在statement中设置flushCache="true" (默认值是true)
3. 设置statement是否开启二级缓存
如果让某个statement启用二级缓存,设置useCache=true(默认值为true)
二级缓存原理
如果二缓存开启,首先从二级缓存查询数据,如果二级缓存有则从二级缓存中获取数据,如果二级缓存没有,从一级缓存找是否有缓存数据,如果一级缓存没有,查询数据库。
二级缓存应用场景
1、针对复杂的查询或统计的功能,用户不要求每次都查询到最新信息,使用二级缓存,通过刷新间隔flushInterval设置刷新间隔时间,由mybatis自动刷新。
比如:实现用户分类统计sql,该查询非常耗费时间。
将用户分类统计sql查询结果使用二级缓存,同时设置刷新间隔时间:flushInterval(一般设置时间较长,比如30分钟,60分钟,24小时,根据需求而定)
2、针对信息变化频率高,需要显示最新的信息,使用二级缓存。
将信息查询的statement与信息的增、删、改定义在一个mapper.xml中,此mapper实现二级缓存,当执行增、删、修改时,由mybatis及时刷新缓存,满足用户从缓存查询到最新的数据。
比如:新闻列表显示前10条,该查询非常快,但并发大对数据也有压力。
将新闻列表查询前10条的sql进行二级缓存,这里不用刷新间隔时间,当执行新闻添加、
最佳的方案使用页面缓存。
- Mybatis的二级缓存
- MyBatis的二级缓存机制
- Mybatis的二级缓存配置
- Mybatis的二级缓存配置
- Mybatis - 二级缓存的利弊
- Mybatis的二级缓存配置
- mybatis的二级缓存
- Mybatis的二级缓存配置
- Mybatis二级缓存的使用
- MyBatis的二级缓存
- Mybatis的二级缓存使用
- Mybatis的二级缓存问题
- mybatis的二级缓存
- mybatis的二级缓存
- mybatis 的一级,二级缓存
- mybatis-mybatis二级缓存的配置
- Redis实现Mybatis的二级缓存
- mybatis 一级 二级缓存的使用
- VFW相关说明
- 笔记——重定向与请求分派
- 2017 CCPC-WFinal&&HDOJ 6030 Happy Necklace(矩阵快速幂)
- Android 解决WebView和ScrollView滚轮滑动冲突
- LeetCode104. Maximum Depth of Binary Tree
- mybatis的二级缓存
- jQuery使用笔记——鼠标事件常用函数
- PAT_1035. Password
- 5.Java多线程之带你认识不一样的生产者消费者(一)
- javaScript学习笔记
- Problem A: 立体空间中的点(I)
- 揭秘 typedef四用途与两陷阱
- Android控件使用之FragmentTabHost实现底部菜单
- <技多不压身> Markdown博文快速转为微信文章