乐途乐途
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
  • 学习路径
  • 第1章 MyBatis概述与快速上手

    • 本章定位
    • MyBatis简介
    • 环境搭建
    • 第一个MyBatis程序
    • SqlSessionFactoryBuilder与openSession重载
    • SqlSessionFactory与SqlSession
    • SqlSession核心方法
    • 不使用 XML 构建 SqlSessionFactory
    • Mapper接口与映射方式
    • Java API 目录结构
  • 第2章 全局配置文件详解

    • 本章定位
    • properties
    • settings
    • typeAliases
    • typeHandlers
    • objectFactory
    • plugins
    • environments
    • transactionManager
    • dataSource
    • databaseIdProvider
    • mappers
    • 日志配置
  • 第3章 SQL映射文件基础

    • 本章定位
    • select
    • insert
    • update
    • delete
    • 参数传递与占位符
    • 主键生成策略
    • resultType
    • resultMap
    • 自动映射详解
    • sql片段
    • SQL 语句构建器
  • 第4章 动态SQL

    • 本章定位
    • if
    • choose、when、otherwise
    • where
    • set
    • foreach
    • trim
    • bind
    • script 元素:在注解映射器中启用动态 SQL
    • _databaseId 与动态 SQL 的多数据库支持
    • 动态 SQL 中插入脚本语言
  • 第5章 结果映射与关联查询

    • 本章定位
    • resultMap详解
    • association
    • collection
    • discriminator
    • N+1查询问题
    • 延迟加载
  • 第6章 MyBatis注解开发

    • 本章定位
    • @Select
    • @Insert
    • @Update
    • @Delete
    • @Param
    • @Options
    • @SelectKey
    • @Results
    • @Result
    • @One
    • @Many
    • @SelectProvider
  • 第7章 缓存与性能优化

    • 本章定位
    • 一级缓存
    • 二级缓存
    • 缓存配置详解
    • 自定义缓存
    • Executor执行器类型
    • 分页插件

"小崔,别急着写SQL。先搞清楚MyBatis是什么、核心对象怎么协作,再动手。"——白歌

本章定位

一句话:本章解决"MyBatis是什么、核心对象如何协作、如何不写一行XML先跑通第一个程序"的问题。

大翔要求飞翔科技的新项目下周启动,小崔刚入职,面对JDBC的样板代码和Hibernate的复杂映射两头犯难。白歌拍板:用MyBatis。这一章,小崔将从零开始,在CTO的倒计时压力下,把MyBatis跑起来。


学习路线图

学习顺序说明:

  1. 先建立认知(MyBatis简介)→ 知道为什么选它
  2. 再动手搭建(环境搭建)→ 把依赖和配置文件准备好
  3. 跑通第一个程序(第一个MyBatis程序)→ 获得正反馈
  4. 理解核心对象(SqlSessionFactory / SqlSession / Builder)→ 知道"谁创建谁、谁管什么"
  5. 掌握调用方式(核心方法 / Mapper接口)→ 知道怎么执行SQL
  6. 看清工程结构(目录结构)→ 知道文件放哪
  7. 了解纯代码方式(不使用XML)→ 为后续SpringBoot集成打伏笔

文件关系说明

文件一句话角色
MyBatis简介.md本章的"为什么":对比JDBC和Hibernate,说明MyBatis的半自动ORM定位
环境搭建.md本章的"准备动作":Maven依赖、配置文件模板、数据库连接
第一个MyBatis程序.md本章的"Hello World":完整可运行的最小示例,建立信心
SqlSessionFactory与SqlSession.md核心工厂与会话:理解MyBatis的"心脏"和"工作线程"
SqlSessionFactoryBuilder与openSession重载.md建造者与会话创建细节:掌握不同参数创建会话的能力
SqlSession核心方法.md操作入口:selectOne、selectList、insert、update、delete的用法与区别
Mapper接口与映射方式.md最佳实践入口:从直接调用到接口绑定的演进,现代MyBatis的标准写法
JavaAPI目录结构.md工程化视角:官方推荐的包结构和配置文件组织方式
不使用XML构建SqlSessionFactory.md进阶视角:纯Java API配置,为SpringBoot零XML配置做知识储备

知识图谱

核心概念关系:

  • SqlSessionFactoryBuilder 是"临时工",用完即弃,负责根据配置创建工厂
  • SqlSessionFactory 是"单例长生命周期的工厂",应用级唯一,负责生产会话
  • SqlSession 是"线程不安全的会话",每次请求新建,用完关闭,真正执行SQL
  • Mapper接口 是"开发友好层",底层仍由SqlSession代理执行,但让代码像"调用方法"而非"操作数据库"

与下一章的衔接

本章学完后,小崔已经能跑通MyBatis程序,但配置文件里那些 <properties>、<settings>、<environments> 标签到底什么意思?为什么有的项目配了 typeAliases 有的没配?

下一章《全局配置文件详解》将解决:MyBatis启动时到底读取了哪些配置、每个标签控制什么行为、哪些必须配、哪些可以优化开发体验。

"跑起来只是第一步。知道每个旋钮是干什么的,才能在生产环境不出事。"——李眉

下一页
MyBatis简介