以下Mybatis解析基于org.mybatis:mybatis:3.4.5
一、整体设计
图片来源

二、核心类解读
1. SqlSession和SqlSessionFactory
SqlSession是Mybatis框架对外暴露的顶层API接口,通过这个接口可以实现增删改查、事务管理等数据库操作,框架中提供了DefaultSqlSession和SqlSessionManager两个实现类。
在SqlSession的所有增删改查的操作方法中,其第一个参数均为String statement,对应接口层的statementId(或者mapper接口中方法的方法名),具有DefaultSqlSessionFactory和SqlSessionManager两个实现类。
SqlSessionFactory是SqlSession的工厂类,根据连接或者数据源生成SqlSession。

2. Executor
Executor是mybatis的核心执行器接口,mybatis的大部分逻辑处理都在Executor完成,包括缓存处理,根据MappedStatement和参数生成动态sql语句,并返回sql的执行结果。框架中的抽象类BaseExecutor实现了Exec

本文基于Mybatis 3.4.5详细解析了SqlSession、SqlSessionFactory、Executor、StatementHandler、ParameterHandler、ResultSetHandler和TypeHandler等核心类的作用及功能,深入理解Mybatis的工作原理。
最低0.47元/天 解锁文章





