![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis源码阅读
YupyMan
热爱编程,享受生活
展开
-
Mybatis基础支持层源码阅读分析(缓存模块)
MyBatis中的缓存分为一级缓存、二级缓存,但在本质上是相同的,它们使用的都是Cache接口的实现。MyBatis缓存模块的设计 使用了装饰器模式,这里不对此进行过多解析,以后会专门开一篇博文分析常用框架中使用到的设计模式。1 Cache组件MyBatis中缓存模块相关的代码位于org.apache.ibatis.cache包下,其中Cache接口是缓存模块中最核心的接口,它定义了所有缓存的...原创 2019-12-29 20:42:19 · 144 阅读 · 0 评论 -
Mybatis核心处理层源码阅读分析(StatementHandler系列组件)
StatementHandler接口是MyBatis的核心接口之一,它完成了MyBatis中最核心的工作,也是Executor 接口实现的基础。StatementHandler接口中的功能很多,例如创建Statement对象,为SQL语句绑定实参,执行select、insert、update、delete等多种类型的SQL语句,批量执行SQL语句,将结果集映射成结果对象。public inte...原创 2019-12-29 12:24:12 · 198 阅读 · 1 评论 -
Mybatis核心处理层源码阅读分析(SqlSession系列组件)
SqlSession是MyBatis核心接口之一,也是MyBatis接口层的主要组成部分,对外提供MyBatis常用的API。mybatis提供了两个SqlSession接口的实现,分别为DefaultSqlSession、SqlSessionManager,其中最常用的是DefaultSqlSession。另外,跟前面分析过的源码mybatis的源码一样,mybatis也为SqlSession提...原创 2019-12-22 17:54:02 · 147 阅读 · 0 评论 -
Mybatis核心处理层源码阅读分析(Executor系列组件)
1 BaseExecutor1.1 一级缓存简介1.2 一级缓存的管理1.3 事务操作2 SimpleExecutor3 ReuseExecutor4 BatchExecutor5 CachingExecutor原创 2019-12-22 12:52:26 · 164 阅读 · 0 评论 -
Mybatis核心处理层源码阅读分析(mybatis初始化)
和spring框架的IoC容器初始化一样,mybatis也会通过定位、解析相应的配置文件完成自己的初始化。mybatis的配置文件主要有mybatis-config.xml核心配置文件及一系列映射配置文件,另外,mybatis也会根据注解进行配置。1 BaseBuildermybatis初始化的主要内容是加载并解析mybatis-config.xml配置文件、映射配置文件以及相关的注解信息。m...原创 2019-12-15 16:04:24 · 523 阅读 · 1 评论 -
Mybatis基础支持层源码阅读分析(binding模块)
binding模块主要为了解决一个历史遗留问题,原先查询一个VO对象时需要调用SqlSession.queryForObject(“selectXXVOById”, primaryKey)方法,执行指定的sql语句,第一个参数selectXXVOById指定了执行的sql语句id,如果我们不小心写错了参数,mybatis是无法在初始化时发现这个错误的,只会在实际调用queryForObject(“...原创 2019-12-08 20:34:57 · 274 阅读 · 0 评论 -
Mybatis基础支持层源码阅读分析(反射工具包和TypeHandler系列)
基础支持层主要看一下mybatis实现ORM的基础代码实现。反射工具包ReflectorReflector类主要实现了对JavaBean的元数据属性的封装,比如:可读属性列表,可写属性列表;及反射操作的封装,如:属性对应的setter方法,getter方法的反射调用。源码实现如下:public class Reflector { /** JavaBean的Class类型,在调用Ref...原创 2019-12-03 21:52:57 · 195 阅读 · 0 评论