博为峰JavaEE技术文章 ——MyBatis 缓存(1)
2017-02-13 19:20
309 查看
跟现在流行的大多数持久层框架一样,MyBatis 同样提供了缓存机制。持久层缓存的目的,为了降低应用层对物理数据源(如:数据库)访问的频次,提高应用程序整体性能。缓存将复制数据物理数据源中的数据(或加工后的数据),程序运行时直接从缓存读写数据,在特定的时刻或事件发生时会同步缓存和物理数据源的数据。
开启mybatis的cache功能很简单,只需要在mappper的xml文件里添加以下节点:
![](http://img.blog.csdn.net/20170213192002654?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYndmX2VyZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这个cache元素的配置,可以起到以下作用:
1. 该Mapper中的所有 select 语句将会被缓存。
2. 该Mapper中的所有 insert,update 和 delete 语句会刷新缓存。
3. 缓存使用“最近最少使用”的算法来收回。
4. 60000毫秒来刷新一次缓存。
5. 缓存会存储1024个列表集合或对象的引用。
6. 存会给所有调用者返回缓存对象的相同实例,因此这些缓存不能被修改。
小博老师给大家详细介绍下cache元素的几个属性的含义:
Eviction(缓存回收策略),可用的收回策略有:
LRU – 最近最少使用的:移除最长时间不被使用的对象。
FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
默认的是 LRU。
flushInterval(刷新间隔)可以被设置为任意的正整数,单位是毫秒。默认情况是不设置,不会间隔刷新缓存,仅仅调用语句时刷新。
size(引用数目)可以被设置为任意正整数,缓存的对象数目,默认值是 1024。
readOnly(只读)属性可以被设置为 true 或 false。设置为true意味着该缓存只读。只读缓存会给所有调用者返回缓存对象的相同实例。缓存对象对象不能被修改,性能优势突出。可读写的缓存会返回缓存对象的拷贝(通过序列化) 。性能较低,但是安全性突出,因此默认是 false。
开启mybatis的cache功能很简单,只需要在mappper的xml文件里添加以下节点:
这个cache元素的配置,可以起到以下作用:
1. 该Mapper中的所有 select 语句将会被缓存。
2. 该Mapper中的所有 insert,update 和 delete 语句会刷新缓存。
3. 缓存使用“最近最少使用”的算法来收回。
4. 60000毫秒来刷新一次缓存。
5. 缓存会存储1024个列表集合或对象的引用。
6. 存会给所有调用者返回缓存对象的相同实例,因此这些缓存不能被修改。
小博老师给大家详细介绍下cache元素的几个属性的含义:
Eviction(缓存回收策略),可用的收回策略有:
LRU – 最近最少使用的:移除最长时间不被使用的对象。
FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
默认的是 LRU。
flushInterval(刷新间隔)可以被设置为任意的正整数,单位是毫秒。默认情况是不设置,不会间隔刷新缓存,仅仅调用语句时刷新。
size(引用数目)可以被设置为任意正整数,缓存的对象数目,默认值是 1024。
readOnly(只读)属性可以被设置为 true 或 false。设置为true意味着该缓存只读。只读缓存会给所有调用者返回缓存对象的相同实例。缓存对象对象不能被修改,性能优势突出。可读写的缓存会返回缓存对象的拷贝(通过序列化) 。性能较低,但是安全性突出,因此默认是 false。
相关文章推荐
- 博为峰JavaEE技术文章 ——MyBatis 缓存(1)
- 博为峰JavaEE技术文章 ——MyBatis 缓存(3)自定义缓存
- 博为峰JavaEE技术文章 ——MyBatis 缓存(2)一级缓存与二级缓存
- 博为峰JavaEE技术文章 ——MyBatis 缓存(2)一级缓存与二级缓存
- 博为峰JavaEE技术文章 ——MyBatis 缓存(3)自定义缓存
- 博为峰JavaEE技术文章 ——MyBatis Mapper XML
- 博为峰JavaEE技术文章 ——MyBatis Mapper TypeHandler
- 博为峰JavaEE技术文章 ——MyBatis 简单应用
- 博为峰JavaEE技术文章 ——MyBatis Mapper Select
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(3)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(4)
- 博为峰JavaEE技术文章 ——MyBatis 简介(2)
- 博为峰JavaEE技术文章 ——MyBatis Mapper Insert Update Delete
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(2)
- 博为峰JavaEE技术文章 ——MyBatis Mapper Select
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor
- 博为峰JavaEE技术文章 ——MyBatis Mapper Insert Update Delete
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(2)
- 博为峰JavaEE技术文章 ——MyBatis 接口编程