简介
Mybatis作为一个优秀的Java持久化框架,在我们的日常工作中相信都会用到,本次源码解析系列,就开始探索下Mybatis
总结
在MyBatis的学习中,首先通读了《MyBatis3源码深度解析》一遍,然后抱着如何去写一个基本功能的MyBatis框架的想法,又读了2-3遍
心中有了大致的想法,然后再去通过MyBatis的示例去走一遍源码,注重关注了一些在写Demo中可能会遇到的细节点
后面花了两三天的时间,把基本功能的框架Dome给写了出来,各个感觉还是可以的,达到了自己预期的目标
下面再总结下MyBatis的学习:
下面一个图,来源于:《MyBatis3源码深度解析》基本涵盖了MyBatis的核心:

最右侧的是全局配置 Configuration:这里负责前期Mapper的解析和TypeHandler注册相关的,在初始化阶段,把在后期SQL查询前的参数解析和结果转换时需要用到的东西先存下来,便于后面获取用于处理
左侧是MyBatis的核心类:
- SQLSession:可以算是整个Mybatis的入口,数据库源与和Mapper的代理对象从这里进行获取
- Executor:语句执行入口
- StatementHandler:可以算是JDBC中对于Statement的封装,主要是语句生成相关方面的处理
- ParameterHandler:SQL查询时参数转换处理,如果有参数则调用TypeHandler相关逻辑
- ResultSetHandler:负责SQL结果的处理,如果有返回结果需要处理,则调用TypeHandler相关逻辑
- TypeHandler:负责JavaType与jdbcType的相关转换

本文主要介绍了Mybatis3的源码解析和核心逻辑,包括SQLSession、Executor、StatementHandler、ParameterHandler和ResultSetHandler等组件的功能。作者通过阅读《MyBatis3源码深度解析》并实现了一个基本功能的Demo,理解了MyBatis如何处理数据库操作。此外,还分享了动态SQL的原理,并提供了系列文章的目录和GitHub上的Demo工程链接。
最低0.47元/天 解锁文章
192

被折叠的 条评论
为什么被折叠?



