JDBC-ODBC驅動程序 可從Sun的Java網站( http://java.sun.com )輕松地找到并下載。在您擴充并安裝了這個驅動程序后,必須執行下列步驟:
· JDBC驅動程序的類型
Java 程序連接數據庫的方法實際上有四種:如果您希望編寫代碼來處理 PC 客戶機數據庫,如 dBase 、 Foxbase 或 Access ,則您可能會使用第一種方法,并且擁有用戶機器上的所有代碼。更大的客戶機 - 服務器數據庫產品(如 IBM 的 DB2 )已提供了第 3 級別的驅動程序。
· 兩層模型和三層模型
當數據庫和查詢它的應用程序在同一臺機器上,而且沒有服務器代碼的干預時,我們將生成的程序稱為 兩層模型 。一層是應用程序,而另一層是數據庫。在 JDBC-ODBC 橋系統中通常是這種情況。當一個應用程序或applet調用服務器,服務器再去調用數據庫時,我們稱其為 三層模型 。當您調用稱為“服務器”的程序時通常是這種情況。
· 編寫JDBC代碼訪問數據庫
現在,我們將開始看一下如何編寫 Java 程序來訪問數據庫。我們要使用的數據庫是一個稱為 groceries.mdb 的 Microsoft Access 數據庫。此數據庫中的數據由三個本地雜貨店中一些常見商品的價格組成。食品表如下所示:
FoodKey | FoodName |
1 | Apples |
2 | Oranges |
3 | Hamburger |
4 | Butter |
5 | Milk |
6 | Cola |
7 | Greenbeans |
雜貨店表如下所示:
StoreKey | StoreName |
1 | Stop andShop |
2 | VillageMarket |
3 | Waldbaum's |
雜貨店定價表僅由這三個表格中的鍵值和價格組成:
FSKey | StoreKey | FoodKey | Price |
1 | 1 | 1 | $0.27 |
2 | 2 | 1 | $0.29 |
3 | 3 | 1 | $0.33 |
4 | 1 | 2 | $0.36 |
5 | 2 | 2 | $0.29 |
6 | 3 | 2 | $0.47 |
7 | 1 | 3 | $1.98 |
8 | 2 | 3 | $2.45 |
9 | 3 | 3 | $2.29 |
10 | 1 | 4 | $2.39 |
11 | 2 | 4 | $2.99 |
12 | 3 | 4 | $3.29 |
13 | 1 | 5 | $1.98 |
14 | 2 | 5 | $1.79 |
15 | 3 | 5 | $1.89 |
16 | 1 | 6 | $2.65 |
17 | 2 | 6 | $3.79 |
18 | 3 | 6 | $2.99 |
19 | 1 | 7 | $2.29 |
20 | 2 | 7 | $2.19 |
21 | 3 | 7 | $1.99 |
· 用ODBC注冊您的數據庫
在 Windows 95 或 NT 環境下訪問 ODBC 數據庫之前,必須使用控制面板中的 ODBC 驅動程序對它進行注冊。在 Windows 95 環境下,就是 “ 控制面板 ” 程序中的 ODBC 圖標。在 Windows NT 環境下,您會在 “ 開始 ” 菜單中找到此程序。(如果找不到,您需要安裝上述的 ODBC 驅動程序,即 WX1350.exe )。
雙擊ODBC圖標,然后單擊“添加”,如圖1所示。然后選擇數據庫驅動程序(此處使用MicrosoftAccess),然后單擊“確定”。在“數據源名”和“描述”中分別鍵入數據源名稱(Groceries)和數據庫說明(Groceryprices)(這兩項都不需要和文件名相關),然后單擊“選取”,找到數據庫,并選擇該數據庫。找到該數據庫后,屏幕將如圖2所示。單擊“確定”,然后單擊“關閉”來關閉面板。
圖1:ODBC控制面板設置屏幕。
圖2:在ODBC控制面板中選擇數據庫和說明。
· 連接數據庫
所有與數據庫有關的對象和方法都在 java.sql 包中,因此在使用 JDBC 的程序中必須加入 "import java.sql.* " 。 JDBC 要連接 ODBC 數據庫,您必須首先加載 JDBC-ODBC 橋驅動程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); |
String url = "jdbc:odbc:Grocery prices"; Connection con = DriverManager.getConnection(url); |
請注意,您使用的數據庫名是您在 ODBC 設置面板中輸入的 “ 數據源 ” 名稱。
URL語法可能因數據庫類型的不同而變化極大。
jdbc: subprotocol : subname |
jdbc:bark//doggie/elliott |
jdbc:bark//doggie/elliot;UID=GoodDog;PWD=woof |
原文轉自:http://www.anti-gravitydesign.com