zoukankan      html  css  js  c++  java
  • 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】。

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

  • 相关阅读:
    大二下学期第一次结对作业(第二阶段)
    大二下学期阅读笔记(人月神话)
    大二下每周总结
    大二下学期第一次结对作业(第二阶段)
    大二下学期第一次结对作业(第二阶段)
    elasticsearch mappings之dynamic的三种状态
    elasticsearch mapping映射属性_source、_all、store和index
    Java学习
    Java学习
    Java学习
  • 原文地址:https://www.cnblogs.com/albertrui/p/8488176.html
Copyright © 2011-2022 走看看