mybatis的缓存
Posted 陆伟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的缓存相关的知识,希望对你有一定的参考价值。
一级缓存:就是本地缓存,作用域:sqlSession。当Session flush或close后,该Session中的所有Cache将被清空。但是不能关闭。
Mybatis的一级缓存是指SqlSession。一级缓存的作用域是一个SqlSession。Mybatis默认开启一级缓存。
在同一个SqlSession中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则SqlSession的缓存清空。
Mybatis的二级缓存:是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,多个SqlSession共享。Mybatis需要手动设置启动二级缓存。在同一个namespace下的mapper文件中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则二级缓存清空。
二级缓存就是一级缓存中查询的的SQL的集合。
以上是关于mybatis的缓存的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis 一级缓存,Mybatis 二级缓存,Mybatis 缓存失效