ODBC (Open Database Connectivity) 是微軟制定的 C 語言 API,提供統一介面訪問異構數據庫。
JDBC (Java Database Connectivity) 由 Sun 定義,純 Java 實現,解決 ODBC 在 Java 中的指針、跨平台、物件導向不匹配問題。
| 維度 | ODBC | JDBC |
|---|---|---|
| 語言 | C | Java |
| 指針 | 大量使用 | 無 |
| 跨平台 | 依賴平台驅動 | 原生跨平台 |
| 學習曲線 | 陡峭(簡單/複雜混雜) | 平緩(分層 API) |
| 驅動部署 | 手動安裝 DSN | Classpath 自動加載 |
| 架構模型 | 相同四層 | 相同四層 |
早期為讓 Java 訪問無純 Java 驅動的數據庫(如 Access),提供 JDBC-ODBC Bridge(Type 1 驅動):
// 1. 註冊驅動
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 獲取連接
Connection conn = DriverManager.getConnection(url, user, pass);
// 3. 建立語句
Statement stmt = conn.createStatement();
// 4. 執行查詢
ResultSet rs = stmt.executeQuery("SELECT * FROM t");
// 5. 處理結果
while (rs.next()) { System.out.println(rs.getString("col")); }
// 6. 關閉資源 (try-with-resources 自動關閉)
JDBC 繼承了 ODBC 的架構思想,但以 Java 原生方式重塑,消除了指針、平台綁定與部署複雜度,成為 Java 數據庫編程的基石。理解 ODBC→JDBC 的演進,有助於掌握數據庫連接技術的本質:標準介面隔離變化點。