Skip to content

11 — MyBatis索引

定位: 半自动 ORM 框架 — SQL 与 Java 代码分离,灵活控制 + 自动映射 面试高频度: ⭐⭐⭐⭐

一、知识全景图

┌─────────────────────────────────────────────────────────────┐
│               MyBatis 架构全景                               │
│                                                              │
│  ┌─────────── 启动流程 ────────────────────────────┐        │
│  │  mybatis-config.xml → SqlSessionFactoryBuilder   │        │
│  │  → SqlSessionFactory → SqlSession                │        │
│  └──────────────────────────────────────────────────┘        │
│                                                              │
│  ┌─────────── Mapper 层 ────────────────────────────┐       │
│  │  Mapper 接口 + Mapper.xml / 注解                   │       │
│  │  JDK 动态代理 → MapperProxy → SqlSession          │       │
│  │  #{} vs ${}: 预编译 vs 字符串拼接                   │       │
│  └──────────────────────────────────────────────────┘        │
│                                                              │
│  ┌─────────── 核心能力 ────────────────────────────┐        │
│  │  动态 SQL (if/choose/foreach/where/set)          │        │
│  │  关联查询 (association/collection)                │        │
│  │  缓存: 一级(SqlSession) → 二级(SqlSessionFactory) │        │
│  └──────────────────────────────────────────────────┘        │
│                                                              │
│  MyBatis vs JDBC: 减少 80% 样板代码                           │
│  MyBatis vs Hibernate: SQL 在手,性能可控                     │
└─────────────────────────────────────────────────────────────┘

二、子专题导航

#主题面试频率核心内容
**核心配置与SqlSession**核心配置与SqlSession⭐⭐⭐全局配置、SqlSessionFactory 构建、生命周期
**Mapper映射原理**Mapper映射原理⭐⭐⭐⭐动态代理实现、#{} 预编译、ResultMap
**动态SQL与关联查询**动态SQL与关联查询⭐⭐⭐⭐if/foreach/where、association/collection、延迟加载
**缓存机制**缓存机制⭐⭐⭐一级缓存/二级缓存、缓存失效场景、自定义缓存

📚 相关文件

  • **SpringBoot与Web开发** — MyBatis-Spring 整合
  • **Java文库设计文档** — 返回总纲

Knowledge4J — Java 知识库