MyBatis8-运行原理
八.运行原理
8.1 获取sqlSessionFactory对象
解析文件的每一个信息保存在Configuration中,但会包含Configuration的DefaultSqlSession
注意:MapperStatement:代表一个增删改查的详细信息
8.2 获取sqlSession对象
返回一个DefaultSqlSession对象,包含Executor(根据全局配置文件中的defaultExecutorType)和Configuration;
这一步会创建Executor对象;
8.3 获取接口的代理对象(MapperProxy)
getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象
代理对象里面包含了,DefaultSqlSession(Executor)
8.4 执行增删改查方法
调用DefauluSqlSession的增删改查(Executor);
会创建一个StatementHandler(同时也创建出ParameterHandler:处理参数
和ResultSetHandler:处理结果);
调用ParameterHandler预编译参数以及设置参数值:
调用StatementHandler的增删改查;
用ResultSetHandler来封装结果集;
注意:四大对象每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler)