
mybatis源码
文章平均质量分 92
mybatis源码学习笔记
小小少年_
这个作者很懒,什么都没留下…
展开
-
mybatis一级缓存和二级缓存区别点
我们通常说mybatis中一级缓存是sqlSession级别的,二级缓存是namespace级别的,这篇笔记主要来记录下这么说的原理。原创 2022-08-28 15:58:29 · 1136 阅读 · 1 评论 -
mybatis二级缓存默认未开启源码解读
上面有说过,默认的CacheEnable属性默认是true,所以在初始化executor对象的时候,默认会初始化CachingExecutor对象,所以,无论是否使用了二级缓存,都会先调用到cachingExecutor对象中。我们接着来看赋值的逻辑这里,如果props为空(就是在全局配置文件中没有配置settings节点),此时在给各个属性赋值的时候,分别指定了默认值,可以看到,cacheEnable属性值默认是true;可以看到,在真正调用二级缓存前,会有两层判断,分别是cache和useCache;.原创 2022-08-28 11:55:52 · 1151 阅读 · 0 评论 -
@MapperScan注解原理解析 --> 1.3版本和2.0版本的区别
在1.3版本中,MapperScannerRegistrar的registerBeanDefinitions方法中,会自己初始化一个扫描器,然后去扫描mapper接口,将扫描到的接口,初始化为beanDefinition对象,将beanDefinition对象的beanClass设置为mapperFactoryBean。.........原创 2022-08-28 07:53:13 · 442 阅读 · 0 评论 -
mybatis源码-plugin源码
在使用mybatis的时候,我们可以自己指定plugin,在sql执行过程中,增加一些额外的逻辑处理,这篇笔记主要记录plugin的原理。原创 2022-08-27 20:05:28 · 312 阅读 · 0 评论 -
springboot整合mybatis源码分析
目的上篇博客,我说了两种整合的方式,其中关键的一句话就是 1. 在mapper接口(dao接口)中,使用@Mapper注解,这种方式,无需使用配置类,无需使用@MapperScan注解,即可整合 2. 在mapper接口中,使用@Repository注解或者不添加任务注解,在全配置类上添加@MapperScan注解,并指定要扫描的包这篇博客, 我说下这两种整合方式的原理原理解析在整合的时候,如果使用的是@MapperScan注解这种方式,那么:会在该注解中,通过@Import注解引入Map原创 2020-08-03 08:07:48 · 354 阅读 · 0 评论 -
mybatis源码:mybatis的sql解析
目的本文主要学习记录原生mybatis源码中sql解析的学习;mybatis的核心原理,我的理解是这样的:将xml中或者注解中配置的sql,以方法的维度,存入到mappedStatements这个map集合中,key是全类名+方法名,value是根据sql生成的MappedStatement类将dao接口,存入knownMappers这个map中,key是接口的全类名,value是根据接口生成的代理对象在通过mybatis调用sql的时候,根据接口类型,从这两个map中获取对应的value应原创 2020-06-10 21:43:55 · 436 阅读 · 0 评论