mybatis缓存配置有什么作用?主要有哪些?

XIAO 2020-06-04 18:59:03 java常见问答 3405

作为数据持久层的主流框架,mybatis确实有其不可替代的作用,尤其是mybatis的缓存,你知道mybatis缓存配置主要有哪些吗?都有什么作用呢?

首先我们可以先来看看这样一张图:

mybatis缓存配置

我们都知道,在同一次sqlSession会话里面,极有可能会反复地执行相同的查询语句,要是每次查询都要连接一次数据库并执行sql的haul,先不说这样做得到的结果极有可能都是相同的,主要是会造成很多的资源浪费的。

所以我们来看看以下缓存配置:

一级缓存配置

就只需开发者在MyBatis的配置文件里面,添加如下的语句,就可以使用一级缓存啦。总共两个选项,SESSION或者STATEMENT,其默认就是SESSION级别的,就是说在一个MyBatis会话中执行的所有语句,都会去共享这一个缓存。其一种是STATEMENT级别,我们可以理解为缓存只对当前执行的这一个Statement有作用。

二级缓存配置

首先是在MyBatis的配置文件中去开启二级缓存。

可以在MyBatis的映射XML中配置cache或者是cache-ref 。

cache标签是用于声明这个namespace去使用二级缓存,并且可以自定义配置。

type:cache使用的类型,默认就是PerpetualCache,个这在一级缓存中提到过的。

eviction: 定义回收的策略,比较常见的有FIFO,LRU。

flushInterval: 配置其一定时间自动刷新缓存,单位就是毫秒。

size: 设置最多缓存对象的个数。

readOnly: 是否只读,如果配置可读写,就需要对应的实体类能够序列化。

blocking: 如果缓存里面找不到对应的key,是否会一直blocking,直到有对应的数据进入缓存。

cache-ref:代表了引用别的命名空间的Cache配置,两个命名空间的操作使用的是同一个Cache。

那么以上就是本篇文章的所有内容了,还想了解更多java常见问答信息,记得关注本站消息获取哦。

推荐阅读:

mybatis缓存的解释,概述mybatis的缓存

mybatis缓存的作用是什么?mybatis缓存有几种?

mybatis中文文档快速查看