
MyBatis源码
文章平均质量分 95
11来了
目前在读研究生研二,会持续分享后端系列完整内容以及面试分析!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MyBatis 源码拆解系列】MyBatis 插件底层设计原理
Executor:MyBatis 核心接口之一,定义了数据库的基本操作,最终数据库的操作都是交给 Executor 来完成的ParameterHandler:为 SQL 语句的占位符绑定实参数据ResultSetHandler:将从数据库中查询到的结果集进行处理StatementHandler:MyBatis 核心接口之一,在 Executor 内部会通过 StatementHandler 去完成 SQL 的执行。原创 2024-10-02 14:14:03 · 1256 阅读 · 0 评论 -
【MyBatis 源码拆解系列】JVM 级别缓存能力设计:MyBatis 的一、二级缓存如何设计?
最后在总结一下,MyBatis 设计了一级缓存、二级缓存,虽然二级缓存我们并不使用,但是可以了解他的一个设计原理,这里总结一下重点内容:二级缓存:二级缓存是跨 SqlSession 级别的,因此是在 MappedStatement 中存储,MappedStatement 是解析 xml 文件时构建的,因此生命周期和 MyBatis 是一直的,因此可以跨 SqlSession二级缓存的能力支持是通过来完成的,用到了装饰器模式,BaseExecutor 提供一些公有的一级缓存能力。原创 2024-10-02 14:12:58 · 1255 阅读 · 0 评论 -
【MyBatis 源码拆解系列】执行 Mapper 接口的方法时,MyBatis 怎么知道执行的哪个 SQL?
最后再总结一下,学完本节可以收获什么?MyBatis 内部是如何对 SQL 语句的信息进行解析和存储?MyBatis 针对这个功能设计了哪些类?每个类的职责如何划分?MyBatis 是一个 ORM 框架,作为后端应用和数据库之间的桥梁,目的是帮助研发人员管理和执行 SQL 语句,将 SQL 语句定义在 xml 文件之后,MyBatis 肯定需要存储起来,并且在执行 UserMapper 接口对应的方法时,可以找到对应的 SQL 语句以及对应的一些信息,包括参数类型、返回值类型等等。原创 2024-09-27 13:11:36 · 1260 阅读 · 0 评论 -
【MyBatis 源码拆解系列】MyBatis 运行原理 - 数据库操作最终由哪些类负责?
MyBatis 内部源码有个特点,每个方法都很短,在查看源码的时候会在不同的类之间不断跳转,为什么呢?原创 2024-09-27 13:09:54 · 805 阅读 · 0 评论 -
【MyBatis 源码拆解系列】MyBatis 运行原理 - MyBatis 中的代理模式
欢迎关注公众号,持续在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!原创 2024-09-25 10:03:42 · 745 阅读 · 0 评论 -
【MyBatis 源码拆解系列】MyBatis 运行原理 - MyBatis 的核心类 SqlSessionFactory 和 SqlSession
欢迎关注公众号,持续在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!原创 2024-09-25 09:58:17 · 1163 阅读 · 0 评论 -
【MyBatis 源码拆解系列】MyBatis 运行原理 - 读取 xml 配置文件
配置文件的读取是通过 JVM 的 类加载器 ClassLoader 来读取的读取配置文件的方法最终封装在了 ClassLoaderWrapper 类中,该类会返回 ClassLoader[] 数组,以及遍历类加载器去读取文件,并且通过 ClassLoader[] 数组中类加载器的顺序来控制加载的优先级。原创 2024-09-23 13:05:48 · 1081 阅读 · 0 评论 -
【MyBatis 源码拆解系列】MyBatis 源码如何学习?
其次,在学习源码的时候,一定要对着源代码来学习,并且自己进行总结,如果单纯地看文章、看书其实看完之后就忘记了,自己画一个整体的流程图会更好一些并不是去总结一个方法内部执行了哪些方法,一层一层如何调用,这些在源码中已经有了,再次去文档记录没有意义,原创 2024-09-23 13:03:11 · 524 阅读 · 0 评论