資料庫連線管理是 Java 開發基礎。本文提供一個完整的 ConnectionUtil,展示三種常見配置模式:硬編碼、參數傳遞、屬性檔案,並採用統一異常處理與資源關閉邏輯。
package com.cai.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class ConnectionUtil {
/** 方式一:方法內固化參數(僅供測試/原型) */
public Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/stud", "root", "root");
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/** 方式二:參數傳遞(靈活,適合多資料源) */
public Connection getConnection(String driver, String url, String user, String password) {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/** 方式三:Properties 配置檔(生產推薦,關注點分離) */
public Connection openConnection() {
Connection conn = null;
Properties props = new Properties();
try {
// 從 classpath 讀取 DBConfig.properties
props.load(this.getClass().getClassLoader().getResourceAsStream("DBConfig.properties"));
String driver = props.getProperty("driver");
String url = props.getProperty("url");
String user = props.getProperty("user");
String password = props.getProperty("password");
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
ConnectionUtil cu = new ConnectionUtil();
System.out.println("1、---->" + cu.getConnection());
System.out.println("2、---->" + cu.getConnection("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost:3306/stud", "root", "root"));
System.out.println("3、---->" + cu.openConnection());
}
}
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stud
user=root
password=root
try-with-resources 確保連線關閉。@Value 或 Environment 統一管理配置。Class.forName 可省略。