当前位置:首页 > 经验 >

mybatis的工作原理和流程(mybatis执行流程讲解)

来源:原点资讯(www.yd166.com)时间:2022-10-29 12:10:38作者:YD166手机阅读>>

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的工作原理和流程,mybatis执行流程讲解(1)

上面中流程就是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免费)

mybatis官方文档中文(mybatis免费)

官网地址:https://github.com/mybatis/mybatis-3一个简单的mybatis-demo简概...

2022-10-29 11:32:46查看全文 >>

mybatis底层原理分析(mybatis底层原理图)

mybatis底层原理分析(mybatis底层原理图)

此篇文章讲述了MyBatis的原理,非常简单却很实用。持续分享Java技术干货,欢迎关注我。前言MyBatis 是一个被...

2022-10-29 11:32:36查看全文 >>

mybatis插入时间参数(mybatis接收日期参数)

mybatis插入时间参数(mybatis接收日期参数)

介绍MyBatis Generator的作用就是根据数据库中的表结构,帮我们自动生成和表结构相同的实体类,mapper接...

2022-10-29 12:02:57查看全文 >>

mybatis工作原理通俗理解(mybatis真实原理)

mybatis工作原理通俗理解(mybatis真实原理)

作者:vivo互联网服务器团队-Zhang Peng一、MyBatis 完整示例这里,我将以一个入门级的示例来演示 My...

2022-10-29 11:27:50查看全文 >>

mybatis菜鸟教程(mybatis学习手册)

mybatis菜鸟教程(mybatis学习手册)

mybatis基本配置及执行使用了mybatis首先需要两个配置文件,一个是mybatis-config.xml,是my...

2022-10-29 11:29:14查看全文 >>

mybatis入门教程(mybatis初学者总结)

mybatis入门教程(mybatis初学者总结)

在我们企业级后台应用开发的过程中,一个比较经典的应用场景就是权限控制操作。采用RBAC(Role-Based Acces...

2022-10-29 11:27:17查看全文 >>

mybatis详细讲解(mybatis操作步骤)

mybatis详细讲解(mybatis操作步骤)

废话不多说,直接进入文章。我们在使用Mybatis的时候,会在xml中编写SQL语句。如图:那么,MyBatis底层是如...

2022-10-29 11:57:34查看全文 >>

mybatis面试题(java面试必背八股文)

mybatis面试题(java面试必背八股文)

点击上方"java全栈技术"关注,每天学习一个java知识点1. #{}和${}的区别是什么?#{}是预编译处理,${}...

2022-10-29 11:56:17查看全文 >>

mybatis简介(mybatis的详细讲解)

mybatis简介(mybatis的详细讲解)

一. mybatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache so...

2022-10-29 11:28:39查看全文 >>

mybatis工作原理分析(mybatis工作原理及项目操作配置)

mybatis工作原理分析(mybatis工作原理及项目操作配置)

前言:mybatis是最近几年比较流行的操作数据库框架了,平时都只知道怎么去配置,怎么去用它,那你们知道它是如何实现的吗...

2022-10-29 12:11:32查看全文 >>

文档排行