JDBC是Java官方定义的数据库操作接口规范,核心流程为加载驱动、获取连接、创建语句、执行SQL、释放资源;重点掌握PreparedStatement防注入与ResultSet安全取值,以及事务控制和HikariCP连接池应用。

Java 中数据库操作的核心就是 JDBC,复习时抓住“连接—执行—结果”这条主线,不堆概念,重实操逻辑。
搞清 JDBC 是什么、为什么需要它
JDBC 不是数据库,也不是驱动本身,而是 Java 官方定的一套接口规范。真正干活的是 MySQL、Oracle 等厂商写的驱动(比如 com.mysql.cj.jdbc.Driver)。它的价值在于:写一套 Java 代码,换驱动、改 URL 就能连不同数据库,底层差异被屏蔽了。
- 别死记“JDBC 是 Java 数据库连接”,重点理解它是“标准协议 + 厂商实现”的协作模式
- 对比手动用 Navicat 操作数据库,JDBC 是让程序自动发 SQL、自动拿结果,是自动化交互的桥梁
掌握五步固定流程,每步只做一件事
增删改查写法不同,但流程完全一致。熟练到能默写这五步,就稳了一半:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 加载驱动:MySQL 8 用 Class.forName("com.mysql.cj.jdbc.Driver");新版 JDK 可省略,但建议保留,明确意图
- 获取连接:URL 格式必须记牢——jdbc:mysql://localhost:3306/库名?useSSL=false&characterEncoding=UTF8;端口、参数一个都不能错
- 创建语句对象:简单拼接用 Statement;带参数(如登录校验、模糊查询)必须用 PreparedStatement,防 SQL 注入是硬性要求
- 执行 SQL:executeUpdate() 用于 insert/update/delete;executeQuery() 专用于 select,返回 ResultSet
- 释放资源:按 ResultSet → Statement → Connection 顺序关闭,用 try-with-resources 最省心
吃透 PreparedStatement 和 ResultSet 的关键用法
这两者是日常开发最常打交道的类,光会写不够,得懂怎么用才安全、高效:
立即学习“Java免费学习笔记(深入)”;
- PreparedStatement 预编译后,同一 SQL 多次执行只需编译一次;用 setString(1, "张三") 绑定参数,不再拼字符串
- ResultSet 默认只能向下遍历,用 rs.next() 移动指针;取值推荐用列名(rs.getString("name")),比用索引更可读、抗表结构变化
- 注意 null 值处理:rs.getObject("age") == null 比 rs.getInt("age") == 0 更准确,避免把真实 0 当成空
补上事务与连接池这两个实战短板
单条 SQL 没问题,一到多操作就出错?多半卡在这两块:
- 事务控制:Connection 默认自动提交,要手动事务就得先 conn.setAutoCommit(false),成功后 commit(),异常时 rollback()
- 连接池不是选学内容:每次 new Connection 开销大、易超限。HikariCP 是当前主流,配置 poolSize、maxLifetime、connectionTimeout 三个参数就够用
- 别自己写 DBUtil 工具类封装 getConnection(),优先用现成连接池 + Spring 的 JdbcTemplate 或 MyBatis

















