MyBatis
ONROAD0612
不问前程何如,但愿落幕无悔
展开
-
Mybatis使用--二级缓存
本实例是基于maven的项目。(1)需要添加的maven依赖 <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</arti...原创 2017-05-12 15:38:20 · 798 阅读 · 0 评论 -
Mybatis源码--Sql执行分析
1 概述前面我们分析了一些Sql解析过程中的一些重要类(Executor、StatementHandler等)的源码,现在就需要对将这些类串起来的流程进行一个详细的分析,所以我们现在来分析一下Mybatis中Sql执行的流程。2 流程图从流程图我们大致将Sql执行分成四步,针对第一步在前面的文章中我们已经有过分析,所以现在我们就对后面三步进行深入分析。3 流程分析在这里我们...原创 2018-10-31 16:53:08 · 511 阅读 · 0 评论 -
Mybatis源码--MapperMethod源码分析
1 概述为了便于对Configuration对象的初始化过程的分析,我们这里首先来看看MapperMethod的源码。MapperMethod的作用就是处理Mapper接口函数的注解、参数和返回值。2 内部类2.1 MethodSignature这个内部类主要用于处理函数的参数、注解和返回值。(1) hasNamedParams函数该函数用于判断方法上是否有Param注解。...原创 2018-10-30 20:05:57 · 479 阅读 · 0 评论 -
Mybatis源码--MapperProxyFactory&MapperProxy源码分析
1 概述针对这里的源码分析,我们首先要搞清楚java动态代理,因为就因为这里使用了java动态代理,才能够让我们在并没有mapper接口实现类对应的bean的情况下也能够进行依赖注入。2 MapperProxyFactory这个类的主要作用是用于生成mapper接口的Proxy代理。我们直接来看一下源码。import org.apache.ibatis.session.SqlS...原创 2018-10-30 20:19:09 · 554 阅读 · 0 评论 -
Mybatis源码--Executor源码分析
1 概述 Mybatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是Mybatis的一个核心接口。针对Executor的学习,我们先来说说Executor的生成和Executor的分类,然后再来看看其中某个典型方法的具体执行。2 Executor生成Executor是通过Configuration的newExecutor函数来生成的,我们来看一看ne...原创 2018-10-30 20:48:19 · 697 阅读 · 0 评论 -
Mybatis源码--Resources源码分析
1 概述在我们使用Mybatis的时候都需要将配置文件转换成InputStream,这使用我们通常是使用Resources的getResourceAsStream函数。通过查看Resources源码的注释我们也可以发现,Resources提供了通过类加载器获取资源的功能2 ClassLoaderWrapper类查看Resources源码,可以看见其拥有一个ClassLoaderWrap...原创 2018-11-02 16:23:43 · 409 阅读 · 0 评论 -
Mybatis工具--分页插件
1 概述在我们使用Mybatis的时候希望对以映射语句进行拦截处理,这个时候就可以用到Mybatis的插件。接下来我们就来Mybatis中的插件是如何实现的,然后来实现分页插件。2 实现MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction...原创 2018-11-07 15:40:28 · 292 阅读 · 0 评论 -
Mybatis源码--BaseBuilder源码分析
1 概述BaseBuilder家族的主要作用就是处理配置文件的内容,包括mapper配置文件和config文件,在这里我们有必要首先对其基类进行简单地说明。2 属性2.1 configuration持有配置文件对象,方便解析配置文件后对数据进行设置。2.2 typeAliasRegistry类别名注册器,里面持有类别名和类的键值对。2.3 typeHandlerRegi...原创 2018-11-12 18:41:33 · 733 阅读 · 0 评论 -
Mybatis源码--XMLConfigBuilder源码分析
注意:文章内容较多,请耐心阅读。1 概述前面我们分析了BaseBuilder,BaseBuilder提供的主要功能是处理类型的转换。现在我们就来分心XMLConfigBuilder,这个类的主要作用就是解析mybatis的配置文件。2 属性2.1 parsedprivate boolean parsed;这个属性用于控制XMLConfigBuilder是否被使用,因为一个...原创 2018-11-14 19:54:19 · 312 阅读 · 0 评论 -
Mybatis源码--SqlSessionFactory&SqlSession源码分析
1 概述这两个类,SqlSessionFactory作为Mybatis的入口提供了各种获取SqlSession的函数。SqlSessionFactory大部分情况下生成唯一的实例,读写分离和多数据库除外。SqlSession主要用于提供CRUD操作。2 SqlSessionFactory我们来看一下SqlSessionFactory的源码。public interface Sql...原创 2018-10-31 16:37:44 · 277 阅读 · 0 评论 -
Mybatis源码--ParameterHandler源码分析
1 概述通过前面文章(Mybatis源码分析--StatementHandler源码分析 )的学习,我们已经知道了ParameterHandler是用于绑定参数的。通过查看ParameterHandler的源码,我们知道ParameterHandler是一个接口,而且找个接口仅仅有DefaultParameterHandler一个实现类。我们这里就来看看DefaultParameterHand...原创 2018-10-31 11:39:12 · 293 阅读 · 0 评论 -
Mybatis源码分析
MyBatis源码分析-SQL语句执行的完整流程 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。...转载 2018-04-11 21:11:13 · 231 阅读 · 0 评论 -
Mybatis源码--初始化过程分析
1 概述所有框架的初始化其实就是读取配置文件中的数据来生成配置对应的类的对象。针对Mybatis框架的初始化其实就是读取配置文件和Mapper配置文件来生成Condiguration类的对象。下面我们来看一下具体的初始化过程。2 利用XML初始化2.1 应用示例首先我们来看一个使用Mybatis的简单示例。示例工程结构如下:针对上面的示例,关键源码如下:(1)datas...原创 2018-10-15 17:15:08 · 438 阅读 · 0 评论 -
Mybatis源码--XML配置文件解析(未完待续)
1 概述前面的文章我们针对Mybatis的初始化的整个过程做了一个分析,我们知道Mybatis的初始化其实就是将配置文件的配置信息最终转换成Configuration对象的一个过程,现在我们就来看一看这个过程到底做了些什么。2 Configuration类详解我们知道XML配置文件最终都会解析成Configuration配置类,那么这里我们就来看看Configuraion这个类中到底包...原创 2018-10-22 11:53:00 · 350 阅读 · 0 评论 -
Mybatis源码--StatementHandler源码分析
1 概述在上一篇文章(Mybatis源码分析--Executor源码分析),我们分析Executor源码的时候就提到了StatementHandler的作用是和数据库对话。当然StatementHandler和数据库对话是依赖于Statement来完成的。在这里随便说一下ParameterHandler和ResultHandler的作用分别是绑定SQL参数和组装最后的结果返回。2 生成St...原创 2018-10-31 10:53:21 · 394 阅读 · 0 评论 -
Mybatis源码--XMLMapperBuilder源码分析
1 概述原创 2018-11-16 16:10:32 · 317 阅读 · 0 评论