"小崔,别急着写SQL。先搞清楚MyBatis是什么、核心对象怎么协作,再动手。"——白歌
本章定位
一句话:本章解决"MyBatis是什么、核心对象如何协作、如何不写一行XML先跑通第一个程序"的问题。
大翔要求飞翔科技的新项目下周启动,小崔刚入职,面对JDBC的样板代码和Hibernate的复杂映射两头犯难。白歌拍板:用MyBatis。这一章,小崔将从零开始,在CTO的倒计时压力下,把MyBatis跑起来。
学习路线图
学习顺序说明:
- 先建立认知(MyBatis简介)→ 知道为什么选它
- 再动手搭建(环境搭建)→ 把依赖和配置文件准备好
- 跑通第一个程序(第一个MyBatis程序)→ 获得正反馈
- 理解核心对象(SqlSessionFactory / SqlSession / Builder)→ 知道"谁创建谁、谁管什么"
- 掌握调用方式(核心方法 / Mapper接口)→ 知道怎么执行SQL
- 看清工程结构(目录结构)→ 知道文件放哪
- 了解纯代码方式(不使用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是"线程不安全的会话",每次请求新建,用完关闭,真正执行SQLMapper接口是"开发友好层",底层仍由SqlSession代理执行,但让代码像"调用方法"而非"操作数据库"
与下一章的衔接
本章学完后,小崔已经能跑通MyBatis程序,但配置文件里那些 <properties>、<settings>、<environments> 标签到底什么意思?为什么有的项目配了 typeAliases 有的没配?
下一章《全局配置文件详解》将解决:MyBatis启动时到底读取了哪些配置、每个标签控制什么行为、哪些必须配、哪些可以优化开发体验。
"跑起来只是第一步。知道每个旋钮是干什么的,才能在生产环境不出事。"——李眉