- 博客(12)
- 收藏
- 关注
原创 【源码解读之 Mybatis】【核心篇】-- 第10篇:动态SQL实现原理详解
摘要:MyBatis动态SQL实现原理 本文深入解析MyBatis动态SQL的核心实现机制。动态SQL通过SqlNode接口体系实现,包含IfSqlNode、WhereSqlNode、ForEachSqlNode等实现类,对应XML中的各种动态标签。执行流程分为:1)创建DynamicContext收集SQL片段;2)SqlNode树遍历求值;3)SqlSourceBuilder解析占位符生成BoundSql。关键组件包括SqlSource、DynamicContext和ExpressionEvaluato
2025-12-14 20:31:38
764
原创 【源码解读之 Mybatis】【核心篇】-- 第9篇:MappedStatement 映射语句解析详解
本文深入解析MyBatis核心组件MappedStatement,它是单条SQL映射语句的完整描述对象。MappedStatement包含SQL来源、参数映射、结果映射、执行属性和缓存策略等关键信息,是MyBatis执行SQL的"蓝图"。文章详细介绍了MappedStatement的结构与构建流程,包括XML/注解两种配置方式,以及SqlSource与BoundSql的协作机制。同时分析了运行期MappedStatement.getBoundSql()的调用链和缓存键生成过程,并阐述了u
2025-12-04 17:12:53
819
原创 【源码解读之 Mybatis】【核心篇】-- 第8篇:ResultSetHandler结果集处理
MyBatis ResultSetHandler 核心机制解析 ResultSetHandler 是 MyBatis 处理 SQL 查询结果的核心组件,主要职责包括: 结果集处理:将 JDBC ResultSet 转换为 Java 对象集合 游标处理:支持流式查询结果处理 存储过程输出参数处理 核心实现流程: 通过 DefaultResultSetHandler 处理多个结果集 结合 ResultMap 配置进行自动/手动映射 与 TypeHandler 协作完成类型转换 支持嵌套查询和结果映射 关键特性:
2025-11-30 15:22:51
940
原创 【源码解读之 Mybatis】【核心篇】--第7篇:ParameterHandler参数处理机制
本文深入解析MyBatis的ParameterHandler参数处理机制。ParameterHandler作为"参数翻译官",负责将Java对象转换为JDBC可识别的参数。文章首先解答了上篇关于StatementHandler的思考题,随后系统介绍了ParameterHandler的核心职责、实现机制与协作关系。重点剖析了DefaultParameterHandler的工作原理、参数映射配置、TypeHandler类型转换机制,以及不同参数类型的处理策略。文章还探讨了参数验证、性能优化和
2025-10-16 17:43:45
345
原创 【源码解读之 Mybatis】【核心篇】-- 第6篇:StatementHandler语句处理器
本文是 MyBatis 源码解析系列的第6篇,深入剖析 StatementHandler 语句处理器体系在 MyBatis 执行层中的核心作用。通过源码分析、实践案例和 Mermaid 图,系统讲解了 StatementHandler 的设计思想、职责分工及实现机制
2025-10-13 17:46:52
365
原创 【源码解读之 Mybatis】【核心篇】--第5篇:Executor执行器体系详解
MyBatis Executor执行器体系解析 本文深入剖析MyBatis的Executor执行器体系架构,主要内容包括: 体系结构:采用模板方法模式(BaseExecutor)与装饰器模式(CachingExecutor)相结合的设计 执行器类型: SimpleExecutor:简单执行,每次创建新Statement ReuseExecutor:重用Statement,减少预编译开销 BatchExecutor:批量处理SQL提升性能 CachingExecutor:二级缓存管理装饰器 核心机制: 一级缓
2025-09-30 14:33:20
747
原创 【源码解读之 Mybatis】【基础篇】--第4篇:Mapper 接口的动态代理机制解析
MyBatis Mapper接口动态代理机制解析 本文深入探讨了MyBatis中Mapper接口的动态代理实现机制。核心内容包括: 代理对象创建流程:通过MapperRegistry注册接口,MapperProxyFactory使用JDK动态代理生成实例,并缓存MapperMethod以提高性能。 调用链分析:用户调用Mapper方法时,MapperProxy将请求转发给MapperMethod,后者根据SQL命令类型委托SqlSession执行。 关键组件协作: MapperProxy处理接口方法调用 M
2025-09-24 17:41:30
772
原创 Oracle清理:如何安全删除trace, alert和archivelog文件?
Oracle数据库清理摘要 本文档详细记录了Oracle 19.3开发环境数据库的清理流程,主要包括三部分内容:1)环境准备,包括环境变量设置和磁盘占用检查;2)诊断文件清理,使用ADRCI工具清理7天前的incident、trace、cdump等诊断数据;3)归档日志清理,通过RMAN删除7天前的归档日志。此外还介绍了监听日志等其他日志文件的清理方法,并建议设置定时任务实现自动化清理。整个清理过程无需停止数据库服务,可有效解决磁盘空间不足问题。
2025-09-18 17:16:08
1091
原创 【源码解读之 Mybatis】【基础篇】-- 第3篇:SqlSession的创建与生命周期
本文是 MyBatis 源码解析系列的第3篇,基于 MyBatis 3.5.x,深入剖析 SqlSession 的设计、创建流程和生命周期管理,揭示其在 MyBatis 架构中的核心作用。通过源码分析和实践案例,帮助开发者理解 SqlSession 如何协调配置、执行器、事务等组件,执行数据库操作。
2025-09-15 20:00:00
702
原创 【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析
MyBatis配置系统解析摘要 MyBatis配置系统作为框架核心基础,采用分层设计统一管理所有配置项。核心组件包括Configuration类(配置中心)、XML解析器、Mapper解析器和注解解析器。Configuration类负责配置存储、管理、验证及扩展,其核心属性涵盖环境配置、数据库设置、日志缓存、类型处理等。通过分层架构(主配置文件、Mapper XML和接口注解)实现职责分离,支持插件扩展和性能优化。理解配置系统是深入MyBatis源码的关键,因其为会话管理、执行器等模块提供基础支持。
2025-09-09 18:15:00
642
原创 【源码解读之 Mybatis】【基础篇】-- 第1篇:MyBatis 整体架构设计
MyBatis 3.x架构解析与源码环境搭建 MyBatis是一个持久层框架,采用三层架构设计:接口层(SqlSession、Mapper接口)、核心处理层(Executor、StatementHandler)和基础支持层(反射、类型转换等)。本文介绍了MyBatis 3.x版本的整体架构,包括核心组件职责和协作关系,并详细说明了源码环境搭建步骤,包括克隆仓库、IDEA配置、目录结构解析和调试技巧。文章还提供了验证环境是否搭建成功的方法,为后续深入源码分析奠定基础。
2025-09-05 17:52:10
785
原创 linux环境下编写脚本_实现启停tomcat服务
第一步:新建一个shell脚本,命名为tomcat_ctmp.sh第二步:编写shell脚本:#!/bin/bash#指定tomcat路径export TOMCAT_HOME=/ams/coms-tomcat-7.0.53#获取到进程idPID=$(ps x|grep $TOMCAT_HOME|grep -v grep|awk '{printf $1}')if ...
2019-03-03 23:15:37
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅