- 2024-11-19MyBatis 学习笔记
MyBatis执行器JDBC的执行过程分为四步:获取数据库连接(Connection)预编译SQL(PrepareStatement)设置参数执行SQL(ResultSet)MyBatis提供了执行器Executor将这一过程进行封装,对外提供SqlSession让用户通过调用其API直接操作数据库,因为SqlSession持有执行器Executor
- 2024-11-07十四 MyBatis的缓存
十四、MyBatis的缓存缓存:cache缓存的作用:通过减少IO的方式,来提高程序的执行效率。mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库。一方面是减少了IO。另一方面不再执行繁琐的查找算法。效率大大提升。my
- 2024-11-02框架篇
框架篇Spring-单例bean是线程安全的吗问答环节Spring-AOP相关面试题问答流程Spring-事务失效的场景异常捕获处理抛出检查异常非public方法问答环节Spring-bean的生命周期BeanDefinitionbean流程问答环节Spring-bean的循环依赖(循环引用)什么是
- 2024-10-24Spring中三级缓存如何解决循环依赖的
Spring中是如何解决循环依赖的前言我们都知道,Spring时使用了三级缓存来解决的循环依赖问题。但是三级缓存是什么?三级缓存又是如何解决循环依赖的呢?为什么需要三级缓存,二级不行吗?带着这些问题,我们一起来研究一下Spring的源码,揭秘上面的问题。SpringBean的生命周期要说要S
- 2024-10-04Spring的循环依赖
1.没有代理对象时的处理解决该问题的关键在于何时将实例化后的bean放进容器中,设置属性前还是设置属性后。现有的执行流程,bean实例化后并且设置属性后会被放进singletonObjects单例缓存中。如果我们调整一下顺序,当bean实例化后就放进singletonObjects单例缓存中,提前暴露引用,然后
- 2024-09-22【编程底层原理】彻底搞懂Spring是如何利用三级缓存来解决循环依赖问题的(一级缓存为啥解决不了,二级缓存可以解决为啥也不合适,三级缓存为啥合适)
一、整体推导思路为了彻底搞懂Spring是如何利用三级缓存来解决循环依赖问题的,要么去找三级缓存的设计者了解其设计的初衷,要么利用反推法来进行倒推(即一级缓存为啥不行,二级缓存为啥也不合适)。为了让大家能有一个更清晰的理解脉路,下面将先从反推法来介绍下一级缓存为啥不
- 2024-09-15二级缓存架构极致提升系统性能
前言随着k8s成为用云新界面,容器成为众多用户“弹性”的利器,因此容器的创建天生具备高并发特性。高并发、大数据量下,为了提供更好的容器弹性体验,笔者通过二级缓存的设计,成功优化了系统性能、资源消耗、系统容量。但持续压榨性能的道路是曲折的。各种缓存方案需要考虑非常多因素,包括
- 2024-09-12浅析 MyBatis 中的连接池和缓存
文章目录一、MyBatis简介二、连接池1.连接池的作用2.MyBatis中的连接池实现3.连接池的参数配置三、缓存1.缓存的作用2.MyBatis的一级缓存3.MyBatis的二级缓存4.缓存的刷新和清空四、总结在使用MyBatis进行Java应用开发时,连接池和缓存是两个非常重要
- 2024-09-09mybatis常见面试题
mybatis常见面试题#{}和${}的区别是什么?Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;能够防止sql注入.Mybatis在处理\({}时,就是把\){}替换成变量的值。mybatis的一级缓存和二级缓存https://www.bilibili.com/video/BV1sM4m1f7L1/?
- 2024-09-0711. MyBatis的一级缓存和二级缓存有什么区别?如何配置和使用二级缓存?
在MyBatis中,缓存机制用于减少数据库访问次数,提高应用程序性能。MyBatis提供了两级缓存:一级缓存和二级缓存。1.一级缓存(LocalCache)作用范围:一级缓存作用于SqlSession级别。即在同一个SqlSession中执行相同的SQL查询,如果查询参数相同,MyBatis会从缓存中直接返回
- 2024-09-0713. 说说 MyBatis 的缓存机制?
MyBatis提供了一级缓存和二级缓存两种缓存机制,用于提高应用程序的性能,减少数据库的访问次数。缓存机制是MyBatis的一个重要特性,通过缓存可以在一定程度上减少对数据库的访问,从而提高查询性能。1.一级缓存(LocalCache)作用范围:一级缓存是MyBatis默认开启的缓存机制,作用
- 2024-09-07SSM相关面试题
1Spring1.1什么是SpringIOC和DI?①控制反转(IOC):Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想。② 依赖注入(DI):Spring使用JavaBean对象的Set方法或者构造方法为我们在创建
- 2024-08-29Mybatis&JPA
1.ORM思想、MyBatis概述、日志框架、OGNL 1.1框架:是一系列jar包,其本质是对JDK功能的扩展(SDK),是一组程序的集合。1.2ORM思想 对象关系映射(ObjectrelationalMapping):主要解决对象-关系的映射
- 2024-08-20Mybatis的缓存机制
目录1.一级缓存2.二级缓存3.三级缓存4.小结MyBatis的缓存机制分为一级缓存、二级缓存和三级缓存。1.一级缓存一级缓存是MyBatis会话级别的缓存,也称为本地缓存。每个SqlSession会维护自己的一级缓存。在同一个SqlSession中,如果执行查询操作,对于相同的S
- 2024-08-05Mybatis一级缓存与二级缓存
一级缓存与二级缓存概述当mydatis需要关联查询时,会使一条sql语句附加n条关联查询语句,即1+n问题,为了解决这个问题mybatis提供了延迟加载和缓存机制,本节讲缓存机制。当不开启延迟加载时,1+n条sql语句同时发送至数据库,这时n+1条sql语句是在同一个会话当中,一级缓存自动生效,即相同
- 2024-07-27缓存的简介以及Mybatis缓存中一级缓存和二级缓存
简介我们所有的查询都需要连接数据库,连接数据库比较耗资源,那么如何解决耗资源的问题呢? 我们可以把一次查询的结果暂存在一个可以直接取到的地方——>内存 放在内存里的这一些查询的数据就叫缓存,这是什么意思呢,我们再次查询相同数据的时
- 2024-07-26mybatis的二级缓存详解
MyBatis的二级缓存是一种强大的查询缓存机制,它在默认情况下是关闭的。要启用二级缓存,需要在SQL映射文件中添加 <cache/> 标签。以下是对MyBatis二级缓存的详细解释:1.基本概念一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session。当Session冲
- 2024-07-19JAVA面试框架篇(SSM和MyBatis)
框架篇一.Spring1.Spring1.1Bean生命周期1.2Bean循环依赖(引用)说说spring中的循环引用构造方法出现了循环依赖怎么解决?1.3Bean线程安全问题问题:Spring中的Bean是线程安全的吗?1.4AOP(什么是AOP?)AOP:AspectOrientedProgramming面向切面编程应用场景(你们项目中有没有
- 2024-07-10MyBatis - 一二级缓存
一二级缓存1.前言1.1什么是缓存缓存是存在内存中的临时数据,通过将我们经常查询但不常变的数据放在内存中,当我们查询数据时就不在需要从磁盘读取,而只需要从缓存中查询即可,大大提升了查询的效率,解决了高并发系统的性能问题。1.2为什么需要缓存既然我们可以直接从数
- 2024-07-08mybatis缓存
MyBatis提供了两级缓存机制:一级缓存(本地缓存)和二级缓存(全局缓存)。这两级缓存可以显著提高数据查询的效率,减少数据库访问的次数。下面介绍MyBatis的一级缓存和二级缓存的原理、配置和使用方法。题外话:
- 2024-07-08Mybatis源码(4)一级缓存和二级缓存
1、目标本文的主要目标是探究Mybatis源码中的一级缓存和二级缓存,先分析标签作用,然后分析一级缓存和二级缓存的源码2、一级缓存的标签2.1cacheEnabled标签cacheEnabled是控制二级缓存是否可以使用,默认值是true表示二级缓存可以使用(不表示开启了二级缓存),但是一级缓存始
- 2024-07-07MyBatis中二级缓存的配置与实现原理
大家好,我是王有志,一个分享硬核Java技术的金融摸鱼侠,欢迎大家加入Java人自己的交流群“共同富裕的 Java 人”。上一篇文章《MyBatis中一级缓存的配置与实现原理》中,我们已经掌握了MyBatis一级缓存的配置(虽然根本不需要做什么配置)与原理,那么今天我们就来学习MyBat
- 2024-07-03MyBatis中的缓存
一级缓存一级缓存默认会启用,想要关闭一级缓存可以在select标签上配置flushCache=“true”;一级缓存存在于SqlSession的生命周期中,在同一个SqlSession中查询时,MyBatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个Map对象中。如果同一个SqlSess
- 2024-06-30mybatis一级缓存、二级缓存的原理
MyBatis的缓存机制分为两个级别:一级缓存和二级缓存。这两种缓存机制都有助于提高数据访问效率,减少对数据库的直接请求次数,但它们的工作原理和适用场景有所不同。一级缓存(Per-ExecutorTransactionalCaches)一级缓存也被称为“事务范围内的缓存”或者“执行器级别的缓存”。它是
- 2024-06-16MyBatis 的缓存机制
1.MyBatis的缓存机制@目录1.MyBatis的缓存机制2.准备工作3.MyBatis的一级缓存3.1一级缓存失效情况/条件4.MyBatis的二级缓存5.MyBatis集成EhCache第三方缓存6.总结:7.最后:缓存(Cache)缓存的作用:通过减少IO的方式,来提高程序的执行效率。MyBatis的缓存:将Sele