自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除