JDBC基礎教程之概述
1.1 什么是 JDBCTM?
JDBCTM 是一種用于執行 SQL 語句的 JavaTM API(有意思的是,JDBC 本身是個商標名而不是一個縮寫字;然而,JDBC常被認為是代表 “Java 數據庫連接 (Java Database Connectivity)”)。它由一組用 Java 編程語言編寫的類和接口組成。JDBC 為工具/數據庫開發人員提供了一個標準的 API,使他們能夠用純Java API 來編寫數據庫應用程序。
有了 JDBC,向各種關系數據庫發送 SQL 語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問 Sybase 數據庫專門寫一個程序,為訪問 Oracle 數據庫又專門寫一個程序,為訪問Informix 數據庫又寫另一個程序,等等。您只需用 JDBC API 寫一個程序就夠了,它可向相應數據庫發送 SQL 語句。而且,使用 Java 編程語言編寫的應用程序,就無須去憂慮要為不同的平臺編寫不同的應用程序。將 Java 和 JDBC 結合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運行。
Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 Java 應用程序與各種不同數據庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。
JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發布含有 applet的網頁,而該 applet 使用的信息可能來自遠程數據庫。企業也可以用 JDBC 通過Intranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統)。隨著越來越多的程序員開始使用 Java 編程語言,對從 Java中便捷地訪問數據庫的要求也在日益增加。
MIS 管理員們都喜歡 Java 和 JDBC 的結合,因為它使信息傳播變得容易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統上。新程序的開發期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, Java 和 JDBC 可為外部客戶提供獲取信息更新的更好方法。
1.1.1 JDBC 的用途是什么?
簡單地說,JDBC 可做三件事:
與數據庫建立連接,
發送 SQL 語句,
處理結果。
下列代碼段給出了以上三步的基本示例:
1.1.2 JDBC 是一種低級 API ,是高級 API 的基礎
JDBC 是個“低級”接口,也就是說,它用于直接調用 SQL 命令。在這方面它的功能極佳,并比其它的數據庫連接 API 易于使用,但它同時也被設計為一種基礎接口,在它之上可以建立高級接口和工具。
高級接口是“對用戶友好的”接口,它使用的是一種更易理解和更為方便的 API,這種 API 在幕后被轉換為諸如 JDBC 這樣的低級接口。在編寫本文時,正在開發兩種基于 JDBC 的高級 API:
一種用于 Java 的嵌入式 SQL。至少已經有一個提供者計劃編寫它。DBMS 實現SQL:一種專門設計來與數據庫聯合使用的語言。JDBC 要求 SQL 語句必須作為 String 傳給 Java 方法。相反,嵌入式 SQL預處理器允許程序員將 SQL 語句直接與Java 混在一起使用。例如,可在 SQL 語句中使用 Java 變量,用以接受或提供SQL 值。然后,嵌入式 SQL 預處理器將通過 JDBC 調用把這種 Java/SQL 的混合物轉換為Java。關系數據庫表到 Java 類的直接映射。JavaSoft 和其它提供者都聲稱要實現該API。在這種“對象/關系”映射中,表中的每行對應于類的一個實例,而每列的值對應于該實例的一個屬性。于是,程序員可直接對 Java 對象進行操作;存取數據所需的 SQL 調用將在“掩蓋下”自動生成。此外還可提供更復雜的映射,例如將多個表中的行結合進一個 Java 類中。
隨著人們對 JDBC 的興趣日益增漲,越來越多的開發人員一直在使用基于 JDBC 的工具,以使程序的編寫更加容易。程序員也一直在編寫力圖使最終用戶對數據庫的訪問變得更為簡單的應用程序。例如,應用程序可提供一個選擇數據庫任務的菜單。任務被選定后,應用程序將給出提示及空白供填寫執行選定任務所需的信息。所需信息輸入后,應用程序將自動調用所需的SQL 命令。在這樣一種程序的協助下,即使用戶根本不懂 SQL 的語法,也可以執行數據庫任務。
JDBCTM 是一種用于執行 SQL 語句的 JavaTM API(有意思的是,JDBC 本身是個商標名而不是一個縮寫字;然而,JDBC常被認為是代表 “Java 數據庫連接 (Java Database Connectivity)”)。它由一組用 Java 編程語言編寫的類和接口組成。JDBC 為工具/數據庫開發人員提供了一個標準的 API,使他們能夠用純Java API 來編寫數據庫應用程序。
有了 JDBC,向各種關系數據庫發送 SQL 語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問 Sybase 數據庫專門寫一個程序,為訪問 Oracle 數據庫又專門寫一個程序,為訪問Informix 數據庫又寫另一個程序,等等。您只需用 JDBC API 寫一個程序就夠了,它可向相應數據庫發送 SQL 語句。而且,使用 Java 編程語言編寫的應用程序,就無須去憂慮要為不同的平臺編寫不同的應用程序。將 Java 和 JDBC 結合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運行。
Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 Java 應用程序與各種不同數據庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。
JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發布含有 applet的網頁,而該 applet 使用的信息可能來自遠程數據庫。企業也可以用 JDBC 通過Intranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統)。隨著越來越多的程序員開始使用 Java 編程語言,對從 Java中便捷地訪問數據庫的要求也在日益增加。
MIS 管理員們都喜歡 Java 和 JDBC 的結合,因為它使信息傳播變得容易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統上。新程序的開發期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, Java 和 JDBC 可為外部客戶提供獲取信息更新的更好方法。
1.1.1 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")); |
1.1.2 JDBC 是一種低級 API ,是高級 API 的基礎
JDBC 是個“低級”接口,也就是說,它用于直接調用 SQL 命令。在這方面它的功能極佳,并比其它的數據庫連接 API 易于使用,但它同時也被設計為一種基礎接口,在它之上可以建立高級接口和工具。
高級接口是“對用戶友好的”接口,它使用的是一種更易理解和更為方便的 API,這種 API 在幕后被轉換為諸如 JDBC 這樣的低級接口。在編寫本文時,正在開發兩種基于 JDBC 的高級 API:
一種用于 Java 的嵌入式 SQL。至少已經有一個提供者計劃編寫它。DBMS 實現SQL:一種專門設計來與數據庫聯合使用的語言。JDBC 要求 SQL 語句必須作為 String 傳給 Java 方法。相反,嵌入式 SQL預處理器允許程序員將 SQL 語句直接與Java 混在一起使用。例如,可在 SQL 語句中使用 Java 變量,用以接受或提供SQL 值。然后,嵌入式 SQL 預處理器將通過 JDBC 調用把這種 Java/SQL 的混合物轉換為Java。關系數據庫表到 Java 類的直接映射。JavaSoft 和其它提供者都聲稱要實現該API。在這種“對象/關系”映射中,表中的每行對應于類的一個實例,而每列的值對應于該實例的一個屬性。于是,程序員可直接對 Java 對象進行操作;存取數據所需的 SQL 調用將在“掩蓋下”自動生成。此外還可提供更復雜的映射,例如將多個表中的行結合進一個 Java 類中。
隨著人們對 JDBC 的興趣日益增漲,越來越多的開發人員一直在使用基于 JDBC 的工具,以使程序的編寫更加容易。程序員也一直在編寫力圖使最終用戶對數據庫的訪問變得更為簡單的應用程序。例如,應用程序可提供一個選擇數據庫任務的菜單。任務被選定后,應用程序將給出提示及空白供填寫執行選定任務所需的信息。所需信息輸入后,應用程序將自動調用所需的SQL 命令。在這樣一種程序的協助下,即使用戶根本不懂 SQL 的語法,也可以執行數據庫任務。