Mybatis 整体架构

简介: Mybatis 分为三层架构• 基础支撑层• 核心处理层• 接口层

网络异常,图片无法展示
|

网络异常,图片无法展示
|

Mybatis 分为三层架构

  • 基础支撑层
  • 核心处理层
  • 接口层

网络异常,图片无法展示
|


基础支撑层


类型转换模块

JDBC类型与 Java 类型之间的相互转换、不管是入参还是结果集的转换、都是这个模块职责。

还有一个功能就是类型别名、这个有点类似 Spring 的别名、为了引用的时候名称更加简短


日志模块

Mybatis 的日志模块通过适配器模式可以集成主流的各种日志框架、Log4J、Logback等


反射工具模块

Mybatis 的反射工具、如 MetaObject 提供了一些更加灵活的 API 供我们调用


Binding 模块

生成 Mapper 接口的动态代理对象


数据源模块

也提供了与第三方数据源集成的相关接口

网络异常,图片无法展示
|


缓存模块

Mybatis 的一级缓存和二级缓存


解释器模块

解释 mybatis-config 和 mapper 配置文件


事务管理模块

MyBatis 对数据库中的事务进行了一层简单的抽象,提供了简单易用的事务接口和实现。

网络异常,图片无法展示
|


核心处理层


配置解释

依赖解释器模块、对全局配置、mapper 配置、注解配置进行解释


SQL 解释与 scripting 模块

动态SQL 的解释与生成


SQL 执行

Mybatis 执行一条 SQL、涉及到组件有:

Executor、StatementHandler、ParameterHandler 和 ResultSetHandler

Executor 会调用事务管理模块实现事务的相关控制,同时会通过缓存模块管理一级缓存和二级缓存。SQL 语句的真正执行将会由 StatementHandler 实现。那具体是怎么完成的呢?StatementHandler 会先依赖 ParameterHandler 进行 SQL 模板的实参绑定,然后由 java.sql.Statement 对象将 SQL 语句以及绑定好的实参传到数据库执行,从数据库中拿到 ResultSet,最后,由 ResultSetHandler 将 ResultSet 映射成 Java 对象返回给调用方,这就是 SQL 执行模块的核心。

网络异常,图片无法展示
|


接口层

常用的 SqlSession 接口、SqlSessionFactory 接口等

kaiwu.lagou.com/course/cour…

目录
相关文章
|
6月前
|
SQL Java 数据库连接
|
6月前
|
Web App开发 前端开发 Java
Apache Zeppelin系列教程第二篇——整体架构
Apache Zeppelin系列教程第二篇——整体架构
160 0
|
6月前
|
存储 安全 Java
SpringCloud整体架构概述
SpringCloud整体架构概述
150 0
|
6月前
|
安全 Java 应用服务中间件
阿里技术官架构使用总结:Spring+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。
|
9天前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
4月前
|
监控 Kubernetes 安全
Istio整体架构解析
【7月更文挑战第17天】Istio整体架构分为数据平面(Data Plane)和控制平面(Control Plane)两部分
|
5月前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
52 1
|
5月前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
79 2
|
5月前
|
XML Java 数据库连接
浅谈后端boot框架整合第三方技术JUnit MyBatis Druid整体思想
浅谈后端boot框架整合第三方技术JUnit MyBatis Druid整体思想
34 0
|
6月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
下一篇
无影云桌面