查看原文
其他

《Mybatis 手撸专栏》第 1 章:开篇介绍,我要带你撸 Mybatis 啦!

小傅哥 bugstack虫洞栈 2024-01-29

持续坚持原创输出,点击蓝字关注我吧

作者:小傅哥
博客: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 容器让用户去使用。

Mybatis 代理实现调用封装返回结果

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

3. 目标,肝成啥样

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

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

4. 计划,执行落地

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

5. 上车,咱们出发

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

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

所以:

  • 《手撸 Mybatis》 的文章内容依旧在公众号:bugstack虫洞栈和我的博客 bugstack.cn上发布,读者可以直接阅读学习。后续可能会在录制一些B站视频(搜小傅哥の码场)
  • 【重要】与小册相对应的源码,则会投放到小傅哥的知识星球(码农会锁)中,加入星球的小伙伴可以有一个专门的仓库地址。可看到课程代码、提交记录(非常有意义)、issue处理等。- 星球中还提供了其他实战项目,如果你愿意支持一下,绝对不亏! 当然,如果不需要加入,按照文章中的内容进行自己编写也是可以的😋。

加入: - 扫码加入即可,优惠较大,先到先得!

  • 扫码:通过扫描优惠券二维码进行加入
  • 链接:https://t.zsxq.com/jAi2nUf - 打开加入
  • 回复:在公众号:bugstack虫洞栈 回复:星球 也可以获得优惠券加入星球

加入星球,VIP服务:

  1. 学习 Lottery 分布式抽奖秒杀项目 - 基于领域驱动设计的落地实践【面大厂利器】- 一个项目,带你拿个高薪Offer!
  2. 提供博客 https://bugstack.cn 所有学习内容的指导、帮助。
  3. GitHub:https://github.com/fuzhengwei/CodeGuide - 非常有价值的技术资料仓库,包括小傅哥所有的博客开放案例代码。
  4. 可以在发送你的简历到我的邮箱(见使用介绍),提供简历批阅服务。
  5. 提供技术问题、系统架构、学习成长、晋升答辩等各项内容的回答。
  6. 定期的整理和分享出各类专属星球的技术小册、编程视频、PDF文件。
  7. 定期组织技术直播分享,传道、受业、解惑,知道阶段瓶颈突破技巧。

6. 总结,一点建议

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

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

- END -


下方扫码关注 bugstack虫洞栈,与小傅哥一起学习成长、共同进步,做一个码场最贵Coder!

  • 回复【设计模式】,获取《重学Java设计模式》,这是一本互联网真实案例的实践书籍,从实际业务中抽离出,交易、营销、秒杀、中间件、源码等众多场景进行学习代码设计。
  • 回复【Spring专栏】,获取《手撸Spring》,这是一本通过带着读者手写简化版 Spring 框架,了解 Spring IOC、AOP、循环依赖等核心原理和设计实现的技术资料。
  • 回复【面经手册】,获取《面经手册 • 拿大厂Offer》,这是一本有深度的Java核心内容,从数据结构、算法、并发编程以及JVM系8不断深入讲解,让懂了就是真的懂。

你好,我是小傅哥。一线互联网java 工程师、架构师,开发过交易&营销、写过运营&活动、设计过中间件也倒腾过中继器、IO板卡。不只是写Java语言,也搞过C#、PHP,是一个技术活跃的折腾者。
2022年在知识星球【码农会锁】开发完成基于 DDD 四层架构设计的,《分布式实战项目抽奖系统》。此项目以互联网开发常用技术为主,包括:SpringBoot、Mybatis、Dubbo、MQ、Redis、分库分表、ELK、Docker等,以及大量的真实场景案例和对应的设计模式实战,解决每一个细节问题,非常适合学习实践。
继续滑动看下一个

《Mybatis 手撸专栏》第 1 章:开篇介绍,我要带你撸 Mybatis 啦!

小傅哥 bugstack虫洞栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存