作为数据持久层的主流框架,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常见问答信息,记得关注本站消息获取哦。
推荐阅读: