前言
mybatis的前身是iBatis,其源于“Internet”和“abatis”的组合,是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,它可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO映射成数据库中的记录。
一、Mybatis的架构设计简介
Mybatis的功能架构分为三层:
- **接口层:**提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层接收到调用请求就会调用数据处理层来完成具体的数据处理。
- **数据处理层:**负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
- **框架支撑层:**负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
二、梳理自己的Mybatis的设计思路
大家平时应该经常使用 MyBatis 框架,对于 SqlSessionFactory、SqlSession、Mapper 等也有一些概念。**在这免费分享一个手写MyBatis的视频教程,会讲到如何从源码来分析实现这些概念。**看源码对于很多人来说都是一个比较枯燥和乏味的过程,如果不做抽象和总结,会觉得非常乱。另外,看源码不要去扣某个细节,尽量从宏观上理解它。这样带着结果看过程你就会知道设计者为什么这么做。
MyBatis 框架的架构图,也是实现手写MyBatis框架的重要三步
- 首先创建 SqlSessionFactory 实例,SqlSessionFactory 就是创建 SqlSession 的工厂类。
- 加载配置文件创建 Configuration 对象,配置文件包括数据库相关配置文件以及我们在 XML 文件中写的 SQL。
- 通过 SqlSessionFactory 创建 SqlSession。
- 通过 SqlSession 获取 mapper 接口动态代理。
- 动态代理回调 SqlSession 中某查询方法。
- SqlSession 将查询方法转发给 Executor。
- Executor 基于 JDBC 访问数据库获取数据,最后还是通过 JDBC 操作数据库。
- Executor 通过反射将数据转换成 POJO 并返回给 SqlSession。
- 将数据返回给调用者。
三、从 0 开始手写一个 Mybatis 框架,三步搞定教学!
先前说到整个 MyBatis 框架的架构图,也是实现手写MyBatis框架的重要三步
本次教学内容分为:
1.五分钟重温MyBatis,抓住故事主线
2.手写第一步,你必须了解的初始化
3.手写第二步,MyBatis那些不为人知的秘密?
4.手写第三步,论标准流程的重要性!
5.深挖MyBatis的更多干货
为了方便大家学习,在这里还是免费分享一下这位阿里大咖的手写MyBatis框架视频给大家,提供大家学习观看,有需要的朋友希望能得到你们的点赞关注支持一下,后续还会更新更多手写系列文章及视频免费分享给大家!
视频免费获取方式:+点赞+关注后,点这里即可获取这份视频资料及下面更多Java架构进阶学习资料的免费领取方式!
更多学习资料分享
更多视频笔记分享