
Mybatis
文章平均质量分 93
本专栏以 MyBatis 持久层框架 为核心,从基础概念到高级特性,再到源码级架构设计,全面解析其核心原理与实战应用。内容涵盖 MyBatis 的快速入门、核心组件详解、动态 SQL、缓存机制、插件开发、性能优化及企业级最佳实践,帮助开发者掌握 MyBatis 的高效使用,并深入理解其设计思想与源码
探索java
「Java底层原理捕手 | 开发最佳实践布道者」
专注Java核心技术纵深:从框架使用到源码,从理论到实践,聚焦生产级问题解决方案,分享Spring Boot/Cloud、分布式系统、性能优化实战心得
践行「代码即文档」:所有原理均附可验证的代码案例,拒绝纸上谈兵
提炼企业级开发防坑指南:踩过的坑,总结成你的避雷指南;验证的方案,开放为你的开发利器
以代码为笔,记录技术演进;以博客为桥,传递知识价值。关注我,用硬核原理武装头脑,让开发少走三年弯路,一起探索Java生态的深度与广度。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MyBatis StatementHandler核心原理详解
MyBatis StatementHandler是连接SQL语义与JDBC执行的核心中间层,主要负责Statement对象创建、参数绑定及结果处理。它分为三类实现:SimpleStatementHandler处理直接SQL执行,PreparedStatementHandler(最常用)支持预编译和参数绑定以防止SQL注入,CallableStatementHandler用于存储过程调用。通过RoutingStatementHandler的策略模式分发请求,结合ParameterHandler和ResultS原创 2025-08-15 09:45:42 · 945 阅读 · 0 评论 -
深入解析MyBatis接口层的实现原理与实践应用
本文系统介绍了MyBatis接口层的设计与实现原理。首先阐述了MyBatis在持久层架构中的定位,作为介于JDBC与全自动ORM之间的半自动框架,MyBatis通过接口层简化了数据库操作。核心部分详细解析了SqlSession的生命周期、动态代理机制(MapperProxy)以及Mapper接口与XML的绑定原理,重点分析了从方法调用到SQL执行的完整链路。此外,针对常见问题如连接泄漏、事务管理等提供了解决方案。文章通过丰富的代码示例和调用链分析,深入剖析了MyBatis接口层的设计思想和技术实现,为开发者原创 2025-08-15 09:45:29 · 585 阅读 · 0 评论 -
MyBatis 动态数据源切换在 Spring Boot 环境下的实现方案
摘要:本文系统介绍了在SpringBoot+MyBatis环境下实现动态数据源切换的技术方案。首先分析了多数据源场景需求,包括读写分离、多租户、分库分表等应用场景。然后深入解析了Spring的AbstractRoutingDataSource核心原理,通过ThreadLocal上下文管理和AOP切面实现数据源动态切换。文章详细演示了从配置多数据源、自定义注解到实现AOP拦截的完整方案,并探讨了生产环境中的线程安全、事务管理等关键问题。最后对比了手写实现与MyBatis-Plus、ShardingSphere原创 2025-08-15 09:45:00 · 1139 阅读 · 0 评论 -
MyBatis Interceptor 深度解析与应用实践
本文深入解析MyBatis拦截器(Interceptor)机制与应用实践。首先概述拦截器作为MyBatis核心扩展机制,能在不修改源码的情况下通过动态代理拦截SQL执行流程,实现日志、监控、安全等横切关注点。文章详细剖析其工作原理,包括Interceptor接口、@Intercepts注解配置及责任链模式的执行流程,并结合源码分析InterceptorChain和Plugin等关键类的实现。在实践层面,提供了分页插件、SQL审计、性能监控等典型应用场景的实现方案,并给出线程安全、缓存优化等性能调优建议。最后原创 2025-08-14 17:26:49 · 972 阅读 · 0 评论 -
MyBatis框架中Executor执行器的深度解析
本文系统梳理了MyBatis中Executor的核心机制与实现原理。Executor作为MyBatis的执行引擎,主要分为三种基础类型(Simple/Reuse/Batch)和一种装饰器类型(CachingExecutor)。SimpleExecutor每次创建新Statement,适合简单场景;ReuseExecutor复用Statement提升性能;BatchExecutor通过JDBC批处理优化大批量操作;CachingExecutor则通过二级缓存减少数据库访问。文章详细分析了各类Executor的原创 2025-08-14 15:01:37 · 647 阅读 · 0 评论 -
MyBatis框架中KeyGenerator的深度技术解析
本文深入探讨了MyBatis中KeyGenerator的主键生成机制,分析了Jdbc3KeyGenerator和SelectKeyGenerator两种实现类的原理与源码,并通过实战案例对比了不同数据库下的性能表现。文章指出MySQL的useGeneratedKeys方式性能最优,而Oracle的批量插入(UNION ALL)能显著提升效率。最后介绍了自定义主键生成策略的高级技巧,包括实现KeyGenerator接口、Interceptor集成和TypeHandler协作三种方案。该研究为MyBatis开发原创 2025-08-14 09:52:54 · 1066 阅读 · 0 评论 -
MyBatis ResultSetHandler详解
MyBatis ResultSetHandler核心解析 ResultSetHandler是MyBatis处理JDBC查询结果的核心组件,负责将ResultSet转换为Java对象。主要功能包括: 结果集映射:通过ResultMap实现列与属性的匹配,支持简单映射、嵌套映射(association/collection)和延迟加载 多结果集处理:支持存储过程返回的多个ResultSet 游标处理:提供Cursor接口处理大数据量结果 输出参数处理:支持存储过程OUT参数映射 实现特点: 采用模板方法模式定义原创 2025-08-14 09:31:54 · 1046 阅读 · 0 评论 -
MyBatis缓存模块深度解析
MyBatis缓存机制解析与实践摘要 MyBatis提供两级缓存以提升性能:一级缓存(SqlSession级别)默认开启,通过HashMap存储查询结果,相同会话内重复查询可命中,但线程不安全且随会话结束失效;二级缓存(Mapper级别)需显式配置,支持跨会话共享,数据序列化存储,通过装饰器模式实现LRU淘汰、日志等功能。源码分析显示,一级缓存由BaseExecutor管理,二级缓存通过CachingExecutor和TransactionalCacheManager实现事务延迟写入。缓存通过执行更新操作、原创 2025-08-14 09:31:37 · 1221 阅读 · 0 评论 -
MyBatis Binding模块技术详解
摘要: MyBatis Binding模块是连接Mapper接口与SQL映射的核心组件,通过动态代理技术实现接口方法到SQL语句的自动绑定。该模块主要包括MapperRegistry(管理Mapper接口注册)、MapperProxyFactory(生成代理对象)、MapperProxy(拦截方法调用)和MapperMethod(执行SQL逻辑)四大核心组件。当用户调用Mapper方法时,Binding模块将方法调用转化为对SqlSession的相应操作,并处理参数绑定与结果映射。 关键实现包括: 动态代理原创 2025-08-13 11:27:47 · 575 阅读 · 0 评论 -
MyBatis 事务管理(Transaction)实现原理深度解析
摘要: 本文深入探讨MyBatis在事务管理中的核心机制及其与Spring的整合实践。MyBatis通过Transaction接口抽象事务操作,提供JDBC(默认)和MANAGED两种事务管理模式,分别由MyBatis或外部容器(如Spring)控制事务边界。与Spring整合时,SpringManagedTransaction将事务管理权移交至Spring的PlatformTransactionManager,通过TransactionSynchronizationManager实现连接复用与线程绑定。文原创 2025-08-13 10:46:06 · 819 阅读 · 0 评论 -
MyBatis 日志模块深度解析
MyBatis日志模块是Java开发中SQL执行过程的可视化追踪工具,通过适配器模式支持SLF4J、Log4j2等多种日志框架,同时采用代理模式拦截JDBC操作输出SQL日志。文章详细介绍了MyBatis日志模块的设计原理、配置方法及优化策略,包括日志级别控制、敏感信息脱敏、异步写入等生产环境最佳实践。开发者可通过自定义Log实现扩展日志功能,满足不同场景需求。该模块既保证了开发调试的便利性,又兼顾了生产环境的性能与安全要求。原创 2025-08-13 09:52:25 · 756 阅读 · 0 评论 -
MyBatis 解析器模块全景剖析
MyBatis解析器模块是框架初始化的核心组件,负责将XML配置文件转换为Java可操作的数据结构。该模块采用DOM+XPath解析机制,主要功能包括:XML文件读取与DOM构建、XPath快速定位、本地DTD/XSD验证、动态变量替换等。核心类XPathParser封装了Java原生XPath API,支持变量替换和命名空间处理;XMLMapperEntityResolver实现本地DTD解析,避免网络请求;PropertyParser与GenericTokenParser协作处理${}和#{}占位符,确原创 2025-08-13 09:51:03 · 665 阅读 · 0 评论 -
MyBatis DataSource 原理全链路深度解析
本文深入剖析了MyBatis数据源(DataSource)的设计与实现。首先介绍了MyBatis在Java生态中的角色,以及数据源在数据库访问中的重要性。然后详细解析了MyBatis对DataSource的三种实现方式(UNPOOLED、POOLED、JNDI),重点分析了连接池技术基础和PooledDataSource的核心机制。文章还探讨了DataSourceFactory工厂方法模式的设计,以及如何通过XML或JavaConfig配置数据源。最后针对常见问题如连接泄漏、连接池满等给出了解决方案,并分享原创 2025-08-13 09:50:46 · 969 阅读 · 0 评论 -
MyBatis整体架构深度解析:从底层源码到实际应用
本文深入解析MyBatis框架的核心架构与实现原理。文章首先介绍了MyBatis的三层架构设计:接口层、核心处理层和基础支持层,详细阐述了各层功能与交互机制。重点分析了关键组件如SqlSession、MapperProxy、Executor等的工作原理,并深入源码讲解了配置加载、SQL解析、结果映射等核心流程。此外,还探讨了MyBatis的扩展功能,包括插件机制、动态SQL优化、缓存策略等高级特性,以及如何与Spring框架进行整合。通过理论讲解与代码示例相结合的方式,帮助开发者全面掌握MyBatis的设计原创 2025-08-12 09:48:11 · 1187 阅读 · 0 评论