Mybatis详细的执行流程 Mybatis详细的执行流程

Mybatis详细的执行流程
Mybatis详细的执行流程

  1. SqlSessionFactoryBuilder通过构造器build调用build构造方法
    Mybatis详细的执行流程
Mybatis详细的执行流程

  2. build构造方法调用XMLConfigBuilder这个类解析了(inputStream, environment, properties)
    Mybatis详细的执行流程
Mybatis详细的执行流程

  3. 解析完后传给Configuration这个对象(Configuration中包含了所有的配置内容)
    Mybatis详细的执行流程
Mybatis详细的执行流程

  4. 之后SqlSessionFactory实例化,获取sqlSession(事务在这一层去做,相当于原来的Connection)
    Mybatis详细的执行流程
Mybatis详细的执行流程

  5. sqlSession里面有一个executor执行器,executor执行mapper,mapper通过反射加载出类的所有信息,包括了sqlSession,sqlSession中又有缓存executor执行器(executor把自己套进去了),套进去后开始执行sql语句,sql从配置文件中读取.
    成功执行sql语句提交事务,失败回滚.

    Mybatis详细的执行流程
Mybatis详细的执行流程

对第5步做一些简单的解释: sqlSession中包括了运行一个sql语句所需的条件,包括事务,执行器,加载器等.但就是没有sql语句,于是通过反射获取到了接口以及接口下类的所有信息,就有了sql语句,mapper只是放这所有信息的变量 . 于是有条件又有语句就可以执行sql语句了.
Mybatis详细的执行流程
Mybatis详细的执行流程