MyBatis运行原理

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】。

转载请注明出处和链接地址,欢迎转载,谢谢!

原文地址:https://www.cnblogs.com/albertrui/p/8488176.html