首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDBC 核心指南:Java 資料庫連接技術全解析

     編輯:Java 相關知識

什麼是 JDBC?

JDBC(Java Database Connectivity,Java 資料庫連接)是一套用於執行 SQL 陳述式的 Java API。它由一組用 Java 程式語言撰寫的類別和介面組成,為工具開發者和資料庫開發者提供了一個標準化的 API,使他們能夠使用純 Java API 來編寫資料庫應用程式。

JDBC 的核心優勢

有了 JDBC,向各種關聯式資料庫發送 SQL 陳述式變得非常容易。開發者無需為了存取 Sybase、Oracle、Informix 等不同資料庫而編寫專門的程式。只需使用 JDBC API 撰寫一個程式,即可向相應資料庫發送 SQL 陳述式。結合 Java 「撰寫一次,到處執行」的特性,程式設計師只需編寫一次程式,即可在任何平台上運行。

Java 擁有健壯、安全、易用、易懂且可從網路上自動下載等特性,是編寫資料庫應用程式的絕佳語言。JDBC 正是連接 Java 應用程式與各種不同資料庫的關鍵機制,擴展了 Java 的功能範圍。

JDBC 的三大核心功能

簡單來說,JDBC 可完成三件事:

  • 與資料庫建立連接
  • 發送 SQL 陳述式
  • 處理結果

以下程式碼片段展示了這三個步驟的基本範例:

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())
    System.out.println(rs.getString("a") + " " + rs.getString("b") + " " + rs.getString("c"));

JDBC 定位:低階 API 作為高階工具的基礎

JDBC 是一個「低階」介面,用於直接呼叫 SQL 命令。雖然功能強大且比其他資料庫連接 API 更易用,但它同時被設計為基礎介面,在其之上可以建構高階介面和工具。高階介面是「對使用者友善的」介面,使用更易理解、更方便的 API,在幕後轉換為 JDBC 這類低階介面。

目前基於 JDBC 正在開發的高階 API 包括:

  • 用於 Java 的嵌入式 SQL:允許程式設計師將 SQL 陳述式直接與 Java 混合使用,預處理器將其轉換為 JDBC 呼叫。
  • 關聯式資料庫表到 Java 類別的直接映射:每行對應類別的一個實例,每列值對應實例的一個屬性,程式設計師可直接操作 Java 物件,SQL 呼叫在底層自動生成。

JDBC 與 ODBC 的比較

Microsoft 的 ODBC(開放式資料庫連接)是目前使用最廣泛的關聯式資料庫程式設計介面。但 ODBC 使用 C 語言介面,從 Java 直接呼叫本地 C 程式碼在安全性、實現、健壯性和自動移植性方面都有缺點。

JDBC 可視為轉換為面向物件介面的 ODBC,保留了 ODBC 的基本設計特徵(兩者都基於 X/Open SQL CLI),但針對 Java 風格與優點進行優化,更加易於使用。JDBC 確保簡單功能的簡便性,同時在必要時允許使用高階功能。完全用 Java 撰寫的 JDBC 驅動程式可在所有 Java 平台上自動安裝、移植並保證安全性。

兩層與三層架構模型

JDBC API 同時支援資料庫存取的兩層和三層模型:

兩層模型

Java applet 或應用程式直接與資料庫對話,需要 JDBC 驅動程式與特定資料庫管理系統通訊。這稱為客戶端/伺服器配置,網路可以是內部網或 Internet。

三層模型

命令先發送到「中間層」,再由中間層發送 SQL 給資料庫。中間層可控制對公司資料的存取和更新類型,提供易用的高階 API,並在某些情況下提供效能優勢。隨著優化編譯器的引入,用 Java 實現中間層變得越來越實際,可充分利用 Java 的健壯、多執行緒和安全特性。

SQL 一致性處理

雖然大多數 DBMS 使用標準 SQL 基本功能,但高階功能的語法和語義往往不一致。JDBC 透過三種方式處理這個問題:

  1. 允許將任何查詢字串傳遞給 DBMS 驅動程式,應用程式可使用任意 SQL 功能(但需承擔在某些 DBMS 上出錯的風險)
  2. 提供 ODBC 風格的逸出子句,為常見 SQL 差異提供標準 JDBC 語法(如日期字面值和預存程序呼叫)
  3. 利用 DatabaseMetaData 介面提供 DBMS 描述資訊,使應用程式能適應各 DBMS 的需求和功能

「符合 JDBC 標準」代表用戶可依賴的 JDBC 功能標準等級,驅動程式至少必須支援 ANSI SQL-2 Entry Level,並通過 JavaSoft 提供的一致性測試。

JDBC 產品與驅動程式類型

JavaSoft 提供三個 JDBC 產品組件:JDBC 驅動程式管理器、JDBC 驅動程式測試套件、JDBC-ODBC 橋接器。JDBC 驅動程式目前分為四種類型:

  1. JDBC-ODBC 橋接器 + ODBC 驅動程式:適合企業網或三層架構的應用程式伺服器
  2. 本地 API 部分 Java 驅動程式:需在每台客戶端載入二進位程式碼
  3. JDBC 網路純 Java 驅動程式:最靈活,將 JDBC 轉換為與 DBMS 無關的網路協定
  4. 本地協定純 Java 驅動程式:直接轉換為 DBMS 網路協定,是內部網存取的實用方案

預期第 3、4 類驅動程式將成為首選,第 1、2 類作為過渡方案。第 3、4 類提供 Java 的所有優點,包括自動安裝。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved