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);

  • 相关阅读:
    2021 Duilib最新入门教程(二)Duilib编译动态库
    2021 Duilib最新入门教程(一)Duilib简介
    webgl图库选型
    CUDA编程学习记录
    C++时间戳获取
    FFMPEG编译问题记录
    程序员的35岁
    Linux发行版及其目标用户
    服务器关机或重启
    Linux下找出吃内存的方法总结
  • 原文地址:https://www.cnblogs.com/dreampig/p/9359060.html
Copyright © 2011-2022 走看看