工程实践
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 层,每层只干自己的事。部门管理系统三部曲完整走了这条路。