Mybaitis 缓存的优化

栏目: Java · 发布时间: 7年前

内容简介:我们先来看代码这段代码中, Mybatis一共发了两条SQL,这就好像说, Mybatis中没有缓存,然后我们打开Mybatis的文档一看,顿时震惊这难道是骗人的,说好的默认开启缓存呢…..

我们先来看代码

Mybaitis 缓存的优化

这段代码中, Mybatis一共发了两条SQL,这就好像说, Mybatis中没有缓存,然后我们打开Mybatis的文档一看,顿时震惊

这难道是骗人的,说好的默认开启缓存呢…..

其实不是的,默认确实是开启缓存的,但是我们还需要配置一点东西

UserMapper.xml

Mybaitis 缓存的优化

另外,对象还要实现序列化接口,否则报 NotSerializableException 的异常

Mybaitis 缓存的优化

设置完毕之后,我们再来尝试 insert 的问题

Mybaitis 缓存的优化

此时发现,发了3条SQL,那么究竟是什么原因呢?如下图

Mybaitis 缓存的优化

看完这个图,就明白为什么 get(1L)->add()->get(1L) 这个过程会发3条 SQL 了,因为 insert 的时候,清空了缓存

但是就算 insert ,并没有影响到 get(1L) 的结果,但是你却把他的缓存也清空了,这明显不合理,那么我们怎么优化呢?

那么我们可不可以这样做呢?如图:

Mybaitis 缓存的优化

也就是我们做了两件事

  • list 由于缓存命中率低,那么我们就不加入到缓存中

  • insert 我们不清空缓存

那么在代码中,我们具体是怎么实现的呢?

UserMapper.xml

Mybaitis 缓存的优化

这样之后,我们Mybatis中的缓存就更高效了


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms on Strings, Trees and Sequences

Algorithms on Strings, Trees and Sequences

Dan Gusfield / Cambridge University Press / 1997-5-28 / USD 99.99

String algorithms are a traditional area of study in computer science. In recent years their importance has grown dramatically with the huge increase of electronically stored text and of molecular seq......一起来看看 《Algorithms on Strings, Trees and Sequences》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试