作者:小傅哥

博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!

1. 为甚,撸Mybatis

我就知道,你会忍不住对它下手!

21年带着粉丝伙伴撸了一遍 Spring 源码,通过提取整个框架中的核心逻辑,简化代码实现过程,渐进式开发逐步实现 IOC、AOP 中的核心功能。让读者可以由浅入深的学习 Spring 的设计思路和落地代码,也能让更多的读者可以读懂 Spring 源码,当然这也包括让一些跟着动手实践的读者在面试中脱颖而出!

吃过小傅哥代码的读者,都知道TMD真香,网盘1个T的学习视频都删了,用来存小傅哥的技术资料。所以小傅哥日常也被读者催更,傅哥写Mybatis吧傅哥写Mybatis吧傅哥写Mybatis吧,既然你们都喊了这么久了,我也该把这事办了。

2. 好奇,驱动学习

从小傅哥最开始对 Mybatis 感兴趣,主要来自于好奇:“为什么在使用 Mybatis 的时候,只需定义一个接口,不用写实现类就能使用 XML 中或者注解上配置好的 SQL 语句,就能完成对数据库 CRUD 的操作呢?” 原来这里最核心的是用到了接口代理类,把每一个数据库操作的 DAO 接口都用操作数据库的代理类实现,并注册到 Spring 容器让用户去使用。

其实很多时候对技术的深度学习就是来自于这样一点点的好奇和一晚晚的折腾,虽然会遇到很多磕磕绊绊的 bug,但经过自己的思考、整理、验证、汇总,你终会提炼出最有技术价值的核心流程和脉络信息,就像我们上面这张图一样,虽然它不是全部但这却是最重要的一部分。

3. 目标,肝成啥样

像我们之前完成手写 Spring一样,拆解功能、简化流程、渐进实现,让读者能够更容易的学习到最有价值的知识。

在手写的过程中学习 Mybatis 从解析、绑定、反射、缓存,到会话和事务操作,以及如何与 Spring 进行关联注册 Bean 对象,完成整合部分功能逻辑。通过这些内容的拆解实现,读者伙伴就可以非常清楚的知道这些核心功能都是如何实现的了,以后再阅读 Mybatis 源码也就知道从哪开始到哪结束了。

4. 计划,执行落地

  • 小傅哥之前也写过简版的 Mybatis、Mybatis-Spring,但当时主要是把重点放在和 Spring 的结合上,对于 ORM 的框架实现部分只是一个非常最基本的实现。
  • 所以计划这次按照 Mybatis 的框架结构,把重点放在 ORM 功能实现为主,通过源码分析和功能实现的方式完成这次框架功能的开发。在每次开发功能时候都会基于上次的章节进行内容迭代,慢慢的把这些功能类累加出来,这样的方式也更好让读者理解每一个功能都是怎么被设计进来并开发实现的。

5. 上车,咱们出发

车来了、车来了 鉴于以往的分享学习方式,像手撸 Spring 最后课程编写完成后,做成 PDF 来赚取一点辛苦费,不过效果有些差还容易被白嫖PDF (真的希望能在技术分享的路上持续的走下去)。

其实像小傅哥这样的 Spring 学习小册如果投放到一些平台,最终的收益会比现在高很多,可又感觉那种方式会限制住我的操作,也不想被过大的宣传,学完能搞个P7!所以如果你愿加入我的星球,支持我也是可以的。

加入学习:https://t.zsxq.com/jAi2nUf

6. 总结,一点建议

可能很多小伙伴的网盘都有几百G的资料的,但其实并没有时间去看,一方面是这些资料都是七七八八拼凑的,很难有一条完整的脉络,甚至有些资料已经过时了,只不过放在网盘里感觉心安一样。

小傅哥之前也收藏资料,把2T的网盘都塞满了,但过去这么多年了,也没看过。所以千万记住,别被无穷的资料,占用了有限的时间,只有成体系的学习才能收获最多。只追求快,那是最大的学习障碍!

《Mybatis 手撸专栏》第1章:开篇介绍,我要带你撸 Mybatis 啦!的更多相关文章

  1. 《Mybatis 手撸专栏》第7章:SQL执行器的定义和实现

    作者:小傅哥 博客:https://bugstack.cn - <手写Mybatis系列> 一.前言 为什么,要读框架源码? 因为手里的业务工程代码太拉胯了!通常作为业务研发,所开发出来的 ...

  2. 《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你是否能预见复杂内容的设计问题? 讲道理,无论产品功能是否复杂,都有很大一部分程序员 ...

  3. Java Persistence with MyBatis 3(中国版) 第五章 与Spring集成

    MyBatis-Spring它是MyBatis子模块框.它用来提供流行的依赖注入框架Spring无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程 ...

  4. 一篇文章带你掌握MyBatis简化框架——MyBatisPlus

    一篇文章带你掌握MyBatis简化框架--MyBatisPlus 我们在前面的文章中已经学习了目前开发所需的主流框架 类似于我们所学习的SpringBoot框架用于简化Spring开发,我们的国人大大 ...

  5. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

  6. 手把手带你阅读Mybatis源码(三)缓存篇

    前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读Mybatis源码(一)构造篇 和 手把手带你阅读Mybatis源码(二)执行篇,主要说明了MyBatis是如何 ...

  7. ABP理论学习之开篇介绍

    返回总目录 为了和2016年春节赛跑,完成该系列博客,我牺牲了今天中午的时间来完成该系列的第一篇----开篇介绍.开篇介绍嘛,读过大学教材的同学都知道,这玩意总是那么无聊,跟考试没关系,干脆直接跳过, ...

  8. React与ES6(一)开篇介绍

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...

  9. ar技术序章-SDK介绍和选择

    转自: http://blog.csdn.net/kun1234567/article/details/10402535 ar技术序章-SDK介绍和选择 分类: Augmented Reality20 ...

  10. “Zhuang.Data”轻型数据库访问框架(一)开篇介绍

    目录: “Zhuang.Data”轻型数据库访问框架(一)开篇介绍 “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象 框架介绍 该框架主要用于数据库访问,封装了包括 ...

随机推荐

  1. 简单的MAC的终端命令

    今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊... 在这里记下..防止丢失 pwd 当前工作目录 cd(不加参数) 进root cd(folder) 进入文件夹 cd ...

  2. 使用Hot Chocolate和.NET 6构建GraphQL应用(8) —— 实现Mutate添加数据

    系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在讨论完GraphQL中的查询需求后,这篇文章我们将演示如何实现GraphQL中的数据添加任务. 思路 在G ...

  3. 02编程语言与python介绍

    编程语言分类 机器语言:直接用计算机能理解的二进制指令去编写程序,是直接在控制计算机硬件 优点:运行效率高 缺点:开发效率低 1.开发一个简单的小功能都要哟个到非常多条数的二进制指令 2.二进制指令非 ...

  4. 关于Untiy破解 for Mac

    Mac的破解很简单 也很坑 如果你破解过win的 在进行Mac版的破解 可能认为三观都被颠覆了 以下进行下讲解 并且帮助大家排除坑 还是那句话  有条件的请支持正版  破解版只进行技术分享 第一步去u ...

  5. 在sublime上运行node

    1.安装node,这个就简单了,不多说了.默认会安装在C盘,也可以自己设定盘符,如D.E 2.打开Sublime Text -> Tools -> Build -> Build Sy ...

  6. 宿主机ping不通虚拟机,虚拟机能ping通宿主机

    最近,微信提升群里好几个小伙伴遇到了如题的问题. 问了下原因,原来是我说的把宿主机网卡ip获取方式改为自动,结果他们把宿主机上虚拟网卡的ip改为自动了. 当然,分析"宿主机ping不通虚拟机 ...

  7. WPF 开发,优化 AvalonEdit 显示单行超长文本的性能。

    路遥工具箱内置了一个名为"JSON 格式化"的功能.通过该功能可以将 JSON 字符串进行美化和简化(设置缩进和取消缩进). 该功能上线后收到很多客户的反馈:大部分经由网络传输的J ...

  8. springboot项目 @Scheduled注解 实现定时任务

    使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实 ...

  9. 【windows 操作系统】进程控制块(PCB)

    转载地址:https://blog.csdn.net/qq_38499859/article/details/80057427一.目录文章目录    操作系统3 ----进程控制块(PCB)详解    ...

  10. vs2019 NuGet安装及简单使用

    Nuget介绍 官网定义:NuGet是.NET的软件包管理器(免费).NuGet客户端工具提供了生成和使用软件包的能力.NuGet Gallery 是所有软件包作者和消费者都使用的中央软件包存储库. ...