Java后端开发的“最后一公里”:从语法到数据持久化

很多Java初学者容易陷入一种误区:类、接口、集合、异常处理背得滚瓜烂熟,代码写得头头是道,可一旦要连接数据库、保存一条用户信息,就不知从何下手。这门课解决的核心痛点,正是Java语言与关系型数据库之间的“翻译”问题。JDBC(Java Database Connectivity)不是复杂的框架,它是Java标准库中操作数据库的底层API。不理解JDBC,直接上手Spring JPA或MyBatis会像空中楼阁——你知道怎么写注解,却不知道底层SQL是怎么发出去的,结果集是怎么映射成对象的。

这门课适合已经掌握JavaSE基础(特别是面向对象编程和集合框架)的学习者。如果你在备考或转岗过程中,发现简历上写了“熟悉Java”,但被问到“如何用纯Java连接MySQL并查询数据”时大脑一片空白,那么这里是你的补缺之地。课程不追求大而全的框架速成,而是死磕JDBC的原始用法,为你后续学习任何ORM框架打下坚不可摧的地基。

学习路径建议:先懂原理,再谈封装

建议学习顺序严格遵循课程结构,不要跳步。

  • 第一阶段:打通连接(1-1至1-3)。重点理解DriverManager、Connection、Statement这三个核心对象的生命周期。很多初学者只会写连接代码,却不知道怎么判断连接是否真的成功。这一阶段务必亲手敲出连接MySQL的代码,并能在控制台看到连接成功的输出。这是所有后续操作的前提。
  • 第二阶段:掌握CRUD核心操作(2-1至2-7)。这是课程的重头戏。注意区分DML(Insert/Update/Delete)和DQL(Select)。执行DML时,重点理解资源释放的重要性——为什么必须关闭ResultSet、Statement和Connection?否则会导致数据库连接池耗尽。执行DQL时,重点攻克ResultSet结果集的遍历方式:查一条记录怎么取?查所有记录怎么循环?这里的逻辑是后续所有高级框架映射数据的底层逻辑。
  • 第三阶段:思想升华(3-1)。引入DAO(Data Access Object)模式。不要只把它当作一个概念,要理解为什么要将数据库操作封装到DAO类中,而不是写在业务逻辑里。这是从“写脚本”到“写工程”的关键一步。

学完能做什么?资料如何配合练习

完成本课程后,你将能够独立使用纯Java代码完成对MySQL数据库的增删改查,理解SQL注入的风险及PreparedStatement的必要性(虽未在目录显式列出,但JDBC必讲),并能用DAO思想组织数据库访问层代码。这意味着你具备了开发传统JavaWeb应用最基础的数据交互能力。

资料包通常包含项目源码和数据库脚本。请勿直接复制粘贴运行,那没有任何意义。正确的配合方式是:先按照视频讲解,手动敲出每一行JDBC代码;遇到报错时,再对照资料包中的源码找出差异。对于“为什么要释放资源”这类理论小节,建议在代码中故意注释掉close()方法,观察程序多次运行后的内存或连接状态变化,通过实践验证理论。只有亲手踩过坑,这些知识才会真正属于你。

课程目录

1-1 [JDBC基本使用] 什么是JDBC (04:48)
1-2 [JDBC基本使用] JDBC连接MySQL (12:26)
1-3 [JDBC基本使用] 查看连接是否成功 (03:06)
2-1 [JDBC执行CURD操作] JDBC创建Mysql表 (08:05)
2-2 [JDBC执行CURD操作] 为什么要释放资源 (04:27)
2-3 [JDBC执行CURD操作] JDBC执行DMl操作 (12:43)
2-4 [JDBC执行CURD操作] 查询结果集ResultSet介绍 (06:28)
2-5 [JDBC执行CURD操作] 执行DQL操作 (07:07)
2-6 [JDBC执行CURD操作] DQL查询一条记录 (04:50)
2-7 [JDBC执行CURD操作] DQL查询所有记录 (04:42)
3-1 [DAO思想] 什么是DAO (07:14)
3-2 [DAO思想] ORM对象关系映射 (07:04)
3-3 [DAO思想] domain是什么 (09:54)
3-4 [DAO思想] DAO思想代码演示 (14:44)
3-5 [DAO思想] 面向接口编程 (07:01)
3-6 [DAO思想] DAO命名规范 (03:24)
3-7 [DAO思想] DAO开发步骤 (10:29)
3-8 [DAO思想] DAO编写保存功能 (13:52)
3-9 [DAO思想] 单元测试 (04:13)
3-10 [DAO思想] DAO删除更新操作 (07:26)
3-11 [DAO思想] DAO查询操作 (12:26)
3-12 [DAO思想] DAO重构用户名密码 (06:58)
3-13 [DAO思想] DAO抽取JDBC工具类 (06:42)
3-14 [DAO思想] DAO封装连接对象方法 (08:07)
3-15 [DAO思想] DAO封装关闭资源 (04:25)
4-1 [预编译语句] 预编译语句介绍 (05:56)
4-2 [预编译语句] 预编译语句代码实现 (06:13)
4-3 [预编译语句] 预编译语句改写DAO (06:21)
4-4 [预编译语句] 预编译语句性能优化 (06:15)
4-5 [预编译语句] 用户登录功能 (08:07)
4-6 [预编译语句] SQL注入 (08:20)
4-7 [预编译语句] JDBC调用存储过程 (08:44)
4-8 [预编译语句] JDBC调用输出参数存储过程 (07:10)
5-1 [事务与批处理] 事务转账问题 (14:07)
5-2 [事务与批处理] 保存图片到数据库 (13:30)
5-3 [事务与批处理] 批处理 (12:15)
5-4 [事务与批处理] 保存图片到数据库 (13:30)
5-5 [事务与批处理] 从数据库当中获取图片 (06:28)
5-6 [事务与批处理] 获取自动生成主键需求 (05:42)
5-7 [事务与批处理] 获取自动生成主键实现 (09:44)
6-1 [数据库连接池与配置文件] 池概念 (07:06)
6-2 [数据库连接池与配置文件] 数据库连接池 (04:28)
6-3 [数据库连接池与配置文件] 连接池分类 (08:14)
6-4 [数据库连接池与配置文件] DBCP连接池他用 (15:12)
6-5 [数据库连接池与配置文件] 配置文件介绍 (06:08)
6-6 [数据库连接池与配置文件] 读取配置文件 (11:29)
6-7 [数据库连接池与配置文件] 配置文件改写DBCP连接池 (04:55)
6-8 [数据库连接池与配置文件] Druid连接池 (08:40)
7-1 [封装DBUtils工具类] 代码重构原则 (07:29)
7-2 [封装DBUtils工具类] DML代码抽取 (13:49)
7-3 [封装DBUtils工具类] 抽取CRUD模板 (10:21)
7-4 [封装DBUtils工具类] DQL代码抽取 (08:10)
7-5 [封装DBUtils工具类] 结果集处理器思路 (11:42)
7-6 [封装DBUtils工具类] 结果集处理器代码实现 (13:29)
7-7 [封装DBUtils工具类] 结果集处理器添加泛型 (14:19)
7-8 [封装DBUtils工具类] 结果集处理器存在的问题 (05:42)
7-9 [封装DBUtils工具类] 内省 (18:53)
7-10 [封装DBUtils工具类] 通过结果集处理器 (16:25)
7-11 [封装DBUtils工具类] 通用结果集处理器封装jar包 (11:49)
7-12 [封装DBUtils工具类] DBUtils基本使用 (17:50)