欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

MyBatis运行原理

时间:2023-08-09


总结:
1、根据配置文件(全局config.xml,sql映射 mapper.xml)解析初始化出Configuration对象
2、创建一个DefaultSqlSession对象,
他里面包含Configuration以及
Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)

3、DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy(MapperProxy是代理对象,通过JDK动态代理生成);

4、MapperProxy里面有(DefaultSqlSession);

5、执行增删改查方法:
1)、调用DefaultSqlSession的增删改查(使用的是Executor的增删改查,然后Executor使用的是StatementHandler的增删改查,然后最底层其实就是基础的JDBC);
Executor如何使用StatementHandler的增删改查:
2)、会创建一个StatementHandler对象。
(同时也会创建出ParameterHandler和ResultSetHandler)
3)、调用StatementHandler预编译参数以及设置参数值;
使用ParameterHandler来给sql设置参数
4)、调用StatementHandler的增删改查方法;
5)、ResultSetHandler封装结果
注意:
四大对象(Excutor,StatementHandler,ParameterHandler,ResultSetHandler)每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler);(拦截器)

转自b站评论:
mybatis运行原理:
1.通过加载mybatis全局配置文件以及mapper映射文件初始化configuration对象
和Executor对象(通过全局配置文件中的defaultExecutorType初始化);
2.创建一个defaultSqlSession对象,将configuration对象和Executor对象注入给
defaulSqlSession对象中;
3.defaulSqlSession通过getMapper()获取mapper接口的代理对象mapperProxy
(mapperProxy中包含defaultSQLSession对象)
4.执行增删改查:
1)通过defaulSqlSession中的属性Executor创建statementHandler对象;
2)创建statementHandler对象的同时也创建parameterHandler和
resultSetHandler;
3) 通过parameterHandler设置预编译参数及参数值;
4)调用statementHandler执行增删改查;
5)通过resultsetHandler封装查询结果

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。