mybatis

Java成神之路-14 小时前
mybatis
面试题:MyBatis延迟加载的底层原理在学习 MyBatis 的过程中,延迟加载是一个高频考点,也是优化数据库查询性能的重要技巧。今天就通过两个经典面试题,把延迟加载的概念、使用方式和底层原理一次讲透。
敖正炀16 小时前
mybatis
Spring Boot + MyBatis 企业级数据访问层实战:从选型到分库分表的深度演进背景设定:这是为“闪电购”高并发订单系统构建的数据访问层,日订单量 500 万,要求支撑水平扩展。 技术栈:Spring Boot 2.7.18、MyBatis 3.5.15、MyBatis-Plus 3.5.5、ShardingSphere-JDBC 5.4.1、MySQL 8.0、PostgreSQL 15、JMH 1.36、Micrometer 1.9.x。 系列衔接:本文融合了 MyBatis 深度内核与实战系列全部 10 篇知识,以及 Spring 核心容器、Spring Boot 内核、数据访
敖正炀17 小时前
mybatis
多数据源与读写分离中间件在大型互联网应用中,数据库读写分离是提升系统吞吐量的核心手段之一。传统的读写分离方案依赖数据库中间件(如 MyCat、ShardingSphere-Proxy),但在微服务架构下,应用层轻量级的多数据源动态路由中间件具有更高的灵活性和可维护性。
胡楚昊18 小时前
java·数据库·mybatis
BUU WEB之旅(1)刚开始无论输入什么都会提示:onlynumber输入不存在的id会出现报错扫一下网站目录,www.zip是网站源码备份,被泄露了
敖正炀20 小时前
mybatis
MyBatis 通用插件库与性能监控平台mybatis-plugins-core 不依赖 Spring,可直接在纯 MyBatis 环境中使用。 mybatis-plugins-spring-boot-starter 负责自动注入、加载顺序控制和配置读取。 mybatis-plugins-monitor 提供可插拔的监控存储与暴露方式。 mybatis-plugins-console 提供开箱即用的监控面板。
敖正炀20 小时前
后端·mybatis
手写简易 MyBatis 框架(mini-mybatis)—— 完善版架构设计与核心实现文档版本:v2.0 目标:从零构建轻量级 ORM 框架,深度复现 MyBatis 核心运作机制,并集成 Spring Boot 自动装配。 适用读者:掌握 MyBatis 源码原理、Spring 扩展机制的 Java 高级开发者。
敖正炀20 小时前
mybatis
反模式与排查宝典:MyBatis 常见陷阱与排错指南通过前面 9 篇文章的深度剖析,我们从 SqlSession 的核心生命周期、Executor 的执行器策略、StatementHandler 的 JDBC 封装、映射器代理 MapperProxy 的精妙设计、动态 SQL 引擎的解析与执行、一级/二级缓存的深层机制、插件拦截链的 AOP 实现,到 Spring Boot 与 MyBatis 的整合核心,最终以 MyBatis-Plus 的增强机制收尾,构建了一张完整的 MyBatis 内部知识网。然而,正向的知识构建最终必须转化为逆向的排错与避险能力。
_Evan_Yao1 天前
java·后端·spring·mybatis
return 的迷途:try-catch-finally 中 return 的诡异顺序与 Spring 事务暗坑“就算 finally 块里有 return,try 里的 return 也会先执行,只不过 finally 的 return 覆盖了它”——这是我以前的理解,直到我亲手写了一段代码,才惊觉自己错得离谱。不仅如此,很多 Spring 事务“莫名其妙”失效的问题,追根溯源,往往也和 try-catch-finally 中对 return 和异常的处理方式脱不了干系。
Java成神之路-2 天前
mybatis
MyBatis工作原理在Java后端面试中,MyBatis的工作原理几乎是高频考点。很多同学容易混淆「启动加载」和「请求处理」两大阶段,分不清SqlSession、Executor、MappedStatement等核心组件的作用。
敖正炀3 天前
mybatis
MyBatis 性能调优:批处理、流式查询与 SQL 优化前文《MyBatis 架构全解》中详细拆解了 Executor 体系——SimpleExecutor、ReuseExecutor 和 BatchExecutor 三种策略各有分工。其中 BatchExecutor 专门为批量操作而设计,ReuseExecutor 则通过复用 Statement 减少 SQL 预编译次数。在实际项目中,批处理和流式查询是影响系统吞吐量的两大杠杆,而动态 SQL 的优化则直接关乎缓存命中率和数据库执行计划复用。本文将聚焦这些具体的性能优化技术,从源码层面揭示 MyBatis
敖正炀3 天前
mybatis
初始化流程的完整串联:从 XML 到 SqlSessionFactory在之前的系列中,我们深入剖析了 MappedStatement、BoundSql、Executor 等运行时核心组件的运作机制。然而,这些对象在 MyBatis 启动时是如何被凭空创建出来的?mybatis-config.xml 和 UserMapper.xml 又是如何被解析成 Configuration 对象中的一个个 MappedStatement?本文回到 MyBatis 生命周期的起点,完整串联从 XML 文件到 SqlSessionFactory 的初始化全链路。
2301_771717213 天前
java·spring boot·mybatis
Spring Boot 自动配置核心注解一句话:在 Spring 启动时,根据“是否存在某些类 / Bean / 配置”,自动创建并管理一些 Bean。
MegaDataFlowers3 天前
mybatis
使用MyBatisX快速生成CRUD参考视频:MyBatisPlus教程,一套玩转mybatisplus框架,mybatis-plus轻松上手 点击观看
敖正炀3 天前
mybatis
插件开发与拦截链——分页、脱敏、多租户实战在前文《MyBatis 架构全解》中,我们已经分析了 InterceptorChain.pluginAll 如何利用 JDK 动态代理将多个拦截器织入责任链,按序包裹 Executor、StatementHandler、ParameterHandler、ResultSetHandler 四大核心对象。拦截链的门槛并不在于理解代理机制本身,而在于:如何依据业务需求精确选择拦截点?如何安全地改写即将执行的 SQL ?如何保证多个横切关注点在责任链中协调运作?本文将以三个高价值实战场景——分页、数据脱敏、多租户
敖正炀3 天前
mybatis
MyBatis 架构全解:SqlSession、Executor 与 StatementHandler前文《MyBatis 与 Spring 整合原理》详细剖析了 MapperScannerRegistrar、MapperFactoryBean 和 SqlSessionTemplate 如何利用 Spring 扩展点将 MyBatis 无缝接入 Spring 容器。然而,当 Mapper 代理最终调用 SqlSession.selectOne() 时,MyBatis 内部到底发生了什么?SqlSession 如何将请求委托给 Executor?StatementHandler 如何封装 JDBC 的 Pr
敖正炀3 天前
mybatis
一级/二级缓存深度:生命周期、脏读与生产最佳实践前文详细剖析了 MyBatis 的 Executor 体系,其中 BaseExecutor.query 在执行数据库查询前,会先检查 localCache——这便是 MyBatis 一级缓存的入口。而在 CachingExecutor 中,二级缓存则在更外层发挥作用。MyBatis 的缓存设计初衷是在单次 SqlSession 或单机环境下减少数据库查询,但在现代分布式和 Spring 整合环境中,这些缓存机制常常引发令人困惑的“脏读”问题,甚至在生产环境中被建议关闭。本文将深入这层缓存体系的内部,揭示其
空中海3 天前
mybatis
MyBatis 基础认知、配置体系与核心映射本文件覆盖 MyBatis 从入门到高级的基础能力:它解决什么问题、和 JDBC / JPA 的区别、核心运行流程、全局配置、Mapper 注册、参数绑定、基本 CRUD、最小 Demo,以及入门到专家的基础面试题答案。
空中海3 天前
mybatis
05 MyBatis 架构设计、渐进式综合项目与专家题库本文件把 MyBatis 知识整合为可落地的系统能力:数据访问层架构、主线项目演进、模块边界、事务边界、多数据源、代码规范、专家清单和完整面试题答案。
空中海3 天前
spring boot·后端·mybatis
03 MyBatis Spring Boot 集成、事务、测试与工程化体系本文件覆盖 MyBatis 与 Spring / Spring Boot 的工程化实践:Starter 自动配置、Mapper 扫描、事务边界、SqlSession 生命周期、测试策略、代码生成、目录规范、多环境配置、主线项目基础落地。
Nicander5 天前
后端·mybatis
理解 mybatis 源码:vibe-coding一个mini-mybatis来源: github.com/Nicander93/…学习 MyBatis 时,如果一上来就看 SqlSession、MapperProxy、MappedStatement,很容易觉得这些概念是凭空出现的。