Mybatis详细的执行流程
Mybatis详细的执行流程
-
SqlSessionFactoryBuilder通过构造器build调用build构造方法
-
build构造方法调用XMLConfigBuilder这个类解析了
(inputStream, environment, properties)
-
解析完后传给Configuration这个对象(Configuration中包含了所有的配置内容)
-
之后SqlSessionFactory实例化,获取sqlSession(事务在这一层去做,相当于原来的Connection)
-
sqlSession里面有一个executor执行器,executor执行mapper,mapper通过反射加载出类的所有信息,包括了sqlSession,sqlSession中又有缓存executor执行器(executor把自己套进去了),套进去后开始执行sql语句,sql从配置文件中读取.
成功执行sql语句提交事务,失败回滚.
对第5步做一些简单的解释: sqlSession中包括了运行一个sql语句所需的条件,包括事务,执行器,加载器等.但就是没有sql语句,于是通过反射获取到了接口以及接口下类的所有信息,就有了sql语句,mapper只是放这所有信息的变量 . 于是有条件又有语句就可以执行sql语句了.