这节课到底在解决什么工作问题

很多写 Java 的人在业务代码里用 MyBatis 用得很顺,但真到排查慢 SQL、定位事务回滚失效,或者给内部工具做轻量数据访问层时,就会发现只懂配置和调用远远不够。这节手写 ORM 框架的内容,解决的不是“怎么用 MyBatis 省时间”,而是“框架替你做了哪些事、一旦不做就会出什么事”。它把平时被 SqlSession、Mapper 代理、注解解析遮住的那一层手动展开,让你看清楚一条 SQL 从方法注解到返回对象中间到底走了几步。具体来说,它会拆解注解怎么定义、怎么被读取,JDBC 连接怎么管理,查询参数怎么从方法签名绑到 SQL 里,结果集怎么映射成实体。这种理解对做基础架构改造、二开内部持久层,或者应付技术面里的框架原理追问,都是直接能用的。它不教你应付业务需求,而是补上你写了很多年增删改查却一直缺失的底层视角。

适合什么基础、建议先看哪几块

这节课不适合完全没写过 JDBC 的人。你需要能独立用 JDBC 跑通增删改查,知道 Connection、PreparedStatement、ResultSet 各自管什么,对反射拿 Method、读 Annotation 有基本概念,对泛型不陌生。资料是按顺序排的,但如果你已有底子,建议先跳到注解代码实现和 select 方法实现这两段,确认自己能跟上参数解析和反射调用的节奏,再回头补 JDBC 基本对象创建和提交事务、释放资源那两块。这两块看着枯燥,但手写框架里很多诡异问题,比如自动提交没关、连接池打满,根因都在这里。另外,获取注解 SQL 中的参数列表这一段是难点,它决定了你的框架能不能把方法参数正确塞进占位符,看不懂这里后面基本接不上,建议多停几次。不要因为某段时长短就快进,事务和资源释放那几段是后面查询、插入能跑通的前提。

学完能独立做什么、资料怎么配合练习

跟着把注解解析、参数绑定、结果集映射这几段走完,你应该能独立写一个只支持查询和插入的迷你持久层框架,能给它加自定义注解,让一个 Mapper 接口方法直接返回实体对象列表,并且能处理简单的事务提交和资源关闭。这个产出本身不大,但价值在于你以后看 MyBatis 源码、看别的持久层实现,不会再觉得是黑盒。练习时建议别只看视频,准备一个本地数据库,自己建张表,每看完一段就停下来改代码:比如把查询注解的参数占位符换一种写法,看你的解析逻辑是不是还能对上;或者在做插入功能那段,故意把事务提交去掉,观察数据到底进没进表,再手动补上提交逻辑。手写框架这种东西,光跟着敲一遍和自己改一遍,对原理的理解差得很远。资料里每段时长不长,正好适合一段一停、改完再往下走。如果某段卡住,优先回去看 JDBC 对象创建和参数列表获取那两节,多数卡点都在这。

课程目录

课程目录18 集
  • 1 01手写注解orm之课程简介 (02:14).mp4
  • 2 02手写注解orm之数据库准备 (01:35).mp4
  • 3 03手写注解orm之环境搭建 (05:34).mp4
  • 4 04手写注解orm之注解代码实现 (10:15).mp4
  • 5 05手写注解orm之JDBC基本对象的创建 (23:27).mp4
  • 6 06手写注解orm之提交事务和释放资源 (09:55).mp4
  • 7 07手写注解orm之查询sql实现 (02:49).mp4
  • 8 08手写注解orm之mapper类的实现 (08:29).mp4
  • 9 09手写注解orm之获取注解sql中的参数列表 (12:23).mp4
  • 10 10手写注解orm之select方法的实现 (23:36).mp4
  • 11 11手写注解orm测试查找方法并且修改框架代码 (13:03).mp4
  • 12 12手写注解orm插入功能的介绍 (04:47).mp4
  • 13 13手写注解orm自定义插入注解 (02:51).mp4
  • 14 14手写注解orm获取插入参数的方法参数 (11:15).mp4
  • 15 15手写注解orm将参数值添加到list里面 (05:57).mp4
  • 16 16手写注解orm将sql语句参数变成问号 (03:48).mp4
  • 17 17手写注解orm实现插入数据的方法 (09:38).mp4
  • 18 18手写注解orm实现插入功能 (03:22).mp4