欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 《手写Mybatis渐进式源码实践》实践笔记 (开篇)

《手写Mybatis渐进式源码实践》实践笔记 (开篇)

2025/3/11 15:35:56 来源:https://blog.csdn.net/weixin_37693760/article/details/144273024  浏览:    关键词:《手写Mybatis渐进式源码实践》实践笔记 (开篇)

文章目录

  • Mybatis手写专栏介绍
    • 前言
      • Mybatis是什么?
      • 为什么要学习Mybatis源码?
    • 目标
    • 计划
    • 源码
    • 总结


Mybatis手写专栏介绍

mybatis

前言

Mybatis是什么?

MyBatis 是一个半自动 ORM(对象关系映射)持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作,可以通过 XML 或注解的方式进行配置。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects, 普通的 Java对象)映射成数据库中的记录。

以下是 MyBatis 的一些关键特性:

  1. SQL 映射: MyBatis 允许你在 XML 文件中编写 SQL 语句,或者使用注解直接在接口方法上声明 SQL 语句。
  2. 结果映射: 你可以定义如何将数据库结果集的列映射到 Java 对象的属性中。
  3. 动态 SQL: MyBatis 支持构建动态 SQL 语句,可以根据条件构建不同的 SQL 语句。
  4. 事务管理: 支持声明式事务管理。
  5. 缓存机制: 提供了一级缓存和二级缓存机制,以提高查询效率。
  6. 插件扩展: 允许开发者通过插件扩展 MyBatis 的功能。
  7. 配置简单: 通过 XML 或注解配置,易于理解和维护。

为什么要学习Mybatis源码?

  1. 深入理解框架
    • 通过阅读MyBatis源码,可以更好地理解MyBatis的内部工作原理,包括它的架构设计、执行流程、以及如何与数据库进行交互。
    • 使用MyBatis时更加得心应手,能够灵活地应对各种复杂的业务需求。
  2. 提升编程能力
    • MyBatis源码中包含了许多优秀的设计模式和编程实践,如工厂模式、单例模式、代理模式等。
    • 学习这些模式和实践可以提高的编程技巧,积累场景的设计思路。
  3. 增强问题解决能力
    • 当你遇到MyBatis使用中的问题时,如果对源码有所了解,你可以更快地定位问题所在,甚至能够自己修改源码来解决问题。
    • 这种能力对于解决生产环境中的复杂问题尤为重要,能够显著提高你的工作效率。
  4. 提升职业竞争力
    • 掌握MyBatis源码的开发者在求职市场上通常更受欢迎,因为这显示了你不仅有扎实的技术基础,还有深入学习和自我提升的能力。
    • 在面试中,能够讨论框架的内部实现细节往往能给面试官留下深刻印象,增加你获得工作机会的可能性。

目标

依托小傅哥的《手写Mybatis:渐进式源码实践》书籍,以 Mybatis源码学习为目的,跟随书中的指导,一点点实现简化版 Myabtis框架,了解 Mybatis 核心的功能的设计方案和核心原理,理解吸收设计思路,后续可以扩展到实现中间件。

在手写简化版Mybatis的过程中, 我们会学习 Mybatis 从解析、绑定、反射、缓存,到会话和事务操作,以及如何与 Spring 进行关联注册 Bean 对象,完成整合部分功能逻辑。通过这些内容的拆解实现,我们可以很清楚核心功能的设计和实现,以后再阅读 Mybatis 源码也能做到胸有成竹啦。

内容还是分章节交付,每一节对应一个功能实现点,跟着一步步实现,完成开发一个相对完整的small-mybatis框架。希望这个过程,你能跟着一起打卡学习,最后你对mybatis框架的理解一定可以更进一层。

计划

《手写Mybatis渐进式源码实践》共22章,

第 1 - 4 章拆解和实现 ORM 框架的基本功能,构建会话的基本调用流程,解析 XML 文件,以及串联 DefaultSqlSession 结合解析配置项获取展示信息。

第 5 ~ 8 章:创建和使用数据源,池化技术的实现,完成执行 SQL 语句的操作,同时引入反射工具包,实现对属性信息的获取和设置。

第 9 ~ 12 章:以实现 ORM 框架的基本功能为目的,完善静态 SQL 的标准化解析、参数设置和结果封装,使整个 ORM 框架可以处理基本的增、删、改、查操作。

第 13 ~ 19 章:以完善 ORM 框架的核心功能逻辑为目的,实现注解 SQL 解析、 ResultMap 参数、事务处理自增索引、动态 SQL 解析、插件、一级缓存和二级缓 存等功能。

第 20 ~ 22 章:利用 ORM 框架整合 Spring 和 SpringBoot,并介绍整个核心流程, 同时总结 ORM 框架开发中涉及的 10 种设计模式。

目录如下:

  • 第1章 实现一个简单的ORM框架
  • 第2章 创建简单的映射器代理工厂
  • 第3章 映射器的注册和使用
  • 第4章 XML的解析和注册
  • 第5章 数据源的创建和使用
  • 第6章 数据源池化技术的实现
  • 第7章 SQL执行器的定义和实现
  • 第8章 元对象反射工具包
  • 第9章 细化XML 语句构建器
  • 第10章 封装参数设置处理器
  • 第11章 封装结果集处理器
  • 第12章 完善框架的增、删、改、查操作
  • 第13章 通过注解配置执行SQL语句
  • 第14章 ResultMap 映射参数的配置
  • 第15章 返回insert 操作自增索引值
  • 第16章 解析动态SQL 语句
  • 第17章 插件功能
  • 第18章 一级缓存
  • 第19章 二级缓存
  • 第20章 整合Spring
  • 第21章 整合Spring Boot
  • 第22章 设计模式总结第1章

参考着书中的思路指导,保持1天撸完对应章节代码,然后补充对应章节的笔记,包括类图、实现步骤、重点代码解析、运行结果截图等。在这个过程中我也会阅读不少资料以及官网上的文档,最终把相对那些符合当前章节有价值的内容,一并展示给读者学习,同时也满足个人对技术内容的积累。

源码

整个 Myabtis手写实践的源码地址、学习笔记的开展思路,提前给到大家,方便大家对后续章节内容的结构,有清晰的认知,后续可以顺利跟着学习到这部分内容。

学习笔记输出结构:参考STAR法则(S:背景描述 T: 任务描述 A: 行动步骤 R: 测试验证结果)

文章结构: 前言+目标+设计+实现+测试

源码实现:https://github.com/swg209/small-mybatis–study.git

总结

  • Myabtis是我们经常接触到的框架,经历了多个版本的迭代,直接上手看源码,会让人一脸懵。通过做一个简易版的Mybatis框架,对代码剥丝抽茧,体现核心功能,把最直接相干的设计思路呈现出来,我们再进行学习,才更容易理解。
  • 在源码学习的过程中,笔者会和你一起从最简单、最简单的接口代理开始,逐步建立一些知识关联,从而使我们在这个学习过程中,收获更多。
  • 关于 手写Mybatis实践专栏的开篇介绍,整体计划愿景,已经给到你啦。接下来你可以阅读到文章、获取到源码,直至我们把所有的内容全部完成,到时候就可以开发出一个相对完整的 Mybatis框架了。希望在这个过程中你能和我一直坚持学习打卡!

参考书籍:《手写Mybatis渐进式源码实践》

书籍源代码:https://github.com/fuzhengwei/book-small-mybatis

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词