MyBatis执行原理图

作者:W&L

推荐: 陶邦仁的博客

 MyBatis执行原理图_第1张图片

(1)加载配置并初始化

      触发条件:加载配置文件

      配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。     

(2)接收调用请求

      触发条件:调用Mybatis提供的API

      传入参数:为SQL的ID和传入参数对象

      处理过程:将请求传递给下层的请求处理层进行处理。 

(3)处理操作请求

       触发条件:API接口层传递请求过来

       传入参数:为SQL的ID和传入参数对象

       处理过程:

        (A)根据SQL的ID查找对应的MappedStatement对象。

        (B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。

        (C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。

        (D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。

        (E)释放连接资源。       

(4)返回处理结果

将最终的处理结果返回。

 

 MyBatis执行原理图_第2张图片

1.1   分析结论

1、  mybatis配置文件,包括Mybatis全局配置文件和Mybatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射文件配置了SQL执行相关的信息。

2、  mybatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory即会话工厂。

3、  通过SqlSessionFactory,可以创建SqlSession即会话。Mybatis是通过SqlSession来操作数据库的。

4、  SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)

5、  Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括java的简单类型、HashMap集合对象、POJO对象类型。

 

1.1   分析结论

1、  mybatis配置文件,包括Mybatis全局配置文件和Mybatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射文件配置了SQL执行相关的信息。

2、  mybatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory即会话工厂。

3、  通过SqlSessionFactory,可以创建SqlSession即会话。Mybatis是通过SqlSession来操作数据库的。

4、  SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)

5、  Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括java的简单类型、HashMap集合对象、POJO对象类型。

转载于:https://www.cnblogs.com/lxl57610/p/7436763.html

你可能感兴趣的:(MyBatis执行原理图)