1、MyBatis基本工作原理介绍

计算机的基本工作就是存储和计算,而MyBatis是存储领域的利器。MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类。

2、MyBatis的核心流程介绍

mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory,然后,SqlSessionFactory的实例直接开启一个SqlSession,再通过SqlSession实例获得Mapper对象并运行Mapper映射的SQL语句,完成对数据库的CRUD和事务提交,之后关闭SqlSession。如下图所示:

MyBatis的工作原理如下图所示:

上面中流程就是MyBatis内部核心流程,每一步流程的详细说明如下文所述:

(1)读取MyBatis的配置文件。mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接信息。

(2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.xml中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。

(3)构造会话工厂。通过MyBatis的环境配置信息构建会话工厂SqlSessionFactory。

(4)创建会话对象。由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。

(5)Executor执行器。MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。

(6)MappedStatement对象。在Executor接口的执行方法中有一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等信息。

(7)输入参数映射。输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输入参数映射过程类似于JDBC对preparedStatement对象设置参数的过程。

(8)输出结果映射。输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果映射过程类似于JDBC对结果集的解析过程。

3、如何掌握MyBatis的工作原理?

关于MyBatis的工作原理,网上的文章是汗牛充栋,但是站长觉得,要结合JDBC来理解MyBatis的工作原理往往才能更透彻。我们知道,JDBC有四个核心对象:
(1)DriverManager,用于注册数据库连接
(2)Connection,与数据库连接对象
(3)Statement/PrepareStatement,操作数据库SQL语句的对象
(4)ResultSet,结果集或一张虚拟表

而MyBatis也有四大核心对象:
(1)SqlSession对象,该对象中包含了执行SQL语句的所有方法【1】。类似于JDBC里面的Connection 【2】。
(2)Executor接口,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。类似于JDBC里面的Statement/PrepareStatement。
(3)MappedStatement对象,该对象是对映射SQL的封装,用于存储要映射的SQL语句的id、参数等信息。
(4)ResultHandler对象,用于对返回的结果进行处理,最终得到自己想要的数据格式或类型。可以自定义返回类型。

MyBatis基本工作原理介绍相关推荐

  1. Mybatis 的工作原理及流程

    1.介绍 MyBatis的底层操作封装了JDBC的API,MyBatis的工作原理以及核心流程与JDBC的使用步骤一脉相承,MyBatis的核心对象(SqlSession,Executor)与JDBC ...

  2. mybatis的工作原理

    MyBatis 的工作原理 在学习 MyBatis 程序之前,读者需要了解一下 MyBatis 工作原理,以便于理解程序.MyBatis 的工作原理如图 2 所示. 下面对图 2 中的每步流程进行说明 ...

  3. Express中间件工作原理介绍

    Express中间件工作原理介绍 中间件是Express框架学习中最难的部分,同时也是最为核心的技术,我们的学习路线如下 1.什么是中间件 2.Express中间件的本质及工作原理 3.自定义解析po ...

  4. 时间同步装置(卫星时钟同步)工作原理介绍

    时间同步装置(卫星时钟同步)工作原理介绍 时间同步装置(卫星时钟同步)工作原理介绍 微软从Windows2000开始,系统就支持使用NTP同步的方式获取时间,Windows系统默认的时间源都来自tim ...

  5. 【原理】#01红外热成像仪的工作原理介绍

    红外热成像仪是电测中比较特殊的一种仪器设备,在温度测试领域有着广泛的应用. 红外热成像仪测温的原理是怎么样的?如何选择合适的热成像仪? 安泰小课堂将分两期视频为大家进行揭秘. 本期内容将重点讲解红外热 ...

  6. 石英加速度计工作原理介绍

    石英加速度计工作原理介绍 加速度是一种用来反映物体在运动过程中的速度变化状态的物理量,其无法直接测量,当前的加速度传感器(加速度计)采用间接测量以及力的平衡等技术来获取物体的加速度.加速度传感器的工作 ...

  7. 三维电子罗盘的工作原理介绍

    三维电子罗盘的工作原理介绍 三维电子罗盘工作原理介绍 是由三维电子罗盘由三维磁阻传感器.双轴倾角传感器和MCU构成.三维磁阻传感器用来测量地球磁场,倾角传感器是在磁力仪非水平状态时进行补偿:MCU处理 ...

  8. cache相关概念及工作原理介绍

    cache相关概念及工作原理介绍 笔者这篇文章主要从使用者的角度介绍cache的相关概念和工作原理. 一. cache是什么,为什么要用它 关于cache是什么,为什么要用它.我们从这个表格说起.下图 ...

  9. 番茄土豆 for Mac工作原理介绍

    番茄土豆 for Mac是一款可以有效管理用户时间任务的软件.让你能够合理的安排自己的时间,比如制定什么样的计划,而且支持计划暂停,在你休息的时候,或者娱乐的时候暂停时间确保你能够完全完成自己制定的任 ...

最新文章

  1. Processing入门教程-Processing的“前世今生”
  2. java 创建string_Java 如何创建一个String
  3. svn 与 vs2010
  4. 当代大学查寝奇葩操作大赏 | 今日最佳
  5. 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务
  6. 无法打开多维数据集(使用Dundas的OLAP显示控件时的一个小的问题)
  7. edge浏览器如何把网页放到桌面_电脑如何添加便签,便签怎么放到桌面上
  8. IIS6.0文件解析漏洞原理/复现
  9. 1095.山脉数组中查找目标值
  10. aix shell脚本 运行java_IBM AIX shell脚本启动java程序不成功
  11. HDU2148 Score【序列处理】
  12. pic1路AD转换c语言,PIC单片机AD转化器编程方法
  13. SVN切换IP,不换路径,快捷方法
  14. android之仿朋友圈程序,Android仿微信朋友圈添加图片的实例代码
  15. 售价占激光电视价格一半 抗光幕为何这么贵?
  16. 【它山之石,可以攻玉】关于求职(实习)面试经验(2)
  17. 图像处理冷知识——dpi和ppi
  18. 2023 开工大吉!爆料各司年终奖
  19. Bit(位)与Byte(字节)的区别
  20. java web开发(学习路线)

热门文章

  1. linux查看不了防火墙设置,linux怎么样去查看防火墙设置
  2. 中文书籍资料推荐Spark
  3. 读取EXCEL内容空格或连字符变成问号
  4. 问题解决:Import “requests“ could not be resolved from sourcePylancereportMissingModuleSource)
  5. 计算机系软件工程专业头像,软件工程——头像压缩(g)
  6. 《新课程理念与教学改革》
  7. 智能路由隐身 靠它进军智能家居还可行?
  8. computed vue 不 触发_vue computed使用注意
  9. 免费的Excel插件,太强大了,这下可以按时下班了
  10. 校园安全教育主题PPT模板