MyBatis运行原理
一、总体概览
MyBatis分层结构
SQL映射原理
二、MyBatis运行原理
获取sqlSessionFactory对象
解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;
注意:【MappedStatement】:代表一个增删改查的详细信息
获取sqlSession对象
返回一个DefaultSQlSession对象,包含Executor和Configuration;这一步会创建Executor对象;
获取接口的代理对象(MapperProxy)
getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象,代理对象里面包含了,DefaultSqlSession(Executor)
执行增删改查方法
三、总结:
1、根据配置文件(全局,sql映射)初始化出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);
如果,您对我的这篇博文有什么疑问,欢迎评论区留言,大家互相讨论学习。
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博文感兴趣,可以关注我的后续博客,我是【AlbertRui】。转载请注明出处和链接地址,欢迎转载,谢谢!