一级缓存
一级缓存是SqlSession对象的缓存,当调用SqlSession的修改,添加,删除,commit(),close()等方法时,就会清空一级缓存。
除此之外,我们可以调用SqlSession对象的方法clearCache(),手动清空一级缓存。
一级缓存存放的是对象。
SqlSession内部维护一个Map,当我们查询时,得到的pojo对象会存储在Map当中,以后每一次执行查询,都会先从Map中查找是否存在该查询的结果,如果存在则直接获取该pojo对象。
二级缓存
二级缓存是SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。
二级缓存存放的是数据,不是对象。
二级缓存是默认关闭的。
二级缓存开启方法:
MybtaisConfig.xml:
>
name="cacheEnabled" value="https://www.it610.com/article/true"/>
XML文件:
在指定的mapper.xml中加上:
注解:
在mapper接口上标注@CacheNamespace(blocking = true)即可开启。
@CacheNamespace(blocking = true)
public interface UserMapper{
//
}
【Mybatis一级缓存和二级缓存的区别】如有问题或错误请留言。
推荐阅读
- 数据库|Mysql高级篇
- 数据库|超过100M的SQL脚本怎么执行呢()
- 剑指offer|剑指 Offer II 049. 从根节点到叶节点的路径数字之和
- 软件测试|接口测试项目(非常值得练手)
- servlet|vue3验证码倒计时60秒(自用)
- 数据库|使用 Apache Superset 可视化 ClickHouse 数据
- 师文汇(OceanBase 4.0 产品核心能力解读)
- Elasticsearch|ElasticSearch 之初步上手
- 腾讯云|极致效率,云原生数据库TDSQL-C安身立命的根本