緣起:為何需要 JDBC?
Java 健壯、安全、跨平台、自動下載特性,使其成為資料庫應用開發理想語言。開發者渴望「寫一次,連接任何 DBMS」,避免綁定特定廠商 API。
策略決策:基於 X/Open SQL CLI (ODBC 基礎) 設計
- 不從頭設計 SQL API,直接對映成熟的 ODBC 抽象層
- ODBC 是 C 介面,直接用 JNI 呼叫會損失 Java 安全性、健壯性、可移植性
- 短期提供 JDBC-ODBC Bridge,長期推動純 Java 驅動 (Type 3/4)
六大設計目標
- SQL Call-Level API:專注執行原生 SQL、取回結果;高層 API (OR Mapping、SQLJ) 另行規劃。
- 遵循 SQL 標準:要求驅動至少支援 ANSI SQL-2 Entry Level,保證可移植基準;允許傳遞 DBMS 專屬 SQL 擴充功能。
- 建立於現有介面之上:易於在 ODBC、既有資料庫介面上實作,影響 OUT 參數、大資料塊處理設計。
- 與 Java 體系一致:延續 Java 核心庫簡單、強大、一致的風格。
- 保持簡單:單一機制解決單一任務,避免重複功能;缺漏再擴充。
- 強靜態型別:盡量編譯期發現型別錯誤;SQL 本質動態,運行期仍需處理型別不符。
致謝與演進
感謝資料庫、連線工具、ISV、應用開發者早期回饋。JDBC 1.0 奠基後,持續演進至 4.x 版,支援 RowSet、DataSource、連線池、XML 資料型別等現代功能,仍忠實貫徹上述哲學。