jdbc核心是“加载驱动→获取连接→创建语句→执行sql→处理结果→关闭资源”六步流程;关键组件包括driver(契约)、drivermanager(getconnection)、connection(会话与事务)、statement/preparedstatement(防注入)、resultset(遍历查询结果)和sqlexception(必须捕获),强调资源自动关闭、事务控制及驱动版本匹配。

核心骨架:按 JDBC 工作流程组织主干
从“加载驱动 → 获取连接 → 创建语句 → 执行 SQL → 处理结果 → 关闭资源”这条主线出发,作为思维导图的一级分支。每个环节对应一个核心 API 接口或类,避免堆砌方法名,先立住骨架。
关键节点必须包含的六大组件
每个组件用二级分支展开,标注作用 + 典型用法(一行代码示例足矣),不列全部方法:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- Driver 接口:所有数据库驱动的统一契约;只需记住 Class.forName("com.mysql.cj.jdbc.Driver")(MySQL 8+)或由 DriverManager 自动加载(JDBC 4.0+)
- DriverManager 类:负责注册驱动、获取 Connection;核心是 getConnection(url, user, pwd)
- Connection 接口:代表一次数据库会话;重点方法:createStatement()、prepareStatement(sql)、setAutoCommit(false)、commit()、rollback()
- Statement / PreparedStatement:区分静态执行 vs 预编译执行;强调 PreparedStatement 的 ? 占位符 + setXxx() 机制,防 SQL 注入且提升性能
- ResultSet 接口:封装查询结果;只记常用遍历方式:while(rs.next()) { rs.getString("col") },不必罗列所有 getXXX 方法
- SQLException:唯一需显式捕获的检查异常;提醒在 try-with-resources 或 finally 中关闭资源
容易被忽略但必须单列的实战要点
这些不是 API,却是写对 JDBC 的关键,建议设为独立分支,加⚠️图标或红色标记:
- 资源必须手动/自动关闭:Connection、Statement、ResultSet 都实现 AutoCloseable,推荐用 try-with-resources 写法
- 事务控制粒度:默认 auto-commit=true;批量操作或业务一致性场景,需 conn.setAutoCommit(false) 后显式 commit/rollback
- SQL 注入防范锚点:只用 PreparedStatement 设置参数;严禁字符串拼接 SQL(如 "WHERE name = '" + name + "'")
- 驱动版本匹配:MySQL 5.x 用 mysql-connector-java:5.1.x,8.x 用 8.0.x,驱动类名也不同(com.mysql.jdbc.Driver vs com.mysql.cj.jdbc.Driver)
进阶可选分支(按需添加)
如果面向中高级学习者,可增加简洁分支:
- DataSource 替代 DriverManager:用于连接池(如 HikariCP),解耦连接获取逻辑
- JDBC 4.0+ 自动加载机制:META-INF/services/java.sql.Driver 文件让驱动自动注册
- 批处理(addBatch / executeBatch):适用于多条同结构 INSERT/UPDATE
- 可滚动/可更新 ResultSet:设置 Statement 参数(如 TYPE_SCROLL_INSENSITIVE)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










