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

下面对图 2 中的每步流程进行说明。

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 对结果集的解析过程。
转自http://c.biancheng.net/view/4304.html

mybatis的工作原理相关推荐

  1. MyBatis基本工作原理介绍

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

  2. Mybatis 的工作原理及流程

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

  3. java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...

  4. MyBatis 的工作原理,你了解过吗?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:cnblogs.com/scuury/p/10371 ...

  5. Mybatis的工作原理,你了解过吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:cnblogs.com/scuury/p/10371246. ...

  6. Mybatis 的工作原理,写得太好了!

    来源:cnblogs.com/scuury/p/10371246.html 近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边 ...

  7. mybatis工作原理_万字好文!MyBatis 的工作原理,你了解过吗?

    回复 1024 有特别礼包 作者:江南入直 | 来源:cnblogs.com/scuury/p/10371246.html 上一篇:微信支付的架构到底有多牛? 近来想写一个mybatis的分页插件,但 ...

  8. 五分钟,带你彻底掌握 MyBatis缓存 工作原理

    作者:双子孤狼 blog.csdn.net/zwx900102/article/details/108696005 前言 在计算机的世界中,缓存无处不在,操作系统有操作系统的缓存,数据库也会有数据库的 ...

  9. mybatis 原理_了解Mybatis的工作原理吗

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:江南入直 cnblogs.com/scuury/p/10371246.html 推荐 ...

最新文章

  1. rgb红色范围_UI设计教程分享之RGB与CMYK色彩模式对比
  2. 受软银收购利好影响 ARM股价大涨近50%
  3. 互联网红利消退,下一个机会在哪?
  4. android 程序更换字体,Android修改自己程序字体的方法详解
  5. 先验信息,先验概率,先验分布,后验概率,后验分布,共轭分布,共轭先验分布
  6. 【转】知识图谱构建全过程
  7. 第一篇:零基础入门金融风控之风控指标体系清单
  8. [论文阅读] Beyond part models: Person retrieval with refined part pooling
  9. 互联网日报 | 3月5日 星期五 | 抖音成为2020欧洲杯官方合作伙伴;携程GMV连续三年全球旅企第一;华为发布好望云服务...
  10. Python基础-19-魔法方法(常用)
  11. mstsc远程登录windows服务器
  12. 【TDA2x学习】3、软件架构分析
  13. 服务器凌晨莫名奇妙自动重启解决方案
  14. STM32物联网通信WIFI
  15. RocketMQ保姆级教程
  16. 干货分享:大数据可视决策关键技术有哪些?分析篇
  17. 软件测试之MySQL数据库必知必会,面试必备
  18. 欧拉角与旋转矩阵转换 matlab 函数 angle2dcm dcm2angle 方向余弦矩阵 机器人坐标变换
  19. IOS 设备备份文件详解 (一)
  20. 上班可以摸鱼了!刚刚发现在VScode中可玩魂斗罗,超级玛丽!附详细攻略!

热门文章

  1. !和?在formal method里面的意思
  2. 利物浦大学的office里面没有powerBI
  3. 【转】强大的B树B+树
  4. Centos7.x下Nginx安装及SSL配置与常用命令
  5. windows配置java运行环境
  6. 1.7 Appium依赖添加
  7. 接口管理平台DOClever5.2.0 发布,大幅增强自动化测试,支持可视化UI
  8. NodeJs连接Mysql数据库
  9. 不用回调方法捕获数据包
  10. PHP 7安装使用体验,升级PHP要谨慎