MyBatis框架的工作原理
来源:互联网 发布:网络销售具体做什么 编辑:程序博客网 时间:2024/05/29 23:24
每学习一个新知识,不管是框架,还是语言,永远都是以helloworld开始的,我们的mybatis也一样是这样子的
1.获取sqlSessionFactory对象:SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
解析文件的每一个信息保存在Configuration中,返回包含了Configuration的DefaultSqlSession对象
注意:MappedStatement:代表一个增删改查的详细信息
----------Configuration封装了所有配置文件的信息---------总结:把配置文件的信息解析并保存在Configuratiion对象中,返回包含了Configuration的DefaultSqlSession对象
2.获取sqlSession对象:sqlSession openSession = sqlSessionFactory.openSession();
返回一个DefaultSqlSession的对象,他包含了 Executor和Configuration
这一步会创建Executor对象
-----------返回SqlSession的实现类DefaultSqlSession的对象,他包含了 Executor和Configuration,Executor会在这一步被创建。
3.获取接口代理的对象(会为接口自动创建一个代理对象,代理对象去执行增删改查):MapperProxy
getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象
代理对象包含了DefaultSqlSession(Executor)执行增删改查
---------------getMapper返回接口的代理对象,包含了SqlSession对象-----------
4.执行增删改查的方法:
总结:
1.根据配置文件初始化出Configuration对象
2.创建出DefaultSqlSession对象
他里面包含Configuration和Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)
3.DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy
4.MapperProxy里面有DefaultSqlSession
5.执行增删改查方法:
调用DefaultSqlSession的增删改查(Executor)
会创建一个StatementHandler对象(同时会创建出ParameterHandler和ResultSetHandler)
调用StatementHandler预编译参数以及设置参数值
使用ParameterHandler来给sql设置参数
调用StatementHandler的增删改查方法
使用ResultSetHandler封装结果
注意:
四大对象每个创建的时候都有一个interceptorChain.pluginAll(ParameterHandler)
- MyBatis框架的工作原理
- 框架学习系列 mybatis 第二篇 mybatis的工作原理
- mybatis的工作原理
- MyBatis的工作原理
- Mybatis框架的运行原理
- Struts框架的工作原理
- Spring框架的工作原理
- SSH框架的工作原理
- mybatis自动扫描mapper的工作原理
- MyBatis(2)SqlSession的工作原理
- ORM框架--mybatis的基本工作流程
- Mybatis工作原理
- MyBatis工作原理
- Mybatis工作原理
- Mybatis 工作原理
- Mybatis工作原理
- Mybatis之工作原理
- mybatis的框架原理+入门程序解析
- 一元线性回归预测法
- C++ 指针调用
- C语言:字符串函数的实现
- 协同分割co-segmentation
- PY-append,time,print,datetime用法
- MyBatis框架的工作原理
- 笔记————C#数据库内容的查找
- Linux下的crontab定时执行任务命令详解
- JS的解析与执行过程
- Python 爬虫资源包整理
- Spark RDD
- NO.6 列表,元祖,字典
- OpenJ_Bailian
- 作为一个拼多多卖家,来总结一下怎么刷单安全!