Mybatis二级缓存初探
来源:互联网 发布:软件属性英文 编辑:程序博客网 时间:2024/05/29 05:09
首先,要开启缓存:
<setting name="cacheEnabled" value="true" />然后,使用二级缓存:
<!-- 缓存一分钟 --><cache flushInterval="60000" readOnly="true"/>使用就这么简单。
但是,本文的目的不是使用,而是要看下使用的效果。
先看看配置了缓存的mapper中都配置了什么语句:
一个查询所有的语句:
<select id="findAll" resultType="account">select * from account</select>一个保存的语句:
<insert id="save" parameterType="account" useGeneratedKeys="true" keyProperty="id">insert into account(username,status) values(#{username}, 0)</insert>对此,我们可以测试findAll是否有利用上缓存了,以及save语句对缓存的影响。(记得日志先开启DEBUG)
首先,我们先通过请求,调用到save语句,实现插入几条数据,过程就省略不说了。
第二步,我们调用findAll的查询请求,如下:
http://localhost/account/findAll.action得到的结果(这里比较简单,直接转json输出了):
[{"id":1,"status":0,"username":"123456"},{"id":2,"status":0,"username":"654321"},{"id":3,"status":0,"username":"test4"},{"id":4,"status":0,"username":"test4"},{"id":5,"status":0,"username":"test4"},{"id":6,"status":0,"username":"test4"}]可以看到,这里有6条数据。
再看控制台输出:
生成查询语句了,这是第一次。
第三步,我们刷新一下,第二次查询,结果自然是一样的,看控制台,呀,找不到sql语句了:
可以说是用上缓存了。
第四步,等待一分钟再刷新。第三次查询,结果一致,看控制台:
熟悉的sql又回来了。为什么?因为我配置的缓存有效期是1分钟,见上文。
ok,缓存可以有了,有效期也有效了。那么,更新操作对缓存的影响呢?我们不能更新了还取缓存啊。
第五步,先save两个对象进去,我们再刷新页面(一分钟内哦),然后看控制台:
哇,万能的sql语句出来了,记录数也是不一样了。
感叹一下,人家还是很智能滴,这样,是不是非常好用啊,使用简单,缓存可用,非常简单。至于原理嘛……咱以后再分析。
0 0
- Mybatis二级缓存初探
- mybatis一级缓存、二级缓存初探
- mybatis 二级缓存
- Mybatis二级缓存
- mybatis二级缓存
- Mybatis 二级缓存
- [MyBatis]二级缓存
- mybatis二级缓存
- MyBatis-二级缓存
- mybatis二级缓存
- mybatis 二级缓存
- mybatis二级缓存
- Mybatis二级缓存
- MyBatis二级缓存
- MyBatis 二级缓存
- MyBatis二级缓存
- mybatis 二级缓存
- Mybatis 二级缓存
- javafx 获取pane大小
- ReportStudio进阶教程(三十七) - 图表开发(3)同反比
- 江苏质监:警惕移动电源成“炸弹” 60批次产品无一合格
- CentOS 关闭防火墙
- n个人用m个水龙头的接水问题 贪心
- Mybatis二级缓存初探
- 清除SVN保存的认证信息
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 程序设计语言
- 远离纸上谈兵!尼尔森可用性原则的实际运用!
- linux shell 单引号(’) 双引号(“) 反单引号(`)
- 用gsoap实现面向Java客户端的WebService
- 不平衡学习方法理论和实战总结
- C++经典程序---歌德巴赫猜想的证明