一. 通过Resources这个类获取一个输入流,加载mybatis的核心配置文件.

二. 然后创建SqlSessionFactoryBuilder实例通过build()方法去读取这个输入流,得到一个工厂对象
其中:
第一步. 底层会创建一个装载配置文件的类XMLConfigBuild

第二步通过这个类的对象的parse()方法去真正获取一个装载了所有配置文件的类对象configuration,该对象封装了我们在mybatis.xml中配置的所有信息.


第三步,就这样,一个包含了所有配置信息的工厂对象sqlSessionFactory诞生了

三 . 通过工厂建立sqlSession对象,每一个线程都独立拥有自己的sqlSession,该对象包含了执行sql的executor执行器,执行器包含了缓存信息等重要信息.

四 . 通过sqlSession获取一个mapper的代理实现类,执行特定接口里的方法

五 . 执行完成后,有异常则回滚,没有则提交

Mybatis执行过程源码分析相关推荐

  1. MyBatis(二)MyBatis基本流程源码分析

    MyBatis体系结构 MyBatis的工作流程 在MyBatis启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,我们会把它们解析成一个Configuration对象,里面会包含各种 ...

  2. dubbo服务执行过程源码分析

    在之前的讲解中,我们说明了springboot和dubbo的整合使用,但对很多同学来说,可能还并不是很清楚dubbo内部的执行流程,如果要弄清楚dubbo的运行流程的话就需要跟踪源码进行分析,这是一个 ...

  3. springmvc执行过程源码分析

    1:tomcat启动,创建容器过程: 通过load-on-start标签指定1,创建DispatcherServlet对象, DispatcherServlet的父类是继承HttpServlet的,它 ...

  4. 【SRIO】5、Xilinx RapidIO核例子工程源码分析

    目录 一.软件平台与硬件平台 二.打开例子工程 三.例子工程详解 3.1 工程概述 3.2 工程结构 3.3 工程分析 四.工程源码分析 3.1 顶层模块srio_example_top.v源码分析 ...

  5. 5.Xilinx RapidIO核例子工程源码分析

    https://www.cnblogs.com/liujinggang/p/10091216.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:V ...

  6. 小明分享|8ms平台下工程源码分析

    今天小明为大家分享的是开发工具平台-8ms(www.8ms.xyz)工程源码分析 1.打开"8ms平台",创建工程制作完UI后,选中"编译"一栏,等待结束后,选 ...

  7. SpringMVC执行流程源码分析

    SpringMVC执行流程源码分析 我们先来看张图片,帮助我们理解整个流程 然后我们开始来解析 首先SpringMVC基于Servlet来运行 那么我们首先来看HttpServletBean这个类 他 ...

  8. 【源码分析】storm拓扑运行全流程源码分析

    [源码分析]storm拓扑运行全流程源码分析 @(STORM)[storm] 源码分析storm拓扑运行全流程源码分析 一拓扑提交流程 一stormpy 1storm jar 2def jar 3ex ...

  9. Android应用程序启动Binder线程源码分析

    Android的应用程序包括Java应用及本地应用,Java应用运行在davik虚拟机中,由zygote进程来创建启动,而本地服务应用在Android系统启动时,通过配置init.rc文件来由Init ...

最新文章

  1. 基础必备 | Python处理文件系统的10种方法
  2. 73款阿里巴巴开源软件详解
  3. 推荐阅读20101115
  4. int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...
  5. 科大星云诗社动态20210301
  6. [JavaWeb-Servlet]Servlet相关配置
  7. java设计模式代理模式_Java中的代理设计模式
  8. 计算机科学分为几个部分,计算机由几部分组成各部分的功能是什么
  9. oracle00333,Oracle数据库REDO损坏ora-00333修复手札
  10. 一步一步重构柔性数组和智能指针
  11. 刀下留人--苹果开发者账号封号前挽救
  12. C++运算符重载(简单易懂)
  13. Kafka(四).KafkaJAVA 基础API
  14. java winrar_Java使用winrar解压缩 | 学步园
  15. 第五次作业:项目分类
  16. ajax 用js直接访问服务器的一个例子
  17. 实验 6 文件打包与解压缩
  18. 编写测试用例基本要求、非功能性测试和状态迁移法介绍
  19. android定制系统横评,拒骚扰挡风险 Android安全卫士软件横评
  20. python面试常见知识点收集,长期更新

热门文章

  1. 【机器学习PAI实践七】文本分析算法实现新闻自动分类
  2. github如何make contribute to 其它开源项目
  3. A beginner’s guide to Cache synchronization strategies--转载
  4. Linux shell的和||--转载
  5. android 图片操作
  6. 【Git】Git教程
  7. 【采用】【风险管理】金融业务风控相关框架(宝藏)
  8. 【待继续研究】解析信用评分模型的开发流程及检验标准(晕乎乎,看不懂~)
  9. Oozie基于Hue全流程调度
  10. 美团点评基于 Flink 的实时数仓平台实践