mybatis运行原理

运行过程中涉及到的类或者接口

  • Resources(c) :用于加载mybatis核心配置文件
  • XMLConfigBuilder(c) :用于解析xml文件(核心配置文件)
  • Configuration(c):用于存放xml文件解析后的结果
  • DefaultSqlSessionFactory(c):是SqlSessionFactory(I)的实现类,创建时需要使用Configuration对象。
  • SqlSession(I):是mybatis操作的核心
  • DefaultSqlSession(C):是SqlSession接口的实现类。
  • TransactionFactory(I):用于生产Transaction对象
  • Transaction(I):用于表示操作数据库的事务对象
  • Executor(I):是MyBatis的核心执行器,类似于jdbc中的Statement,常用的实现类是SimpleExecutor.

文字描述

      当mybatis运行开始时,先要通过Resources加载核心配置文件,之后使用XMLConfigBuilder对配置文件进行解析,将解析结果封装为Configuration对象,接着,使用Configuration构建一个DefaultSqlSessionFactory对象,至此,SqlSession工厂构建完成。接下来,通过工厂对象调用openSession方法创建SqlSession对象。在这个过程中,需要通过TransactionFactory对象,并且,还需要创建核心执行器Executor对象,之后通过这些对象来创建DefaultSqlSession对象,至此,SqlSession对象创建成功。

   之后,通过SqlSession对象来执行响应的 操作,如果执行成功,调用commit方法来提交事务;如果失败,调用rollback方法事务回滚。最后,调用close方法关闭session资源。以上,就是MyBatis的运行原理。

mybatis运行原理的更多相关文章

  1. 居然还有人这样解说mybatis运行原理

    目录 Mybatis基本认识 动态代理 JDK实现 CGLIB动态代理 总结 反射 Configuration对象作用 映射器结构 sqlsession执行流程(源码跟踪) Executor Stat ...

  2. JDBC介绍和Mybatis运行原理及事务处理

    本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...

  3. mybatis运行原理学习

    一.分步骤分析 1.根据配置文件创建SqlSessionFactory: 解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession ...

  4. Mybatis的SqlSession运行原理

    前言 SqlSession是Mybatis最重要的构建之一,可以简单的认为Mybatis一系列的配置目的是生成类似 JDBC生成的Connection对象的SqlSession对象,这样才能与数据库开 ...

  5. 互联网轻量级框架SSM-查缺补漏第七天(MyBatis的解析和运行原理)

    第七章MyBatis的解析和运行原理 SqlSessionFactory是MyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心借口SqlSession,所以要先创建SqlSess ...

  6. Mybatis的解析和运行原理

    Mybatis的解析和运行原理 Mybatis的运行过程大致分为两大步:第一步,读取配置文件缓存到Configuration对象,用以创建 SqlSessionFactory:第二步,SqlSessi ...

  7. Mybatis插件原理分析(二)

    在上一篇中Mybatis插件原理分析(一)中我们主要介绍了一下Mybatis插件相关的几个类的源码,并对源码进行了一些解释,接下来我们通过一个简单的插件实现来对Mybatis插件的运行流程进行分析. ...

  8. 【转】MaBatis学习---源码分析MyBatis缓存原理

    [原文]https://www.toutiao.com/i6594029178964673027/ 源码分析MyBatis缓存原理 1.简介 在 Web 应用中,缓存是必不可少的组件.通常我们都会用 ...

  9. 深入理解MyBatis的原理:整个体系

    前言:工作中虽然用到了 MyBatis,可完全不知道为什么,再不学习就晚了,这里将记录我的学习笔记,整个 MyBatis 的体系. 一.简介 1.传统的JDBC JDBC 是一种典型的桥接模式. 使用 ...

随机推荐

  1. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)

    github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...

  2. ASP.NET MVC 计划任务(不使用外接程序,.net内部机制实现)

    在asp.net中要不使用其他插件的情况下只能使用定时器来检查, 并执行任务. 以下讲解步骤: 1. 在Global.asax 文件中作如下修改 1 2 3 4 5 6 7 8 9 10 11 voi ...

  3. PHP 正则表达式---匹配模式

    1.PHP 正则表达式 正则表达式贪婪匹配,非贪婪匹配. 默认是贪婪匹配, 例如 ①.贪婪匹配, $str = ' 香肠 月饼 '; preg_match('/ (.)</td>/',$s ...

  4. vulnerability test

    vegas ---go--https://zhuanlan.zhihu.com/p/21826478 locust---python jmeter--java---http://www.cnblogs ...

  5. 图->连通性->最小生成树(普里姆算法)

    文字描述 用连通网来表示n个城市及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价.对于n个定点的连通网可以建立许多不同的生成树,每一棵生成树都可 ...

  6. MySQL 数据库登录查询

    1. 进入到bin目录:   键入cd..,一直到出现C:\ 为止   然后cd bin所在路径:   如: C:\cd C:\Program Files\MySQL\MySQL Server 5.7 ...

  7. 《Linux 文本处理》- awk 分析 nginx 日志

    废话不多说,简单了解一下 awk - 强大的文本分析工具,也就是分析日志 最常用的就是分析日志了吧,做统计什么,这里也拿 nginx 日志来做分析 1:统计出现次数 - 比如状态码出现次数 - 先直接 ...

  8. 安装IIS

    1.打开控制面板,找到“程序与功能”,点进去  2.选择打开或关闭Windows功能,选择internet信息服务,点击确定 3.安装完成后,再回到控制面板里面,找到“管理工具”,点进入 4.双击“I ...

  9. 继承数组的slice方法

    <script> var arr=[1,2,3,4,5]; console.log(Array.prototype.slice.call(arr,1)); </script> ...

  10. Vue项目

    1.新建Vue项目:vue init webpack projectName 2.vue-router模块 1.安装vue-router模块:npm install vue-router --save ...