mybatis的缓存内容(上)

简介: mybatis的缓存内容

1.一级缓存

1.概念

 一级缓存是MyBatis中的默认缓存机制,也称为本地缓存。它是指SqlSession级别的缓存,即同一个SqlSession中多次执行相同的查询语句,第一次执行时会将查询结果缓存下来,当第二次执行相同的查询语句时,直接从缓存中取出数据,而不会再次去数据库中查询。一级缓存的生命周期与SqlSession保持一致,当SqlSession关闭时,一级缓存也随之不存在

我们先创建一个工具类

package com.guigu.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SqlSessionUtil {
//    封装直接拿到SqlSession
    public static SqlSession getSqlSession(){
        InputStream resourceAsStream = null;
        try {
            resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
            return new SqlSessionFactoryBuilder().build(resourceAsStream).openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}

  我们以后哪拿sqlSeesion就从这个工具类里面拿

利用一级缓存使用相同的sqlSession执行相同的sql的语句第二的sql语句应该是不执行的直接从缓存里面取。

@Test
    public void test07(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        System.out.println(mapper.selectEmpById(1));
        System.out.println(mapper.selectEmpById(1));
    }

看日志可以发现只执行过一个sql语句

注意

注意如果在两次出查询中执行了任意一次增删改都会将缓存清除,因为执行增删改之后 很有可能影响到了上次查询的数据,所以下一次的查询将会重新从数据库中获取。

手动清空缓存
1.直调用对应的api
sqlSession.clearCache();
2.也可以通过关闭sqlSession来清理缓存当然这样清理缓存并没有什么实际意义
sqlSession.close();

mybatis的缓存内容(下)https://developer.aliyun.com/article/1429069

目录
相关文章
|
3月前
|
缓存 Java 数据库连接
MyBatis的缓存
MyBatis的缓存
|
8天前
|
XML 缓存 Java
MyBatis二级缓存解密:深入探究缓存机制与应用场景
MyBatis二级缓存解密:深入探究缓存机制与应用场景
41 2
MyBatis二级缓存解密:深入探究缓存机制与应用场景
|
1月前
|
存储 缓存 Java
什么!?实战项目竟然撞到阿里面试的原题!???关于MyBatis Plus的缓存机制
什么!?实战项目竟然撞到阿里面试的原题!???关于MyBatis Plus的缓存机制
|
1月前
|
缓存 Java 数据库连接
mybatis 数据库缓存的原理
MyBatis 是一个流行的 Java 持久层框架,它封装了 JDBC,使数据库交互变得更简单、直观。MyBatis 支持两级缓存:一级缓存(Local Cache)和二级缓存(Global Cache),通过这两级缓存可以有效地减少数据库的访问次数,提高应用性能。
282 1
|
1月前
|
存储 缓存 Java
【MyBaits】4、延迟加载、MyBatis 的缓存
【MyBaits】4、延迟加载、MyBatis 的缓存
22 0
|
2月前
|
SQL 缓存 Java
mybatis缓存详解
mybatis缓存详解
22 0
|
3月前
|
缓存 Java 数据库连接
mybatis的缓存内容(下)
mybatis的缓存内容
28 0
|
3月前
|
缓存 Java 数据库连接
|
3月前
|
缓存 Java 数据库连接
MyBatis支持的缓存刷新模式
MyBatis支持的缓存刷新模式
217 1
|
3月前
|
缓存 Java 数据库连接
Mybatis之缓存
【1月更文挑战第4天】 一、MyBatis的一级缓存 二、MyBatis的二级缓存 三、二级缓存的相关配置 四、MyBatis缓存查询的顺序 五、整合第三方缓存EHCache 1、添加依赖 2、各个jar包的功能 3、创建EHCache的配置文件ehcache.xml 4、设置二级缓存的类型 5、加入logback日志 6、EHCache配置文件说明
57 3