JDBC (Java Database Connectivity) 是用於執行 SQL 語句的 Java API,由一組接口與類組成,為工具/數據庫開發者提供統一訪問接口,實現「寫一次,運行於任何數據庫」。
Connection con = DriverManager.getConnection("jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
| 維度 | ODBC | JDBC | ||
|---|---|---|---|---|
| 語言綁定 | C 接口 (指針、void*) | 純 Java 面向對象 | ||
| 安全性/可移植性 | 需本地驅動安裝,跨平台困難 | 純 Java 驅動自動下載,天然跨平台 | ||
| 複雜度 | 簡單/高級混雜,選項繁多 | 保證簡單功能簡便,高級功能可選 | ||
| 設計基礎 | X/Open SQL CLI | 基於 ODBC 設計優化為 Java 風格 |
| 類型 | 描述 | 純Java | 網絡協議 | 適用場景 |
|---|---|---|---|---|
| 1. JDBC-ODBC Bridge | Bridge + ODBC 驅動 | 否 | 直接 | 企業內網、三層中間層 |
| 2. Native-API | JDBC → 客戶端 API (OCI等) | 否 | 直接 | 過渡期、特定數據庫 |
| 3. Net-Protocol | JDBC → 中間件協議 → DBMS 協議 | 是 | 需中間件 | Intranet/Internet、多數據庫 |
| 4. Native-Protocol | JDBC → DBMS 專用網絡協議 | 是 | 直接 | Intranet、首選長期方案 |
類型 3/4 為未來主流,具備自動安裝、跨平台、安全等純 Java 優勢。