第1章 手术室与器械:MyBatis核心组件与起步


文档摘要

第 1 章 · 手术室与器械:核心组件与起步 章节摘要:本章跟着一条线走——从一个裸写 JDBC 的查询开始,亲手把 MyBatis 的手术台搭起来,认清台上的每件器械:SqlSessionFactory 是器械柜,SqlSession 是一次性手术通道,Mapper 接口与 XML 是预约单和手术方案。读完你会明白每一次数据库操作在这套器械之间如何流转。 一条主线 想象一家没有专科手术室的小诊所:医生做每台手术都要自己生火、烧水、磨刀、缝线,做完再收拾一切。裸写 JDBC 的开发者过的就是这种日子——加载驱动、拿连接、建语句、塞参数、遍历结果集、按顺序关资源,六步一步不能错,而真正与业务有关的只有中间两步。 本章的主线就是"开一家专科手术室"。1.

第 1 章 · 手术室与器械:核心组件与起步

章节摘要:本章跟着一条线走——从一个裸写 JDBC 的查询开始,亲手把 MyBatis 的手术台搭起来,认清台上的每件器械:SqlSessionFactory 是器械柜,SqlSession 是一次性手术通道,Mapper 接口与 XML 是预约单和手术方案。读完你会明白每一次数据库操作在这套器械之间如何流转。

一条主线

想象一家没有专科手术室的小诊所:医生做每台手术都要自己生火、烧水、磨刀、缝线,做完再收拾一切。裸写 JDBC 的开发者过的就是这种日子——加载驱动、拿连接、建语句、塞参数、遍历结果集、按顺序关资源,六步一步不能错,而真正与业务有关的只有中间两步。

本章的主线就是"开一家专科手术室"。1.1 先把 JDBC 的琐碎逐条摊开,看清 MyBatis 到底替你做了什么、没做什么;1.2 动手搭环境,完成第一台完整手术(建表、写映射、跑通查询);1.3 解剖全局配置与 SqlSessionFactory 的构建层级;1.4 盯住 SqlSession 的生命周期,弄清它为什么必须"用完即弃";1.5 揭开 Mapper 接口与 XML 绑定的原理——为什么一个没有实现类的接口能执行 SQL。

本章组件全景

一句金句:SqlSessionFactory 全局一份,SqlSession 一次一台,Mapper 代理现取现用——三层器械的使用寿命决定了整个数据访问层的稳定性。

沿途站点

  • 1.1 从 JDBC 到 SQL 映射手术台:用一段真实的 JDBC 代码与等价的 MyBatis 版本对照,数清省掉的每一步;给出"半自动框架"的准确定位与手术三段论(参数入、动态拼装、结果出)。
  • 1.2 环境搭建与第一台完整手术:依赖、全局配置、实体、映射文件、运行入口一次配齐,附首跑最常见的三类报错对照表。
  • 1.3 SqlSessionFactory 的构建与解剖:Builder 到 Factory 到 Session 的层级关系,environments、dataSource、settings 各配置块的作用与取舍。
  • 1.4 SqlSession 会话的生命周期:openSession 的参数族、方法族,一次"忘提交导致数据消失"的完整排错,线程安全红线的由来。
  • 1.5 Mapper 接口与 XML 的绑定原理:namespace 与接口全限定名、id 与方法名的对应规则,动态代理如何在运行期生成实现,BindingException 的定位思路。

拐点与结论

本章最重要的认知转折在 1.5:Mapper 接口不需要实现类,不是魔法,而是 JDK 动态代理在运行期替你造了一个。理解了这一点,"接口方法和 XML 语句是怎么对上的"就不再是一句口诀,而是可以推演的机制;后面所有章节的绑定异常、参数找不到、结果映射错位,都能顺着这条代理链定位。

另一个转折在 1.4:SqlSession 不是线程安全的,这与它承担的一级缓存、事务状态直接相关。现在记下这条红线,第 5 章讲缓存时你会看到它为什么存在。

读完你应该

  1. 能徒手画出 Builder、Factory、Session、Mapper 四者的创建链路,并说出每一层的生命周期范围
  2. 能独立从零搭建 MyBatis 环境,并解释全局配置中 environments、transactionManager、dataSource 三个配置块各自的职责
  3. 能区分 POOLED 与 UNPOOLED 数据源的适用场景,知道 settings 里至少三个常用开关的作用
  4. 能用 try-with-resources 正确管理 SqlSession,说出 autoCommit 与 commit 的关系
  5. 能解释 Mapper 接口没有实现类却能执行 SQL 的原理,以及 namespace 写错会发生什么
  6. 能对照报错信息,把首跑失败的原因归到"环境、配置、绑定"三类之一

下一章的接力

台子搭好了,器械认全了,下一章正式开第一台手术:四种映射语句的完整 CRUD。我们会把注意力移到手术的入口——参数是怎么从接口方法一路装进 PreparedStatement 的,井号占位与美元拼接的分界线又划在哪里。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U