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语句

相关推荐
月光有害1 小时前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端·spring
名字还没想好☜1 小时前
Java 用 MethodHandle 替代反射:调用性能实测、invokeExact 的坑与缓存
java·开发语言·缓存·反射·methodhandle
acd120092 小时前
Redis 缓存和数据库一致性,到底怎么搞?
数据库·redis·缓存
sugar__salt2 小时前
MyBatis-Plus 从入门到实战:高效简化数据库开发的完整指南
数据库·spring boot·mybatis·数据库开发
小当家.1052 小时前
LLM服务缓存与连接池管理:三层缓存架构与ChatClient池化
java·后端·spring·缓存·llm·agent
CodeBlog-star2 小时前
AI Agent 高并发实战:Redis 限流、队列、缓存与高可用全栈方案
数据库·redis·缓存
小当家.1052 小时前
Token成本控制实战:语义缓存、上下文压缩与工具缓存
java·spring·缓存·token·上下文
IT利刃出鞘3 小时前
SpringBoot--解决@Valid放在接口的List上时无效的问题
java·spring
IKUN家族13 小时前
Spring IoC&DI
java·spring·rpc
山荷枝14 小时前
03-框架--Spring
java·后端·spring