標籤:jdbc
J2EE平台由一整套服務(Services)、應用程式介面(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支援,核心內容是對13種技術規範(API和組件)的學習和使用。接下來介紹一下Java資料庫連結。
一、JDBC簡介
JDBC(Java Data BaseConnectivity,java資料庫連接)是一種用於執行SQL語句的JavaAPI,可以為多種關聯式資料庫提供統一訪問,它由由一組用Java語言編寫的類和介面組成。JDBC為工具/資料庫開發人員提供了一個標準的API,據此可以構建更進階的工具和介面,使資料庫開發人員能夠用純Java API編寫資料庫應用程式。JDBC規範採用介面和實現分離的思想設計了Java資料庫編程架構。介面包含在java.sql和javax.sql包中。這些介面的實作類別叫做資料庫驅動程式。
二、JDBC驅動程式
JDBC驅動程式是各個資料庫廠家根據JDBC的規範製作的JDBC實作類別,主要包括四種類型:
1、第一種:實現是通過JDBC的調用全部委託給其編程介面來實現的,比如ODBC。這種類型的驅動程式需要安裝本地程式碼程式庫,即依賴於本地的程式,所以便攜性較差。如JDBC-ODBC橋驅動程式。
2、第二種:實現是部分基於Java語言的。即該驅動程式一部分是用Java語言編寫,其它部分委託本地的資料庫的用戶端代碼來實現。同類型1的驅動一樣,該類型的驅動程式也依賴本地的程式,所以便攜性較差
3、第三種:實現是全部基於JAVA語言的。該類型的驅動程式通常由某個中介軟體伺服器提供,這樣用戶端程式可以使用資料庫無關的協議和中介軟體伺服器進行通訊,中介軟體伺服器再將用戶端的JDBC調用轉寄給資料庫進行處理
4、第四種:實現是全部基於JAVA語言的。該類型的驅動程式中包含了特定資料庫的訪問協議,使得用戶端可以直接和資料庫進行通訊。
三、JDBC編程步驟
進行JDBC編程步驟大致如下:
1、載入資料庫驅動
Class.forName(driverClass),上面的dirverClass就是資料庫驅動類所對應的類路徑字串,根據不同資料庫廠商提供的驅動也不同。
2、通過DriverManager擷取資料庫的連結
DriverManager.getConnection(Stringurl, Stirng user, String pass),當使用DriverManager來擷取連結,需要傳入三個參數:分別是資料量的url、使用者名稱、密碼。
3、通過Connection對象建立Statement對象,Connection建立Statement的方法如下三個:
createStatement()建立基本的Statement對象。prepareStatement(String sql):根據傳入的sql語句建立先行編譯的Statement對象。prepareCall(String sql):根據傳入的sql語句建立CallableStatement對象
4、Statement執行SQL語句,Statement有三大方法來執行SQL語句:
execute:可以執行任何SQL語句,單比較麻煩
executeUpdate:可以執行DML、DDL語句。執行DML返回受影響的SQL語句行數,執行DDL返回0;
executeQuery:只能執行查詢語句,執行後返回代表查詢結果的ResultSet對象。
5、操作結果集,針對ResultSet
主要移動指標和獲得值next、previous、first、last、beforeFrist、afterLast、absolute等移動指標的方法。getXxx獲得移動指標指向行,特定列、索引的值。使用列名作為擷取值的參數可讀性好、使用索引作為擷取參數效能好。
四、JDBC &ODBC
說到JDBC,我們首先會想到ODBC。我們之前接觸的資料庫連結都是用ODBC配置的,Microsoft的 ODBC API 可能是使用最廣的、用於訪問關聯式資料庫的編程介面。它能在幾乎所有平台上串連幾乎所有的資料庫。
但是,為什麼java要用JDBC呢?因為ODBC使用C語言介面,不適合直接在java中使用。從Java調用本地C代碼在安全性、實現、堅固性和程式的自動一致性方面有很多缺點。從 ODBC C API 到 Java API的字面翻譯是不可取的。而且如果使用ODBC,就必須手動地將 ODBC 驅動程式管理器和驅動程式安裝在每台客戶機上。如果完全用 Java 編寫 JDBC驅動程式則 JDBC 代碼在所有 Java 平台上(從網路電腦到大型主機)都可以自 動安裝、移植並保證安全性。
【J2EE淺析】——JDBC