手写mybatis 笔记总览

2022-09-27

背景: 学习小傅哥的手写mybatis 项目,在学习的过程中有所收获,做笔记记录一下。

学习的所得有以下两个方面:

1.从整体设计来说,学习了mybatis 这样的复杂项目他的设计思路,运用了大量设计模式,做职责分离,程序解耦,服务分治处理,使得这个项目在整体上结构很清晰,在后期维护和扩展上有很多优势。

2.深入到代码层面来说,学习了mybatis 的业务处理逻辑,明白了,在整体优秀的框架下,亿点点细节也是必不可少的,细节落实在每件需要处理的事情上。在代码层面,我获得了反射,代理,数据库连接池,动态上下文,等知识要点的深入了解,这些要点会在后期的笔记中一一呈现。

接下来我从整体视角来对这个项目做介绍和概述:

手写mybatis 这个项目是mybatis的迷你缩小版,浓缩了mybatis 的核心功能,具体核心功能如下:

1.读取xml 文件,其中包括配置文件,具体的mapper.xml

2.数据库连接管理,其中包括数据库池化技术

3.动态代理,主要用来代理mapper 的接口文件,将其与mapper.xml 里的sql 一一对应起来

4,反射对象,具体是将mapper.xml 里查询的入参, 和查询后的结果集通过反射的方式包装起来,作为一个结果集返回

5.动态上下文,主要是用于动态sql 的生成,生成之后,将其加入上下文之中,要用到直接调用

6. 整合到spring ,对象的生成托管到spring bean 容器里,以便与spring 项目相结合

这里借用小傅哥博客上的架构图,详情


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容