第 1 章 · 手术室与器械:核心组件与起步 章节摘要:本章跟着一条线走——从一个裸写 JDBC 的查询开始,亲手把 MyBatis 的手术台搭起来,认清台上的每件器械:SqlSessionFactory 是器械柜,SqlSession 是一次性手术通道,Mapper 接口与 XML 是预约单和手术方案。读完你会明白每一次数据库操作在这套器械之间如何流转。 一条主线 想象一家没有专科手术室的小诊所:医生做每台手术都要自己生火、烧水、磨刀、缝线,做完再收拾一切。裸写 JDBC 的开发者过的就是这种日子——加载驱动、拿连接、建语句、塞参数、遍历结果集、按顺序关资源,六步一步不能错,而真正与业务有关的只有中间两步。 本章的主线就是"开一家专科手术室"。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.5:Mapper 接口不需要实现类,不是魔法,而是 JDK 动态代理在运行期替你造了一个。理解了这一点,"接口方法和 XML 语句是怎么对上的"就不再是一句口诀,而是可以推演的机制;后面所有章节的绑定异常、参数找不到、结果映射错位,都能顺着这条代理链定位。
另一个转折在 1.4:SqlSession 不是线程安全的,这与它承担的一级缓存、事务状态直接相关。现在记下这条红线,第 5 章讲缓存时你会看到它为什么存在。
台子搭好了,器械认全了,下一章正式开第一台手术:四种映射语句的完整 CRUD。我们会把注意力移到手术的入口——参数是怎么从接口方法一路装进 PreparedStatement 的,井号占位与美元拼接的分界线又划在哪里。