← 返回笔记

工程实践

JDBCUtils 工具类:把重复代码收进工具箱

2026-08-18 09:00 JDBC三层架构

记录把 JDBC 连接、配置读取和资源关闭抽成工具类,并配合 DAO 分层减少重复代码。

JDBCUtils 工具类:把重复代码收进工具箱

来源:Java 应用开发课程实验二(2025-12-01)· 整理:婉萤

为什么需要工具类

写第一个 JDBC 程序时会发现:每次操作都要重复「加载驱动 → 建连接 → 关资源」,一个功能里真正有区别的只有 SQL 那一行。重复三次就该抽离——JDBCUtils 就是那把剪刀。

设计要点

配置外置:数据库地址、账号密码不写死在代码里,放进 db.properties,改环境不用改代码:

mydriver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbname
username=root
password=***

两个静态方法搞定一切

public class JDBCUtils {
    // 读取 properties 配置,加载驱动,返回连接
    public static Connection getConnection() { ... }

    // 按 结果集→执行器→连接 顺序关闭,每个都判空、各自 try-catch
    public static void close(ResultSet rs, PreparedStatement pstm, Connection conn) { ... }
}

工程化的细节

  • 异常处理:底层异常统一包装成 RuntimeException("获取链接失败", e),保留原始异常链(cause),排查时能看到根因
  • 关闭资源:三个 close 分开 try-catch——一个资源关闭失败不能影响另外两个的释放
  • 类路径加载JDBCUtils.class.getResourceAsStream("/com/ts/cmx/conf/db.properties"),按包结构组织配置文件

下一步

工具类只是第一层。再往上走就是 DAO 分层:视图层(Scanner 菜单)→ 业务层 → DAO 层,每层只干自己的事。部门管理系统三部曲完整走了这条路。