mybatis源码解析-源码架构及核心对象理解

57 阅读1分钟

1.mybatis的源码架构

Mybatis架构分为三层,接口层,核心处理层,基础支持层。

image.png

  • 接口层

    接口层是mybatis的入口,其核心对象是SqlSession,定义了很多的对数据库操作的方法。

image.png

  • 核心处理层

    包括解析sql数据,执行sql,处理结果集等。

  • 基础支持层

    用来支撑核心处理层的能力。例如缓存,反射,xml解析等

2.核心对象介绍

  • SqlSessionFactoryBuilder

    用来创建SqlSessionFactory,里面重载了一些相关的方法。

image.png

  • SqlSessionFactory

创建SqlSession,生命周期存在于整个应用中。每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。

image.png

  • SqlSession

使用 MyBatis 的主要 Java 接口就是 SqlSession。你可以通过这个接口来执行命令,获取映射器实例和管理事务。在介绍 SqlSession 接口之前,我们先来了解如何获取一个 SqlSession 实例。SqlSessions 是由 SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建 SqlSession 实例的各种方法。而 SqlSessionFactory 本身是由 SqlSessionFactoryBuilder 创建的,它可以从 XML、注解或 Java 配置代码来创建 SqlSessionFactory。

image.png