JDBC (Java Database Connectivity) 是 Java 程式連接關聯式資料庫的標準 API。無論是開發 Web 應用還是桌面程式,掌握 JDBC 連接資料庫的標準流程都是 Java 開發者的基本功。本文將詳細解析 JDBC 連接 MySQL 資料庫的完整步驟與程式碼實作。
Class.forName(driver) 註冊 JDBC 驅動DriverManager.getConnection(url, username, password) 取得 ConnectionConnection.createStatement() 建立 StatementexecuteQuery() (查詢) 或 executeUpdate() (增刪改)import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
public static void main(String[] args) {
// 資料庫連線參數
String driver = "com.mysql.cj.jdbc.Driver"; // MySQL 8.0+ 驅動類別
String url = "jdbc:mysql://localhost:3306/userdb?useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "123456";
String sql = "SELECT id, username, email, age FROM users";
try {
// 1. 載入驅動
Class.forName(driver);
} catch (ClassNotFoundException e) {
System.err.println("找不到 JDBC 驅動: " + e.getMessage());
return;
}
// 使用 try-with-resources 自動關閉資源 (Java 7+)
try (Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
// 4-5. 執行查詢並處理結果
System.out.println("用戶列表:");
System.out.println("-------------------");
while (rs.next()) {
int id = rs.getInt("id");
String username = rs.getString("username");
String email = rs.getString("email");
int age = rs.getInt("age");
System.out.printf("ID: %d | 姓名: %s | Email: %s | 年齡: %d%n",
id, username, email, age);
}
} catch (SQLException e) {
System.err.println("資料庫操作失敗: " + e.getMessage());
e.printStackTrace();
}
}
}
com.mysql.cj.jdbc.Driver,舊版用 com.mysql.jdbc.DriveruseSSL=false、serverTimezone=UTC 避免時區與 SSL 警告連接 PostgreSQL、Oracle、SQL Server 等資料庫流程相同,只需更換驅動類別名稱、連線 URL 格式與對應的 JDBC 驅動 JAR 檔即可。