文档章节

博为峰JavaEE技术文章 ——MyBatis 缓存(1)

博为峰教研组
 博为峰教研组
发布于 2017/02/13 19:19
字数 607
阅读 2
收藏 0

跟现在流行的大多数持久层框架一样,MyBatis 同样提供了缓存机制。持久层缓存的目的,为了降低应用层对物理数据源(如:数据库)访问的频次,提高应用程序整体性能。缓存将复制数据物理数据源中的数据(或加工后的数据),程序运行时直接从缓存读写数据,在特定的时刻或事件发生时会同步缓存和物理数据源的数据。

开启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。

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
图解 & 深入浅出 JavaWeb:Servlet 再说几句

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket 上一篇的《 Servlet必会必知 》受到大家一致好评 — (感谢 读者 及 OSC 推荐...

泥沙砖瓦浆木匠
2015/09/03
0
13
技术专题讨论:如何对 JPA 或者 MyBatis 进行技术选型

在我们平时的项目中,大家都知道可以使用 JPA 或者 Mybatis 作为 ORM 层。对 JPA 和 Mybatis 如何进行技术选型? 下面看看大精华总结如下: 最佳回答 首先表达个人观点,JPA必然是首选的。 ...

后海
06/27
0
0
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

KeepMoving
2015/08/25
0
0
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

泥沙砖瓦浆木匠
2015/08/21
0
50
消息中间件规范JMS 2.0的十大改进

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/8885193 消息中间件规范JMS 2.0的十大改进作者:chszs,转载需注明。博客主页:...

chszs
2013/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开源软件会被云杀死吗 ?

本文转载云头条,原作者:Michael Stiefel是Reliable Software公司的负责人,是一名软件架构和开发顾问。 文章要点 虽然开源开发不会消失,但商业开源厂商的未来不是很有希望。随着全面管理的...

linuxCool
45分钟前
4
0
OSChina 周三乱弹 —— 谈什么对象?睡什么觉?

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @胖达panda :最肯忘却古人诗,最不屑一顾是相思。分享童丽的单曲《红豆生南国》: 《红豆生南国》- 童丽 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
49分钟前
307
5
stylus

stylus基础教程,stylus实例教程,stylus语法总结

miaojiangmin
今天
5
0
PHP生成CSV之内部换行

当我们使用PHP将采集到的文件内容保存到csv文件时,往往需要将采集内容进行二次过滤处理才能得到需要的内容。比如网页中的换行符,空格符等等。 对于空格等处理起来都比较简单,这里我们单独...

豆花饭烧土豆
今天
2
0
使用 mjml 生成 thymeleaf 邮件框架模板

发邮件算是系统开发的一个基本需求了,不过搞邮件模板实在是件恶心事,估计搞过的同仁都有体会。 得支持多种客户端 支持响应式 疼彻心扉的 outlook 多数客户端只支持 inline 形式的 css 布局...

郁也风
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部