zoukankan      html  css  js  c++  java
  • 关于MyBatis的运行原理(转载)

    1、获取sqlSessionFactory对象:
      解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSessionFactory;
      注意:【MappedStatement】:代表一个增删改查的详细信息

     2、获取sqlSession对象
       返回一个DefaultSQlSession对象,包含Executor和Configuration;
      这一步会创建Executor对象;

     3、获取接口的代理对象(MapperProxy)
       getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象
       代理对象里面包含了,DefaultSqlSession(Executor)
     4、执行增删改查方法

     总结:
       1、根据配置文件(全局,sql映射)初始化出Configuration对象
       2、创建一个DefaultSqlSession对象,他里面包含Configuration以及Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)
       3、DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy;
       4、MapperProxy里面有(DefaultSqlSession);
       5、执行增删改查方法:
         1)、调用DefaultSqlSession的增删改查(Executor);
         2)、会创建一个StatementHandler对象。
         (同时也会创建出ParameterHandler和ResultSetHandler)
         3)、调用StatementHandler预编译参数以及设置参数值;
         使用ParameterHandler来给sql设置参数
         4)、调用StatementHandler的增删改查方法;
         5)、ResultSetHandler封装结果
     注意:
     四大对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler)

    每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler);

  • 相关阅读:
    Kudu vs HBase
    数据分析怎么更直观?十分钟构建数据看板
    The Beam Model:Stream & Tables翻译(上)
    3分钟掌握一个有数小技能:收入贡献分析
    猛犸机器学习开发实践
    SparkSQL大数据实战:揭开Join的神秘面纱
    细说Mammut大数据系统测试环境Docker迁移之路
    python中的闭包与装饰器
    import详解
    python中的with与上下文管理器
  • 原文地址:https://www.cnblogs.com/dreampig/p/9359060.html
Copyright © 2011-2022 走看看