从整体到细节,分为四部分,
一、Mybatis核心流程四大对象
MyBatis完成一次数据库操作需要经过的步骤,如下:
1、加载配置文件
2、获取SqlSessionFactoryBuiler对象
3、通过SqlSessionFactoryBuiler和配置文件流来获取SqlSessionFactory对象
4、利用SqlSessionFactory对象来打开一个SqlSession
5、通过SqlSession来获得对应的Mapper对象
6、通过Mapper对象调用对应接口来封装执行sql并解析返回数据
从这些步骤我们可以看到,MyBatic完成一次数据库操作主要有4大核心对象:
SqlSessionFactoryBuiler,SqlSessionFactory,SqlSession、Mapper
二、Mapper执行流程四大对象
Mapper执行一次sql需要经过的步骤,如下:
1、通过MybatisMapperRegistry获取JDK动态代理对象MybatisMapperProxy
2、通过MybatisMapperProxy执行代理方法
3、通过MappedStatement和入参创建Executor并实际执行数据库操作
从这些步骤我们可以看到,Mapper完成一次数据库操作主要有4大核心对象:
MybatisMapperRegistry,MybatisMapperProxy,MappedStatement、Executor
三、Executor执行流程四大对象
Executor执行过程需要经过的步骤,如下:
1、创建Executor,然后利用StatementHandler执行数据库操作
2、执行数据库操作前,利用ParameterHandler做参数处理
3、执行数据库操作后,利用ResultSetHandler处理数据库返回结果
从这些步骤我们可以看到,Executor执行流程主要有4大核心对象:
Executor,StatementHandler,ParameterHandler、ResultSetHandler
(每个对象执行之前都会先执行拦截器链)
四、Mybatis参数及结果映射流程核心对象有两个:MetaObject和TypeHandler
1、将参数和执行sql解析封装成MetaObject
2、执行sql前后通过TypeHandler对java与数据库参数进行映射