mybatis的工作原理
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的工作原理相关推荐
- MyBatis基本工作原理介绍
1.MyBatis基本工作原理介绍 计算机的基本工作就是存储和计算,而MyBatis是存储领域的利器.MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结 ...
- Mybatis 的工作原理及流程
1.介绍 MyBatis的底层操作封装了JDBC的API,MyBatis的工作原理以及核心流程与JDBC的使用步骤一脉相承,MyBatis的核心对象(SqlSession,Executor)与JDBC ...
- java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?
近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...
- MyBatis 的工作原理,你了解过吗?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:cnblogs.com/scuury/p/10371 ...
- Mybatis的工作原理,你了解过吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:cnblogs.com/scuury/p/10371246. ...
- Mybatis 的工作原理,写得太好了!
来源:cnblogs.com/scuury/p/10371246.html 近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边 ...
- mybatis工作原理_万字好文!MyBatis 的工作原理,你了解过吗?
回复 1024 有特别礼包 作者:江南入直 | 来源:cnblogs.com/scuury/p/10371246.html 上一篇:微信支付的架构到底有多牛? 近来想写一个mybatis的分页插件,但 ...
- 五分钟,带你彻底掌握 MyBatis缓存 工作原理
作者:双子孤狼 blog.csdn.net/zwx900102/article/details/108696005 前言 在计算机的世界中,缓存无处不在,操作系统有操作系统的缓存,数据库也会有数据库的 ...
- mybatis 原理_了解Mybatis的工作原理吗
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:江南入直 cnblogs.com/scuury/p/10371246.html 推荐 ...
最新文章
- rgb红色范围_UI设计教程分享之RGB与CMYK色彩模式对比
- 受软银收购利好影响 ARM股价大涨近50%
- 互联网红利消退,下一个机会在哪?
- android 程序更换字体,Android修改自己程序字体的方法详解
- 先验信息,先验概率,先验分布,后验概率,后验分布,共轭分布,共轭先验分布
- 【转】知识图谱构建全过程
- 第一篇:零基础入门金融风控之风控指标体系清单
- [论文阅读] Beyond part models: Person retrieval with refined part pooling
- 互联网日报 | 3月5日 星期五 | 抖音成为2020欧洲杯官方合作伙伴;携程GMV连续三年全球旅企第一;华为发布好望云服务...
- Python基础-19-魔法方法(常用)
- mstsc远程登录windows服务器
- 【TDA2x学习】3、软件架构分析
- 服务器凌晨莫名奇妙自动重启解决方案
- STM32物联网通信WIFI
- RocketMQ保姆级教程
- 干货分享:大数据可视决策关键技术有哪些?分析篇
- 软件测试之MySQL数据库必知必会,面试必备
- 欧拉角与旋转矩阵转换 matlab 函数 angle2dcm dcm2angle 方向余弦矩阵 机器人坐标变换
- IOS 设备备份文件详解 (一)
- 上班可以摸鱼了!刚刚发现在VScode中可玩魂斗罗,超级玛丽!附详细攻略!