大佬教程收集整理的这篇文章主要介绍了Mybatis系列(四):Mybatis缓存,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<h2 id="blogtitle0">一、<span lang="EN-US">MyBatis缓存介绍
一级缓存和二级缓存的支持
1. 一级缓存: 默认开启,基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有Cache就将清空。在同一个SqlSession执行sql
注意:
每次查询会先去缓存中找,如果找不到,再去数据库查询,然后把结果写到缓存中。Mybatis
SqlSessionupdatedelete
2. 二级缓存:需要手动开启,与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(NamespacE),并且可自定义存储源,如 Ehcache。在同一个namespace执行sql
注意:
二级缓存是
第二次调用相同namespace
如果调用相同namespace并执行了commit
SELEct 中的缓存将被clear。
2、
<div class="cnblogs_code">
l.mapping.userMapper"
:
:
FIFO Helvetica">,Helvetica">60Helvetica">,Helvetica">512 Helvetica">,Helvetica">,
:
LRU
flushInterval(Helvetica">)Helvetica">,而且它们代表一个合理的毫秒形式的时间段。默认情况是不设置Helvetica">,Helvetica">,
size(Helvetica">)Helvetica">,Helvetica">1024
readOnly(Helvetica">)Helvetica">trueHelvetica">falseHelvetica">(Helvetica">)Helvetica">,Helvetica">,Helvetica">false
所以需要给缓存的对象(实体类)执行序列化。
falseSELEct默认情况下是true
刷新二级缓存:
,为其他第三方缓存方案 创建适配器来完全覆盖缓存行为。
<div class="cnblogs_code">
m.domain.something.MyCustomcatache"
type Helvetica">org.mybatis.cache.Cache Helvetica">MyBatis Helvetica">,
SQL 映射文件的命名空间的。因此Helvetica">,Helvetica">,Helvetica">,Helvetica">:
,Helvetica">,Helvetica">,Helvetica">flushCacheHelvetica">useCacheHelvetica">,Helvetica">,Helvetica">,一些更新语句依靠执行而不需要刷新缓存。
以上是大佬教程为你收集整理的Mybatis系列(四):Mybatis缓存全部内容,希望文章能够帮你解决Mybatis系列(四):Mybatis缓存所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。