Java 憑藉健壯、安全、易用、跨平台、網路下載等優勢,成為資料庫應用開發的理想語言。業界迫切需要:獨立於特定 DBMS 的統一存取介面,加速開發、實現工具互通。JDBC 應運而生,定義通用低層 SQL 連接 API,統一各類資料庫驅動模組介面。
JDBC 未從零設計,而是建立在 X/Open SQL CLI (Call Level Interface) 之上——這也是 Microsoft ODBC 的基礎。主要任務:定義自然的 Java 介面映射 CLI 抽象層與概念。建立在 ODBC 抽象層上,利於廠商接受、技術穩健。但 ODBC 為 C 介面,直接在 Java 呼叫有安全、健壯、可移植性缺失;短期實作 JDBC-ODBC Bridge,長期推動純 Java 驅動。
專注執行原生 SQL 語句並取回結果。高層 API(如物件關聯映射、語法樹查詢、嵌入式 SQL)預期建立於此基礎之上。支援工具開發與程式設計師直用。
資料庫 SQL 語法/語義差異大(外部連結、預存程序等)。JDBC 允許查詢直接傳遞底層驅動,獲取最大 SQL 功能(甚至非 SQL 查詢,如文檔/圖像查詢)。合規底線:驅動須支援 ANSI SQL-2 Entry Level,給廣泛移植性應用保證的最小公約數。
確保 JDBC 可建立於常見 SQL API(特別是 ODBC)之上,影響 OUT 參數與大資料塊處理設計。
延續 Java 核心類別庫的一致、簡單、強大風格,進一步強化之。
基礎 API 極力精簡,單一機制完成特定任務,避免重複機制。重要功能遺漏時再擴充。
盡量在編譯期發現錯誤。雖 SQL 本質動態型別(運行時可能型別不匹配),但要求程式設計師在編譯期明確表達期望型別,支援必要的動態型別介面(見第四章)。
感謝資料庫、驅動、工具領域早期工作者對 JDBC 初期草案的寶貴建議與貢獻。