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 缓存失效

转MyBatis学习总结——Mybatis缓存

SSM框架MyBatis笔记 --- 表之间的关联关系;MyBatis事务;MyBatis缓存机制;ORM概述

MyBatis——Mybatis缓存

MyBatis缓存

MyBatis缓存专题-一文彻底搞懂MyBatis一级缓存