jdbc读取配置文件的核心是将数据库连接参数(url、用户名、密码等)从代码中分离至外部properties文件,再通过classloader.getresourceasstream()加载并解析,实现解耦、安全与环境适配。

Java 中 JDBC 读取配置文件,核心是把数据库连接参数(如 URL、用户名、密码)从硬编码中抽离出来,放到外部配置文件里,再通过 Java 代码加载并使用。这样更安全、易维护,也方便不同环境切换。
选择合适的配置文件格式
常用的是 properties 文件(如 db.properties),语法简单、JDK 原生支持。内容示例:
jdbc.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC jdbc.username=root jdbc.password=123456 jdbc.driver=com.mysql.cj.jdbc.Driver
也可以用 YAML 或 XML,但需额外依赖(如 SnakeYAML),对简单项目没必要。
用 ClassLoader 加载配置文件
推荐将 db.properties 放在 src/main/resources(Maven 项目)下,确保它会被打包进 classpath。然后用以下方式读取:
- 获取当前类的 ClassLoader:`getClass().getClassLoader()`
- 用 `getResourceAsStream("db.properties")` 获取输入流(注意路径不加斜杠开头)
- 用 `Properties.load()` 加载键值对
示例代码片段:
Properties props = new Properties();
try (InputStream is = getClass().getClassLoader()
.getResourceAsStream("db.properties")) {
props.load(is);
String url = props.getProperty("jdbc.url");
String user = props.getProperty("jdbc.username");
String pwd = props.getProperty("jdbc.password");
String driver = props.getProperty("jdbc.driver");
// 后续用这些值创建 Connection
} catch (IOException e) {
e.printStackTrace();
}
配合 JDBC 创建连接
读取完配置后,记得显式加载驱动(JDBC 4.0+ 可省略),再调用 DriverManager.getConnection():
- 如果用了较新 MySQL 驱动(8.x),`jdbc.driver` 可不写,Driver 类会自动注册
- URL 中的参数(如时区、SSL)别漏掉,否则可能报错或连接异常
- 密码等敏感信息不建议明文存配置文件,生产环境应结合加密或使用环境变量/配置中心
进阶建议:封装成工具类或用 DataSource
避免每次手动读取配置,可封装为静态方法:
public class DBConfig {
private static final Properties props = new Properties();
static {
try (InputStream is = DBConfig.class.getClassLoader()
.getResourceAsStream("db.properties")) {
props.load(is);
} catch (IOException e) {
throw new RuntimeException("加载 db.properties 失败", e);
}
}
public static String getUrl() { return props.getProperty("jdbc.url"); }
// 其他 getter...
}
更推荐使用 DataSource(如 HikariCP),它内置连接池、支持配置文件自动加载,且更符合现代实践。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











