work hard work smart

专注于AI+Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MyBatis 核心流程和原理

Posted on 2026-03-09 17:02  work hard work smart  阅读(21)  评论(0)    收藏  举报

- 启动建模 :解析配置/Mapper(XML/注解)→ 构建 Configuration / MappedStatement → 生成 SqlSessionFactory ;对应技术:XML 解析、Builder/Factory 模式。
- 会话入口 : openSession() 获取 SqlSession ;对应技术:门面模式、事务管理(Transaction)、连接池(DataSource)。
- Mapper 调用 : getMapper() 返回接口代理,方法→ statementId ;对应技术:JDK 动态代理、反射元数据缓存。
- SQL 生成与设参 :动态 SQL → BoundSql → ParameterHandler 设参;对应技术:动态 SQL 节点树、OGNL、TypeHandler。
- 执行与缓存 : Executor 执行(Simple/Reuse/Batch)+ 一级/二级缓存;对应技术:策略模式、模板方法、装饰器缓存。
- 结果映射 : ResultSetHandler 按 ResultMap 映射对象;对应技术:反射/MetaObject、TypeHandler。
- 插件扩展 :拦截 Executor/StatementHandler/ParameterHandler/ResultSetHandler;对应技术:责任链 + 动态代理(AOP 思路)。

流程图:

image