MyBatis 几个重要的概念

  • Mapper 配置: Mapper 配置可以使用基于 XML 的 Mapper 配置文件来实现,也可以使用基于 Java 注解的 MyBatis 注解来实现,甚至可以直接使用 MyBatis 提供的 API 来实现。                                                             
  • Mapper 接口: Mapper 接口是指自行定义的一个数据操做接口,类似于通常所说的 DAO 接口。早期的 Mapper 接口需要自定义去实现,现在 MyBatis 会自动为 Mapper 接口创建动态代理对象。Mapper 接口的方法通常与 Mapper 配置文件中的 select、insert、update、delete 等 XML 结点存在一一对应关系。
  • Executor: MyBatis 中所有的 Mapper 语句的执行都是通过 Executor 进行的,Executor 是 MyBatis 的一个核心接口。
  • SqlSession: SqlSession 是 MyBatis 的关键对象,是执行持久化操作的独享,类似于 JDBC 中的 Connection,SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法,它的底层封装了 JDBC 连接,可以用 SqlSession 实例来直接执行被映射的 SQL 语句。
  • SqlSessionFactory: SqlSessionFactory 是 MyBatis 的关键对象,它是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory 对象的实例可以通过 SqlSessionFactoryBuilder 对象类获得,而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出。

MyBatis 的工作流程

                       

1、首先加载 Mapper 配置的 SQL 映射文件,或者是注解的相关 SQL 内容。

2、创建会话工厂,MyBatis 通过读取配置文件的信息来构造出会话工厂(SqlSessionFactory)。

3、创建会话。根据会话工厂,MyBatis 就可以通过它来创建会话对象(SqlSession)。会话对象是一个接口,该接口中包含了对数据库操作的增删改查方法。

4、创建执行器。因为会话对象本身不能直接操作数据库,所以它使用了一个叫做数据库执行器(Executor)的接口来帮它执行操作。

5、封装 SQL 对象。在这一步,执行器将待处理的 SQL 信息封装到一个对象中(MappedStatement),该对象包括 SQL 语句、输入参数映射信息(Java 简单类型、HashMap 或 POJO)和输出结果映射信息(Java 简单类型、HashMap 或 POJO)。

6、操作数据库。拥有了执行器和 SQL 信息封装对象就使用它们访问数据库了,最后再返回操作结果,结束流程。

2018-08-11  13:55:43

转载于:https://www.cnblogs.com/gxc6/p/9459593.html

MyBatis的几个重要概念和工作流程相关推荐

  1. oracle流复制实现,Oracle流复制技术的基本概念、工作流程及其容灾备份

    龙源期刊网 http://www.doczj.com/doc/9e45114b3186bceb18e8bb1b.html Oracle流复制技术的基本概念.工作流程及其容灾备份 作者:周军 来源:&l ...

  2. (2)RabbitMQ基础概念及工作流程详解

    上一节中我们对MQ做了一个概要介绍,这一节开始我们选取RabbitMQ开始进行学习,本节将会RabbitMQ做个简单介绍,并且会对其常见的基础概念做个讲解,最后会简单介绍一下RabbitMQ的工作流程 ...

  3. kafka的基本概念和工作流程分析

    为什么需要消息队列 周末无聊刷着手机,某宝网APP突然蹦出来一条消息"为了回馈老客户,女朋友买一送一,活动仅限今天!".买一送一还有这种好事,那我可不能错过!忍不住立马点了去.于是 ...

  4. ElasticSearch基础概念及工作流程

    注: 部分概念介绍来源于网络 一.Elasticsearch的基本概念 Elasticsearch(ES)是一个基于Lucene构建的开源.分布式.RESTful接口的全文搜索引擎.Elasticse ...

  5. 01 http协议概念及工作流程

    一:HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice = http协议+XML Res ...

  6. mybatis+springMVC+spring原理及工作流程

    做自己没做过的事情叫做成长 做自己不愿做的事情叫做改变 做自己不敢做的事情叫做突破 共勉 引言 本人在学习ssm中,已经能熟练的编写配置文件与代码了.但于前几天朋友问其原理与工作流程时却只能答出一二, ...

  7. Scrapy框架的概念、作用和工作流程

    1. scrapy的概念         Scrapy是一个Python编写的开源网络爬虫框架.它是一个被设计用于爬取网络数据.提取结构性数据的框架. Scrapy是一个为了爬取网站数据,提取结构性数 ...

  8. mybatis返回某一字段_8.mybatis的基本工作流程(2.0)※

    mybatis的基本工作流程 1.读取配置文件,配置文件包含数据库连接信息和Mapper映射文件或者Mapper包路径. 2.有了这些信息就能创建SqlSessionFactory,SqlSessio ...

  9. 浅析堡垒机概念及工作原理(转)

    摘 要:在信息化社会,企事业单位业务对信息系统高度依赖,而信息系统维护人员往往拥有系统最高管理权限,其操作行为必须得到有效监管与审计.作为运维操作审计最佳解决方案的堡垒机通常会给人一种神秘莫测的感觉, ...

最新文章

  1. 【微信小程序】侧滑栏,手动侧滑出个人中心(完整代码附效果图)
  2. 集成开发环境(IDE)
  3. web.xml配置说明
  4. 计算机应用基础模块2客观题答案 文档,计算机应用基础网上形考答案模块2 Word 2010 文字处理系统客观题答案(精).doc...
  5. 在SQL Server里如何进行页级别的恢复
  6. Stackoverflow上人气最旺的十个Java问题
  7. 抢先看!Kubernetes v1.21 新特性一览
  8. 海上瓶子下有东西吗_幼儿园小班健康教案《瓶子》含反思
  9. fckeditor零碎要点---3.FCK:editor instanceName=myeditor value=李德伟欢迎您 height=400/FCK:editor
  10. 面试准备每日系列:计算机底层之并发编程(一)原子性、atomic、CAS、ABA、可见性、有序性、指令重排、volatile、内存屏障、缓存一致性、四核八线程
  11. 远程连接Linux密码特殊字符,[转载]linux shell 命令_特殊字符
  12. 基于 display 和 javaScript 封装一个页面布局小插件
  13. 前端数据可视化echarts.js使用指南
  14. SQL基础知识总结(SQL必知必会)
  15. 戴愫-有效提升与陌生人的社交能力
  16. Redis使用方法介绍
  17. 配置更新计算机卡住了,win7系统update更新卡住35%不动应该怎么解决?
  18. 羊了个羊游戏系统开发详情及功能
  19. 论文笔记-DeepLung: Deep 3D Dual Path Nets for Automated Pulmonary Nodule Detection and Classification
  20. JAVA计算机毕业设计星之语明星周边产品销售网站Mybatis+系统+数据库+调试部署

热门文章

  1. kettle mysql 参数_kettle参数、变量详细讲解
  2. lfu算法实现c语言_分治算法解决最大子段和问题。c语言实现
  3. 记一次糟心的内网靶场实战
  4. 基于redis分布式锁实现的多线程并发程序(原创)
  5. HTTP 状态码常用对照表
  6. numpy的基本使用3
  7. 《剑指offer》变态跳台阶
  8. 详解梯度爆炸和梯度消失
  9. 个人成长:2021年7月记
  10. 垃圾收集器Serial 、Parallel、CMS、G1