为什么需要这门课
很多写 Java 后端的人,卡在“会写 SQL,但不会用 ORM”或者“会用 Hibernate,但一换 Spring Boot 就不知道怎么配”。这门课不是从零教你怎么写 Java,而是帮你把 JPA 这条线彻底打通:从传统 JDBC 的痛点,到 JPA 规范本身,再到 Spring Data 是怎么把它包装成“一个接口就能查库”的。如果你已经能写基本的 CRUD,但项目里一遇到关联查询、复杂条件、懒加载就发怵,那这门课正好补上这块缺口。
它适合的基础:知道 Java 语法、能写简单的 SQL、用过 Spring Boot 但只停留在 JdbcTemplate 或者 MyBatis 的层面。不需要你已经懂 Hibernate 的缓存机制,也不需要你背过 JPA 注解——课程会从最基础的实体映射讲起。但如果你连“什么是持久层”都还没概念,建议先补一下 ORM 的基本概念,再回来看这个。
建议先看哪几块
如果你是第一次接触 JPA,不要跳着看。先看前面关于 ORM 概述、JPA 与 Hibernate 关系、JPA 三方面技术的部分,这几节虽然短,但决定了你后面能不能理解“为什么 Spring Data 要这么设计”。看完概念后,紧接着看“导入依赖、创建测试表和实体类、使用注解标注实体类、核心配置文件、测试环境”这几块——它们是整套课的地基,你照着做一遍,才能明白 JPA 到底帮你省了什么。
如果你已经用过 Hibernate,只是对 Spring Data JPA 的接口不熟,那可以跳过前面几节,直接从“Spring Data 的 Repository 接口”开始看。但有一点要注意:课程里关于“JPA 注解”的部分,哪怕你觉得自己会,也值得快速扫一遍,因为很多细节(比如主键生成策略、字段映射的默认值)在 Spring Data 里会反复用到。
学完能独立做什么
学完这门课,你应该能独立搭一个基于 Spring Boot + Spring Data JPA 的持久层:自己建实体类、写 Repository 接口、配好数据源,然后跑通增删改查。更进一步,你能处理常见的关联关系(一对一、一对多、多对多),会写自定义查询(JPQL 或者方法名推导),也能理解事务和懒加载在什么时候会踩坑。
资料怎么配合练习:不要只看视频。每讲一个知识点,就停下来把示例代码敲一遍,然后改一个字段、加一个条件,看运行结果是不是你预想的。课程里的测试表和数据是给你练手的,但真正学会的标志是,你能把自己项目里的一张真实表用 JPA 映射出来,并且能解释为什么这么写。遇到报错,优先对照课程里讲过的配置和注解,不要急着去搜别的教程——这门课覆盖的常见坑已经足够你排查大部分问题。
课程目录
1-1 [JPA入门] 课程简介 (04:56) 1-2 [JPA入门] ORM概述 (06:37) 1-3 [JPA入门] 传统的持久层解决方案 (05:13) 1-4 [JPA入门] JPA概述 (06:39) 1-5 [JPA入门] JPA和Hibernate的关系 (02:37) 1-6 [JPA入门] JPA的供应商 (03:09) 1-7 [JPA入门] JPA的优势 (03:04) 1-8 [JPA入门] JPA包括3方面的技术 (03:06) 1-9 [JPA入门] 导入项目中依赖 (05:32) 1-10 [JPA入门] 创建测试表和实体类 (03:34) 1-11 [JPA入门] 使用JPA注解标注实体类 (10:43) 1-12 [JPA入门] JPA的核心配置文件 (06:07) 1-13 [JPA入门] 测试JPA环境 (09:29) 1-14 [JPA入门] JPA小结 (12:12) 2-1 [JPA常用的注解] JPA中注解概述 (04:57) 2-2 [JPA常用的注解] @Entity注解 (02:38) 2-3 [JPA常用的注解] @Table注解 (18:50) 2-4 [JPA常用的注解] @Id注解 (04:35) 2-5 [JPA常用的注解] 去除IDEA注解波浪线 (01:01) 2-6 [JPA常用的注解] @GeneratedValue注解 (09:51) 2-7 [JPA常用的注解] @Colum注解 (08:33) 2-8 [JPA常用的注解] @Basic注解 (04:08) 2-9 [JPA常用的注解] @Transient注解 (04:53) 2-10 [JPA常用的注解] @Temporal注解 (03:54) 2-11 [JPA常用的注解] JPA常见注解小结 (03:18) 3-1 [JPA主键生成策略] JPA中主键生成策略概念 (02:39) 3-2 [JPA主键生成策略] IDENTITY策略 (11:57) 3-3 [JPA主键生成策略] SEQUENCE策略 (13:52) 3-4 [JPA主键生成策略] AUTO策略 (01:49) 3-5 [JPA主键生成策略] TABLE策略 (06:31) 4-1 [JPA的API介绍] Persistence类使用 (23:15) 4-2 [JPA的API介绍] EntityManagerFactory对象 (17:31) 4-3 [JPA的API介绍] 关于重载方法 (03:39) 4-4 [JPA的API介绍] 对象的4种状态 (06:21) 4-5 [JPA的API介绍] find方法 (04:29) 4-6 [JPA的API介绍] getReference方法 (05:06) 4-7 [JPA的API介绍] persist方法 (02:40) 4-8 [JPA的API介绍] remove方法 (04:29) 4-9 [JPA的API介绍] merge方法 (11:17) 4-10 [JPA的API介绍] flush方法 (03:12) 4-11 [JPA的API介绍] refresh方法 (03:06) 4-12 [JPA的API介绍] EntityTransaction事务相关 (04:12) 5-1 [JPA的各种查询] JPQL简介 (03:33) 5-2 [JPA的各种查询] 抽取JPAUtil工具类 (05:50) 5-3 [JPA的各种查询] 全部查询 (06:36) 5-4 [JPA的各种查询] 条件查询 (07:47) 5-5 [JPA的各种查询] 分页查询 (10:03) 5-6 [JPA的各种查询] 排序查询 (04:14) 5-7 [JPA的各种查询] 统计查询 (08:15) 6-1 [SpringDataJPA入门] SpringDataJPA简介 (08:16) 6-2 [SpringDataJPA入门] SpringDataJPA和HibernateJPA的关系 (02:58) 6-3 [SpringDataJPA入门] 准备SpringDataJPA环境 (04:24) 6-4 [SpringDataJPA入门] 整合数据源 (09:30) 6-5 [SpringDataJPA入门] SpringDataJPA和Spring整合 (09:33) 6-6 [SpringDataJPA入门] SpringDataJPA的Dao层 (04:26) 6-7 [SpringDataJPA入门] SpringDataJPA测试 (11:15) 7-1 [SpringDataJPA的内部原理剖析] Spring Data JPA的常用接口分析 (02:26) 7-2 [SpringDataJPA的内部原理剖析] 关于SpringDataJPA的各种问题 (19:41) 7-3 [SpringDataJPA的内部原理剖析] SpringDataJPA的实现过程 (09:33) 8-1 [Repository子接口相关] Repository子接口相关概述 (04:00) 8-2 [Repository子接口相关] CrudRepository接口介绍 (02:12) 8-3 [Repository子接口相关] CrudRepository接口测试 (16:54) 8-4 [Repository子接口相关] PagingAndSortingRepository接口 (09:45) 8-5 [Repository子接口相关] 分页测试的方法 (18:33) 9-1 [SpringDataJPA查询方式] 存在的小问题 (07:24) 9-2 [SpringDataJPA查询方式] JpaRepository接口介绍 (05:13) 9-3 [SpringDataJPA查询方式] JPAReponository测试 (10:31) 9-4 [SpringDataJPA查询方式] JpaSpecificationExecutor接口 (07:10) 9-5 [SpringDataJPA查询方式] JpaSpecificationExecutor测试 (13:56) 9-6 [SpringDataJPA查询方式] SpringDataJPA的查询方式 (17:01) 9-7 [SpringDataJPA查询方式] 方法解析流程 (10:32) 9-8 [SpringDataJPA查询方式] 使用Query注解自定义JPQL查询 (03:51) 9-9 [SpringDataJPA查询方式] 按照位置和名字传递参数 (02:54) 9-10 [SpringDataJPA查询方式] @Modifying注解 (12:52) 10-1 [SpringDataJPA一对多关联] 表之间关系的划分 (05:14) 10-2 [SpringDataJPA一对多关联] 在JPA框架中表关系的分析步骤 (02:43) 10-3 [SpringDataJPA一对多关联] 一对多表的分析 (05:46) 10-4 [SpringDataJPA一对多关联] 配置一对多的环境 (12:08) 10-5 [SpringDataJPA一对多关联] 配置一对多的关联关系 (08:38) 10-6 [SpringDataJPA一对多关联] 配置双向关联 (05:13) 10-7 [SpringDataJPA一对多关联] 测试一对多和多对一 (08:45) 10-8 [SpringDataJPA一对多关联] 级联新增 (12:49) 10-9 [SpringDataJPA一对多关联] 级联新增出现的问题 (06:59) 10-10 [SpringDataJPA一对多关联] 级联删除测试 (11:37) 11-1 [SpringDataJPA多对多关联] 项目中的问题 (10:37) 11-2 [SpringDataJPA多对多关联] 多对多关系分析 (02:43) 11-3 [SpringDataJPA多对多关联] 准备多对多的环境 (07:43) 11-4 [SpringDataJPA多对多关联] 配置多对多关联 (11:42) 11-5 [SpringDataJPA多对多关联] 多对多级联新增 (12:42) 11-6 [SpringDataJPA多对多关联] 多对多级联删除 (06:25) 12-1 [SpringDataJPA一对一关联] 分析一对一表 (01:46) 12-2 [SpringDataJPA一对一关联] 准备一对一的环境 (07:07) 12-3 [SpringDataJPA一对一关联] 配置一对一关联 (13:20) 12-4 [SpringDataJPA一对一关联] 配置一对一的关联 (08:35) 13-1 [SSSP整合] SSSP整合概述 (02:03) 13-2 [SSSP整合] 创建Web项目 (02:17) 13-3 [SSSP整合] 导入依赖 (01:53) 13-4 [SSSP整合] 准备数据库属性文件 (48) 13-5 [SSSP整合] 新建applicationContext.xml (02:45) 13-6 [SSSP整合] 准备日志属性文件 (28) 13-7 [SSSP整合] 准备实体类 (01:18) 13-8 [SSSP整合] 准备Dao层 (01:01) 13-9 [SSSP整合] 准备业务逻辑层 (02:34) 13-10 [SSSP整合] 准备Controller层 (02:16) 13-11 [SSSP整合] 准备前端视图 (06:07) 13-12 [SSSP整合] SSSP框架测试 (09:29)





