MyBatis基本工作原理介绍
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基本工作原理介绍相关推荐
- Mybatis 的工作原理及流程
1.介绍 MyBatis的底层操作封装了JDBC的API,MyBatis的工作原理以及核心流程与JDBC的使用步骤一脉相承,MyBatis的核心对象(SqlSession,Executor)与JDBC ...
- mybatis的工作原理
MyBatis 的工作原理 在学习 MyBatis 程序之前,读者需要了解一下 MyBatis 工作原理,以便于理解程序.MyBatis 的工作原理如图 2 所示. 下面对图 2 中的每步流程进行说明 ...
- Express中间件工作原理介绍
Express中间件工作原理介绍 中间件是Express框架学习中最难的部分,同时也是最为核心的技术,我们的学习路线如下 1.什么是中间件 2.Express中间件的本质及工作原理 3.自定义解析po ...
- 时间同步装置(卫星时钟同步)工作原理介绍
时间同步装置(卫星时钟同步)工作原理介绍 时间同步装置(卫星时钟同步)工作原理介绍 微软从Windows2000开始,系统就支持使用NTP同步的方式获取时间,Windows系统默认的时间源都来自tim ...
- 【原理】#01红外热成像仪的工作原理介绍
红外热成像仪是电测中比较特殊的一种仪器设备,在温度测试领域有着广泛的应用. 红外热成像仪测温的原理是怎么样的?如何选择合适的热成像仪? 安泰小课堂将分两期视频为大家进行揭秘. 本期内容将重点讲解红外热 ...
- 石英加速度计工作原理介绍
石英加速度计工作原理介绍 加速度是一种用来反映物体在运动过程中的速度变化状态的物理量,其无法直接测量,当前的加速度传感器(加速度计)采用间接测量以及力的平衡等技术来获取物体的加速度.加速度传感器的工作 ...
- 三维电子罗盘的工作原理介绍
三维电子罗盘的工作原理介绍 三维电子罗盘工作原理介绍 是由三维电子罗盘由三维磁阻传感器.双轴倾角传感器和MCU构成.三维磁阻传感器用来测量地球磁场,倾角传感器是在磁力仪非水平状态时进行补偿:MCU处理 ...
- cache相关概念及工作原理介绍
cache相关概念及工作原理介绍 笔者这篇文章主要从使用者的角度介绍cache的相关概念和工作原理. 一. cache是什么,为什么要用它 关于cache是什么,为什么要用它.我们从这个表格说起.下图 ...
- 番茄土豆 for Mac工作原理介绍
番茄土豆 for Mac是一款可以有效管理用户时间任务的软件.让你能够合理的安排自己的时间,比如制定什么样的计划,而且支持计划暂停,在你休息的时候,或者娱乐的时候暂停时间确保你能够完全完成自己制定的任 ...
最新文章
- Processing入门教程-Processing的“前世今生”
- java 创建string_Java 如何创建一个String
- svn 与 vs2010
- 当代大学查寝奇葩操作大赏 | 今日最佳
- 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务
- 无法打开多维数据集(使用Dundas的OLAP显示控件时的一个小的问题)
- edge浏览器如何把网页放到桌面_电脑如何添加便签,便签怎么放到桌面上
- IIS6.0文件解析漏洞原理/复现
- 1095.山脉数组中查找目标值
- aix shell脚本 运行java_IBM AIX shell脚本启动java程序不成功
- HDU2148 Score【序列处理】
- pic1路AD转换c语言,PIC单片机AD转化器编程方法
- SVN切换IP,不换路径,快捷方法
- android之仿朋友圈程序,Android仿微信朋友圈添加图片的实例代码
- 售价占激光电视价格一半 抗光幕为何这么贵?
- 【它山之石,可以攻玉】关于求职(实习)面试经验(2)
- 图像处理冷知识——dpi和ppi
- 2023 开工大吉!爆料各司年终奖
- Bit(位)与Byte(字节)的区别
- java web开发(学习路线)
热门文章
- linux查看不了防火墙设置,linux怎么样去查看防火墙设置
- 中文书籍资料推荐Spark
- 读取EXCEL内容空格或连字符变成问号
- 问题解决:Import “requests“ could not be resolved from sourcePylancereportMissingModuleSource)
- 计算机系软件工程专业头像,软件工程——头像压缩(g)
- 《新课程理念与教学改革》
- 智能路由隐身 靠它进军智能家居还可行?
- computed vue 不 触发_vue computed使用注意
- 免费的Excel插件,太强大了,这下可以按时下班了
- 校园安全教育主题PPT模板