Mybatis   发布时间:2019-10-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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。

Tings Ting Tings

2、

<div class="cnblogs_code">

 l.mapping.userMapper"
 
 

:

  • SELEct
  • insert,update Helvetica">delete
  • least Recently Used(LRU,Helvetica">)
  • (Helvetica">no Flush Interval,Helvetica">),
  • (Helvetica">)Helvetica">1024
  • read/write(Helvetica">/Helvetica">)Helvetica">,共享的Helvetica">,Helvetica">,

:

FIFO Helvetica">,Helvetica">60Helvetica">,Helvetica">512 Helvetica">,Helvetica">,

:

  • LRU – Helvetica">:
  • FIFO – Helvetica">:
  • SOFT – Helvetica">:
  • WEAK – Helvetica">:

LRU

flushInterval(Helvetica">)Helvetica">,而且它们代表一个合理的毫秒形式的时间段。默认情况是不设Helvetica">,Helvetica">,

size(Helvetica">)Helvetica">,Helvetica">1024

readOnly(Helvetica">)Helvetica">trueHelvetica">falseHelvetica">(Helvetica">)Helvetica">,Helvetica">,Helvetica">false

所以需要给缓存的对象(实体类)执行序列化。

falseSELEct默认情况下是true

SELEct String"m.study.mybatis.model.UserModel"false" SELEct * FROM t_user where username LIKE '%${value}%' SELEct

刷新二级缓存:

SELEct String"m.study.mybatis.model.UserModel" SELEct * FROM t_user where username LIKE '%${value}%' SELEct

,为其他第三方缓存方案 创建适配器来完全覆盖缓存行为。

<div class="cnblogs_code">

 m.domain.something.MyCustomcatache"

type Helvetica">org.mybatis.cache.Cache Helvetica">MyBatis Helvetica">,

{ String getId(); ); ject(Object key,Object value); ject getObject(Object key); Booleanject key); ject removeObject(Object key); ); ); }

SQL 映射文件的命名空间的。因此Helvetica">,Helvetica">,Helvetica">,Helvetica">: 

SELEct false" update delete

,Helvetica">,Helvetica">,Helvetica">flushCacheHelvetica">useCacheHelvetica">,Helvetica">,Helvetica">,一些更新语句依靠执行而不需要刷新缓存。

大佬总结

以上是大佬教程为你收集整理的Mybatis系列(四):Mybatis缓存全部内容,希望文章能够帮你解决Mybatis系列(四):Mybatis缓存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:
猜你在找的Mybatis相关文章