MyBatis工作原理

在学习MyBatis程序之前,需要了解一下MyBatis工作原理,以便于理解程序。MyBatis的工作原理如下图1)读取MyBatis配置文件:mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息。2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在M…

大家好,又见面了,我是你们的朋友全栈君。

在学习 MyBatis 程序之前,需要了解一下 MyBatis 工作原理,以便于理解程序。MyBatis 的工作原理如下图
MyBatis工作原理

1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 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 对结果集的解析过程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125891.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CLion 2021.4激活码【在线破解激活】

    CLion 2021.4激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    63
  • idea激活码永久【注册码】

    idea激活码永久【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    42
  • linux14:(0.7k)scp命令,fstab文件

    linux14:(0.7k)scp命令,fstab文件scp命令scp 可以在 2个 linux 主机间复制传输文件;命令基本格式:scp 选项 源路径 目标路径选项-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .-C 使能压缩选项 .-P 选择端口 . 注意 -p 已经被 rcp 使用 .-4 强行使用 IPV4 地址 .-6 强行使用 IPV6 地址 .copy 本地的档案到远程的机器上scp /etc/lilo.conf k@net67.ee.oit.edu

    2022年8月11日
    6
  • SHFileOperation DeleteFolder

    SHFileOperation DeleteFolder分类:C/C++BOOLDeleteFolder(LPCTSTRlpszPath){  SHFILEOPSTRUCTFileOp; ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));  FileOp.fFlags=FOF_NOCONFIRMATION;  FileO

    2022年7月18日
    19
  • HTML导航栏制作

    HTML导航栏制作首先建一个大盒子,名为nav用于装导航栏里面的部分。代码如下:<divclass=”nav”></div>.nav{width:100%;height:50px;background-color:#f7f7b6;}目录logo(即图中的汤姆!)Li文字搜索栏loglogo(即图中的汤姆!)<divclass=”logo”><imgsrc=”…

    2022年5月28日
    38
  • 第一课:什么是树莓派[通俗易懂]

    第一课:什么是树莓派[通俗易懂]楔子我对树莓派是情有独钟,不但在做这个方面的教学,而且录制了些教学视频,现在计划做几个树莓派的博客专栏,以弥补视频教学的不足。这是《树莓派系统专栏》的第一课,叫什么是树莓派(这也是我教学视频的第一课),希望给第一次接触树莓派的人有一个感性认识。树莓派长什么样我们要搞清楚一个刚接触的东西,最直观的是看它的实物,下面我就先上一张图。我希望上最好的图片给大家,包括专业和美感,这张图是树莓派官网…

    2022年5月4日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号