- 博客(16)
- 收藏
- 关注
原创 SELECT语句的执行顺序是固定的,与SQL书写顺序不同
6. SELECT u.name, COUNT(o.id) AS order_count → 确定返回列并生成别名。◦ 示例:ON u.id = o.user_id 在此阶段过滤不符合连接条件的行。2. JOIN ON u.id = o.user_id → 按ID合并两表数据。◦ 注意:ORDER BY可使用SELECT中的别名(因执行顺序在后)。◦ 处理表连接逻辑(内连接、外连接等),根据连接条件合并数据。◦ 对连接后的结果集应用过滤条件,筛选出符合条件的行。
2025-06-26 02:56:44
198
原创 String、StringBuffer、StringBuilder 三者之间的区别
(2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;(3)单线程操作字符串缓冲区下操作大量数据用StringBuilder。(1)如果要操作少量的数据用 String;字符串变量(非线程安全)字符串变量(线程安全)
2025-06-18 21:01:34
205
原创 事务的隔离级别有哪些
按隔离水平高低排序如下:针对不同的隔离级别,并发事务时可能发生的现象也会不同。接下来,举个具体的例子来说明这四种隔离级别,有一张账户余额表,里面有一条账户余额为 100 万的记录。然后有两个并发的事务,事务 A 只负责查询余额,事务 B 则会将我的余额改成 200 万,下面是按照时间顺序执行两个事务的行为:这四种隔离级别具体是如何实现的呢?
2025-06-18 11:00:23
673
原创 MySQL可能会出现哪些并发问题
假设有 A 和 B 这两个事务同时在处理,事务 A 先开始从数据库中读取小林的余额数据,然后再执行更新操作,如果此时事务 A 还没有提交事务,而此时正好事务 B 也从数据库中读取小林的余额数据,那么事务 B 读取到的余额数据是刚才事务 A 更新后的数据,即使没有提交事务。假设有 A 和 B 这两个事务同时在处理,事务 A 先开始从数据库查询账户余额大于 100 万的记录,发现共有 5 条,然后事务 B 也按相同的搜索条件也是查询出了 5 条记录。
2025-06-18 10:34:23
173
原创 MediaType类
MediaType 是 Spring 框架中用于表示 HTTP 请求或响应的内容类型(Content-Type) 的类,全限定类名为:org.springframework.http.MediaType。返回值类型是 MediaType,表示请求体的媒体类型(如 JSON、表单、文件上传等)
2025-06-11 10:42:01
326
原创 Redisson分布式锁底层原理
Redisson是当前最流行的Redis分布式锁实现方案,其核心原理是通过Lua脚本保证加锁操作的原子性,并引入看门狗机制自动续期锁的过期时间。它解决了传统SETNX方案的两个关键问题:1) 通过Lua脚本将加锁和设置过期时间合并为原子操作;2) 通过后台线程定期检查并延长锁持有时间,避免业务未完成时锁被释放。此外,Redisson还实现了可重入锁机制,并通过客户端ID确保只有锁持有者才能解锁。不过该方案仍存在主从切换时可能产生多客户端同时加锁的问题,这是Redis异步复制架构带来的固有缺陷。
2025-06-07 11:20:50
1574
原创 在mybatis中<association> 和<collection>区别
因此,<association> 和 <collection> 是相对的两个标签,分别用于处理 单个对象 和 集合对象 的映射。<association> 用于 映射对象属性(一对一 或 多对一)<collection> 用于 映射集合属性(一对多)<association> 标签。<collection> 标签。
2025-05-13 17:19:21
415
原创 HashMap的键值对存储要点
首先介绍 HashMap 的基本原理,即它是如何工作的 HashMap 是一种基于哈希表的数据结构,它通过将键映射到表中的位置来实现快速的数据检索探讨哈希函数的选择和冲突解决策略对 HashMap 性能的影响;这是最常见的解决哈希冲突的方法之一在这种方法中,HashMap 的每个桶(bucket)不再是一个单一的位置,而是一个链表当发生哈希冲突时,新的键值对会被添加到相应桶的链表上这样,每个桶可以容纳多个键值对,它们。这是因为 HashMap 并没有内置同步机制来保证其线程安全性。
2025-04-30 22:44:10
896
原创 6种 Spring 依赖注入方式
Spring框架提供了多种依赖注入方式,包括构造器注入、Setter方法注入、接口注入、自动装配、注解注入和Java配置等。不同的注入方式适用于不同的场景,开发人员可以根据具体需求选择合适的方式。依赖注入使得应用程序的组件之间解耦合,提高了代码的可测试性、可维护性和可扩展性。通过灵活使用Spring框架提供的依赖注入方式,可以更加方便地管理和维护应用程序的依赖关系,从而提升开发效率和代码质量。在实际开发中,根据具体的需求和项目特点,我们可以组合使用不同的依赖注入方式。
2025-04-24 17:10:52
958
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人