随笔分类 - mybatis源码
用于学习mybatis的源码以及简单的调用过程
摘要:有些时候我们希望插入的自增主键会自动赋值给bean 实体的相关属性,这就需要获取到插入之后的属性。JDBC提供了相关的API,研究mybatis 的操作过程。 1. JDBC获取自动插入的主键 1. API 查看 1. java.sql.Connection#prepareStatement(jav
阅读全文
摘要:之前研究了mybatis大体的执行流程,从上面SqlSession到Executor 内部。这里研究下其内部的处理, 也就是调用JDBC以及对结果出来部分。 mybatis有几个重要的对象:ParameterHandler(java参数转为JDBC需要的参数处理器)、ResultSetHandler
阅读全文
摘要:Mybatis 在运行过程中,可以自己编写插件做一些全局处理。我们以一个插件为例子查看其原理。 1. 注入过程 1. 在构造会话工厂的时候注入拦截器 @Bean public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(DataSource
阅读全文
摘要:之前简单研究了Mybatis 的源码,现在简单研究下MybatisPlus 的源码。大体分析其执行过程。Mybatisplus 执行逻辑大体和mybatis一样,只是在启动过程中会生成一些默认的SQL下面研究其生成默认SQL的过程。 1. 自动配置 查看源码按自动配置的套路,先查看AutoConfi
阅读全文
摘要:springboot整合mybatis 之后直接注入接口的原理。 1. pom引入 <!-- spring-boot整合mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-sp
阅读全文
摘要:mybatis 默认是开启一级缓存的。二级缓存有两个开关,一个是全局的开关,一个是针对每个Mapper 的开关。全局开关默认是开启的,针对每个Mapper 的开关是关闭的。所以开启二级缓存的时候需要对每个Mapper 都开启缓存。每个Mapper 共享同一个Cache。 1. 缓存介绍 mybati
阅读全文
摘要:mybatis有三种执行器。下面研究其主要区别。 其类图如下: 1. Executor 源码 org.apache.ibatis.executor.Executor: package org.apache.ibatis.executor; import java.sql.SQLException;
阅读全文
摘要:0. 前置 mybatis的原理图如下: 这个也是在刚学习mybatis 的时候的原理图。下面从源码层面理解其原理。 查看核心类的源码: 1. org.apache.ibatis.session.Configuration: 一个核心的配置累,包括扫描出来的MappedStatement 对象也存在
阅读全文