mybatis map参数_一图纵览MyBatis的工作原理

a91a5f2e7ef41c84cf85cc6740f57bcf.png

说明

MyBatis版本:3.5.1

MyBatis的工作原理

       通过“一图即可纵览MyBatis的工作原理”:

875a1efa15f418510b2a3d4f71f0fdfa.png

(1)读取MyBatis配置文件

       读取 MyBatis 配置文件:mybatis-config.xml,mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。

(2)加载映射文件

       加载通过Mapper.xml配置或者注解的SQL映射,,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。

(3)构造会话工厂:SqlSessionFactory

       通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。

(4)创建会话对象:SqlSession

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

(5)Executor执行器

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

(6)MappedStatement对象

在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。也就是Mapper.xml文件配置的最终是MappedStatement实体类进行对应。

(7)输入参数映射

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

(8)输出结果映射

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

MyBatis的核心组件

MyBatis 的核心组件分为 4 个部分

(1)SqlSessionFactoryBuilder(构造器)

会根据配置或者代码来生成 SqlSessionFactory,采用的是分步构建的 Builder 模式。

(2)SqlSessionFactory(工厂接口)

依靠它来生成 SqlSession,使用的是工厂模式。

(3)SqlSession(会话)

一个既可以发送 SQL 执行返回结果,也可以获取 Mapper 的接口。在现有的技术中,一般我们会让其在业务逻辑代码中“消失”,而使用的是 MyBatis 提供的 SQL Mapper 接口编程技术,它能提高代码的可读性和可维护性。

(4)SQLMapper(映射器)

MyBatis 新设计存在的组件,它由一个 Java 接口和 XML 文件(或注解)构成,需要给出对应的 SQL 和映射规则。它负责发送 SQL 去执行,并返回结果。

下文我们通过源码来解剖一下MyBatis。

相关历史文章

Spring Boot MyBatis最全教程:你值得拥有

MyBatis能脱离Spring吗

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟空学院:http://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「」进行查看!

SpringBoot视频:http://t.cn/R3QepWG

Spring Cloud视频:http://t.cn/R3QeRZc

SpringBoot Shiro视频:http://t.cn/R3QDMbh

SpringBoot交流平台:http://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/R1pSojf

SpringSecurity5.0视频:http://t.cn/EwlLjHh

Sharding-JDBC分库分表实战:http://t.cn/E4lpD6e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值