首页 > 其他分享 >Mybatis里面的缓存机制

Mybatis里面的缓存机制

时间:2023-07-11 21:57:16浏览次数:39  
标签:缓存 数据库 查询 mybatis SqlSession Mybatis 机制

1.mybatis的SqlSession是什么

MyBatis 的 SqlSession 是 MyBatis 框架提供的一个关键接口,它代表了和数据库的一次会话。SqlSession 提供了执行 SQL 语句、管理事务以及获取映射器(Mapper)等操作。
在一般情况下,每次查询都会创建一个新的 SqlSession 实例。这是因为 SqlSession 代表了一次与数据库的会话,它包含了与数据库交互所需的所有方法和资源,包括数据库连接和事务管理。
通常,创建 SqlSession 的成本相对较低,而且 SqlSession 是线程安全的。因此,为了避免潜在的并发问题,推荐在每个数据库操作(如查询、插入、更新、删除等)之前都创建一个新的 SqlSession,并在使用完毕后立即关闭它。这样可以确保每个操作都在独立的会话中执行,避免对不同操作之间的资源竞争和干扰。

2.Mybatis里面的缓存机制

一级缓存是SqlSession之内的缓存,二级缓存是SqlSession之间的缓存。每次请求进来先在二级缓存之间查,没有再去查一级缓存,没有再去查数据库。

3.mybatis缓存只有两次完全一样的查询,才能走缓存吗?

参考:https://www.bilibili.com/video/BV1YR4y127Yt/?spm_id_from=333.337.search-card.all.click&vd_source=46d50b5d646b50dcb2a208d3946b1598

标签:缓存,数据库,查询,mybatis,SqlSession,Mybatis,机制
From: https://www.cnblogs.com/chenyi502/p/17546023.html

相关文章

  • mybatis-plus多数据源
    目录表结构及数据依赖配置application.properties文件启动类添加@Mapper注解编码实体类Mapper类Service类H2数据库操作MySQL数据库操作测试@Test测试测试结果官网多数据源配置@DS注解表结构及数据--表结构CREATETABLEIFNOTEXISTSuser(`id`bigint(20)NOTNULLAUT......
  • mybatis中数据库字段和实体类的属性映射问题
    由于数据库中表的列名一般是按照多个单词之间用下划线隔开,而java一般是驼峰命名法,所以这两者之间存在映射不到的问题,解决方案如下:1.给字段添加别名,如下:<selectid="getManagerInfo"resultType="string">selectlast_login_timelastLoginTimefromwy_manager......
  • mybatisPlus 中设置批量更新执行耗时
    设置myBatisPlus中使用批量更新执行的时间耗时短在连接mysql的url后添加&rewriteBatchedStatements=true为什么默认不给这个rewriteBatchedStatements属性设置为true,原来有如下原因:看下executeBatchedInserts究竟干了什么:如果批量语句中的某些语句失败,则默认重......
  • pom.xml增加Mybatisplus的依赖后报错:Factory method 'sqlSessionFactory' threw excep
    出现上面的问题,是版本不匹配导致。<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency&......
  • 计算机cpu的多级缓存简单原理
    缓存级别L1高速缓存(最快内存),一般分为两种方式:指令缓存和数据缓存;一般大小在256KB~1MB之间。L2叫L1缓存慢,比L1会更大些,一般大小在256KB~8MB之间。L3最大的高速缓存存储单元,也是最慢的一个。它的范围从4MB到50MB以上。数据会从RAM依次流到L3高速缓存,然后是L2,最后是L1查找时,会......
  • 生成式AI:大语言模型ChatGPT交互的机制
    与ChatGPT有效交互的快速工程随着生成式人工智能的普及,特别是ChatGPT,提示已成为人工智能世界中越来越重要的技能。制作提示,与大型语言模型(LLM)(如ChatGPT)交互的机制,并不是它最初看起来的简单语法任务。在与ChatGPT的第一次交换的新颖性之后,很明显需要练习和考虑才能迅速掌握。因......
  • 80.继承机制中对象之间如何转换?指针和引用之间如何转换?
    80.继承机制中对象之间如何转换?指针和引用之间如何转换?1.向上类型转换将派生类指针或引用转换为基类的指针或引用被称为向上类型转换,向上类型转换会自动进行,而且向上类型转换是安全的。2.向下类型转换将基类指针或引用转换为派生类指针或引用被称为向下类型转换,向下类型转换不......
  • 生成式AI:大语言模型ChatGPT交互的机制
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生与ChatGPT有效交互的快速工程随着生成式人工智能的普及,特别是ChatGPT,提示已成为人工智能世界中越来越重要的技能。制作提示,与大型语言模型(LLM)(如ChatGPT)交互的机制,并不是它最初看起来的简单语法任务。在与Chat......
  • SSM - Mybatis - LOG4J - 配置
    LOG4J使用Loggerlogger=Logger.getLogger(UserMapperTest.class);LOG4J配置文件LOG4J配置文件设置@ (15条消息)LOG4J的配置文件_log4j配置文件_小逗比iswho的博客-CSDN博客#log4j.rootLogger=[level],[Appender1],[Appender2],[Appender3]....#这一句的意思就是......
  • 跟着 GPT-4 从0到1学习 Golang 并发机制(一)
    目录一、前言二、开聊2.1Golang里的并发机制介绍2.2Goroutine与线程2.3Goroutine与线程的调度开销2.4用户态和内核态2.5Golang并发编程相关的知识点2.6Select语句2.7Select语句的default使用场景三、总结一、前言今天玩点不一样的,我想试试看GPT-4能不能当好一......