MyBatis的一级缓存

什么是缓存?

把当前查询出来的数据进行记录,下一次查询相同数据时,从缓存中去取,就不会重新访问数据库了

MyBatis的缓存分为一级缓存和二级缓存

一级缓存默认是开启的

缓存只针对查询功能有效

CacheMapper

CacheMapper.xml

测试

dart 复制代码
package com.baidu.mybatis;
import com.baidu.mybatis.mapper.CacheMapper;
import com.baidu.mybatis.pojo.Emp;
import com.baidu.mybatis.utils.SqlSessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
public class CacheMapperTest {

    @Test
    public void testCache() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        SqlSession sqlSession2 = SqlSessionUtils.getSqlSession();

        CacheMapper mapper = sqlSession.getMapper(CacheMapper.class);

        Emp emp = mapper.getEmpByEid(1);
        Emp emp2 = mapper.getEmpByEid(1);

        System.out.println("emp = " + emp);
        System.out.println("emp2 = " + emp2);

        System.out.println("--------------------");

        CacheMapper mapper1 = sqlSession.getMapper(CacheMapper.class);
        Emp emp3 = mapper1.getEmpByEid(1);
        Emp emp4 = mapper1.getEmpByEid(1);
        System.out.println("emp3 = " + emp3);
        System.out.println("emp4 = " + emp4);

        System.out.println("------------------------");

        CacheMapper mapper2 = sqlSession2.getMapper(CacheMapper.class);
        Emp emp5 = mapper2.getEmpByEid(1);
        Emp emp6 = mapper2.getEmpByEid(1);
        System.out.println("emp5 = " + emp5);
        System.out.println("emp6 = " + emp6);


    }

}

可以看到不同sqlsession,才会输出sql语句

相关推荐
天若有情6731 小时前
SpringBoot4 + MyBatis 前后端分离实战|从零实现坏习惯管理系统,支持局域网手机访问CRUD
智能手机·mybatis
正儿八经的少年2 小时前
redis 的大 key 和热 key 详解
数据库·redis·缓存
空中湖2 小时前
Spring AI Agent 编排:ReAct 模式 + 多 Agent 协作实战
人工智能·spring·react.js
不能只会打代码3 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
X-⃢_⃢-X3 小时前
十、Redis之布隆过滤器
数据库·redis·缓存
Database_Cool_4 小时前
阿里云 Tair(企业级内存数据库)vs 腾讯云 Redis 云缓存深度对比:性能/数据结构/成本全维度 Benchmark
数据库·阿里云·缓存
流星白龙4 小时前
【Redis】1.Redis特性
数据库·redis·缓存
chexus4 小时前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存
憧憬成为web高手17 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
时空无限1 天前
vllm 缓存对模型启动时间的影响
缓存·vllm