mybatis运行原理

mac2022-06-30  23

整体运行原理图

1、获取sqlSessionFactory对象: 解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSessionFactory; 注意:【MappedStatement】:代表一个增删改查的详细信息 2、获取sqlSession对象 返回一个DefaultSQlSession对象,包含Executor和Configuration; 这一步会创建Executor对象; 3、获取接口的代理对象(MapperProxy) getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象 代理对象里面包含了,DefaultSqlSession(Executor) 4、执行增删改查方法 总结: 1、根据配置文件(全局,sql映射)初始化出Configuration对象 2、创建一个DefaultSqlSession对象, 他里面包含Configuration以及 Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor) 3、DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy; 4、MapperProxy里面有(DefaultSqlSession); 5、执行增删改查方法: 1)、调用DefaultSqlSession的增删改查(Executor); 2)、会创建一个StatementHandler对象。 (同时也会创建出ParameterHandler和ResultSetHandler) 3)、调用StatementHandler预编译参数以及设置参数值; 使用ParameterHandler来给sql设置参数 4)、调用StatementHandler的增删改查方法; 5)、ResultSetHandler封装结果 注意: 四大对象每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler);(插件日后再写笔记)

时序图

1、根据配置文件创建SQLSessionFactoryConfiguration封装了所有配置文件的详细信息把配置文件的信息解析并保存在Configuration对象中,返回包含了Configuration的DefaultSqlSessionFactory对象。

2、获取SqlSession的实现类DefaultSqlSession对象。(包含了Executor和Configuration;Executor会在这一步被创建)

3、getMapper返回接口的代理对象(包含了SqlSession对象)

4、crud比如select

转载于:https://www.cnblogs.com/laoyin666/p/10611989.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)