MyBatis框架(一) -简介 -工作流程

一、简介

MyBatis框架是一个基于java的数据持久层框架,把实体类和sql语句之间建立了映射关系,是一种半自动化ORM实现。可以使用简单的xml或注解配置和映射原生信息,将接口和java的POJOs(Plain Ordinary Java Object,普通的java对象)映射成数据库中的记录。

 注解:ORM对象映射关系,是一种数据持久化技术
  - O: Object  对象===java里的实体类(对象) 
  - R: relation 关系===关系型数据库(表)
  - M: Mapping 映射===提供一种机制,实现映射

二、MyBatis框架功能架构

2.1 MyBatis架构图

在这里插入图片描述

2.2 MyBatis架构详解说明

2.2.1 api接口层

       首先接口层核心对象是SqlSession,它是上层应用和MyBatis打交道的桥梁,Sqlsession中定义了非常多的对数据库的操作方法,当接口在接收到调用请求的时候,会调用核心处理层的应用模块来完成具体的数据库操作。

2.2.2 数据处理层

       跟数据库操作相关的动作都是在这一层完成的,核心处理层主要做了这几件事:

  • 将接口中传入的参数解析并映射成jdbc类型
  • 解析xml文件中的sql语句,包括插入参数和动态sql的生成
  • 执行sql语句
  • 处理结果集,并映射成java对象

2.2.3 基础支撑层

       基础支撑层主要是一些抽取出来的通用的功能(实现复用)每日如数据源,缓存、日志、xml解析、反射、io、事务等等这些功能

2.3 MyBatis的工作流程

在这里插入图片描述

2.3.1 加载配置并初始化:

       首先在MyBatis启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,全局配置文件里面包含了怎么控制MyBatis的行为,把他们解析成一个configuration对象。映射器配置文件包含了对数据下达的指令,也就是sql语句信息,然后一个sql节点会被解析成一个MapperdStatement对象存储在内存中,接下来就是操作数据库的接口,代表和数据库之间的一次连接,也就是SqlSession对象,想要获得SqlSession就需要一个SqlSessionFactory

2.3.2 接受调用的请求:

       接收sql的id和传入的参数对象

2.3.3 处理操作请求:

       根据SQL的Id查找对应的MappedStatement对象,根据传入的参数对象解析MappedStatement,得到最终的sql和执行传入参数,获取数据库连接,将已得到的sql和参数到数据库执行,并得到结果。根据mappedStatment对象中的结果映射配置,对得到的执行结果进行转换处理,并得到最终结果,释放资源

2.3.4 返回最终的处理结果

猜你喜欢

转载自blog.csdn.net/weixin_47402482/article/details/113774998