ORM
ORM 用来连接 Java 对象和关系型数据库。学习 ORM 不能只停留在“会写 Mapper”或“会用 Repository”,还要理解 SQL 执行、参数绑定、结果映射、缓存、事务、批量写入和慢 SQL 排查。
推荐学习顺序
- 从零到生产级掌握
- 从零到精通验收清单
- 商业场景训练营
- MyBatis
- MyBatis核心全过程原理
- MyBatis动态SQL
- MyBatis缓存机制
- MyBatis批量操作
- MyBatis拦截器
- MyBatis-Plus核心全过程原理
- Hibernate/JPA核心全过程原理
- Spring Data JPA核心全过程原理
- ORM事务与一致性
- ORM面试题
如果你想检查自己是否真的从零基础学懂到能面试、能落地、能排查,按 ORM 从零到精通验收清单 逐项验收。它会把 JDBC、MyBatis、MyBatis-Plus、JPA/Hibernate、Spring Data JPA、事务、缓存、批量和慢 SQL 排查串起来。
学习主线
mermaid
flowchart TD
A["JDBC 基础问题"] --> B["MyBatis 参数绑定和结果映射"]
B --> C["动态 SQL、缓存、插件"]
C --> D["MyBatis-Plus 增强"]
D --> E["JPA/Hibernate 持久化上下文"]
E --> F["Spring Data JPA Repository"]
F --> G["事务边界和一致性"]
G --> H["性能排查和面试表达"]选型建议
| 场景 | 推荐 |
|---|---|
| 复杂 SQL、报表、性能敏感 | MyBatis |
| 后台单表 CRUD | MyBatis-Plus 或 Spring Data JPA |
| 领域模型清晰、CRUD 多 | JPA/Hibernate |
| 批量采集入库 | MyBatis 批量写入 |
| 大表分页和复杂条件 | MyBatis 手写 SQL 并结合索引优化 |
最容易踩的坑
| 坑 | 后果 | 继续学习 |
|---|---|---|
| 不看最终 SQL | ORM 看似成功,线上慢查询 | 从零到生产级掌握 |
${} 拼用户输入 | SQL 注入 | MyBatis动态SQL |
| 乱开二级缓存 | 读到旧数据 | MyBatis缓存机制 |
| JPA 返回 Entity | 懒加载、循环引用、字段泄露 | Hibernate/JPA核心全过程原理 |
| 事务放 Mapper 层 | 多表业务不能整体回滚 | ORM事务与一致性 |
| 超大批次导入 | 锁、undo、内存和回滚压力 | MyBatis批量操作 |
小结
ORM 的本质是工程化封装,不是替代数据库知识。只有把 SQL、索引、事务、缓存、对象映射和线上排查串起来,才能在商业项目中真正用好 ORM。
