MyBatis体系结构的分析

15 篇文章 0 订阅
14 篇文章 0 订阅

MyBatis是什么?

MyBatis是一种持久层框架,框架,它类似于建房子的框架,是建筑的框架。

Mybatis可以干什么

Mybatis封装了底层的JDBC操作,对比于使用JDBC;使用Mybatis时用户不用频繁使用Java的各种类;将用户从繁琐的底层操作中解放出来

Mybatis运行过程

(一)读取Mybatis配置文件mybatis-config.xml

在这里插入图片描述

(二)加载映射文件Mapper.xml

在这里插入图片描述

(三)构造会话工厂SqlSessionFactory

SqlSessionFactory是一个接口;
SqlSessionFactory对象是创建SqlSession的工厂;是MyBatis的关键对象
是单个数据库映射关系经过编译后的内存镜像
该对象可以通过SqlSessionFactoryBuilder对象来获取,SqlSessionFactoryBuilder对象从xml文件中预定好的Configuration的实例构建一个SqlSessionFactory对象。每个MyBatis的应用程序都是以一个SqlSessionFactory对象为核心(线程安全)的,SqlSessionFactory对象一旦被创建,在整个应用程序执行期间都是存在的,不需要多次创建(应用单例模式)。
在这里插入图片描述

(四)创建会话对象SqlSession

会话对象SqlSession是MyBatis的关键对象,是执行持久化操作的对象,类似于JDBC中的Connection。它是应用程序与持久层之间进行交互的单线程对象。SqlSession对象完全包含了所有Sql操作的方法。需要注意的是:SqlSession对象不能被共享,是线程不安全的。使用结束后要关闭
在这里插入图片描述

(五)Executor执行器执行SqlSession对象Runnable任务

Exector执行接口执行了SqlSession对象Runnable任务,生成MappedStatement对象

(六)输入参数映射映射至MappedStatement对象,MappedStatement对象作用于数据库,输出结果映射

过程如下图
在这里插入图片描述
注:pojo类型:
指的是有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。
没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

全局配置文件、SqlSessionFactory、SqlSession三者之间的关系

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值