Java數(shù)據(jù)庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。JDBC也是Sun Microsystems的商標(biāo)1。它JDBC是面向關(guān)系型數(shù)據(jù)庫的。 基本信息
程序類型JDBC驅(qū)動程序共分四種類型: 類型1JDBC-ODBC橋 這種類型的驅(qū)動把所有JDBC的調(diào)用傳遞給ODBC,再讓后者調(diào)用數(shù)據(jù)庫本地驅(qū)動代碼(也就是數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫操作二進制代碼庫,例如Oracle中的oci.dll)。 類型2本地API驅(qū)動 這種類型的驅(qū)動通過客戶端加載數(shù)據(jù)庫廠商提供的本地代碼庫(C/C++等)來訪問數(shù)據(jù)庫,而在驅(qū)動程序中則包含了Java代碼。 類型3網(wǎng)絡(luò)協(xié)議驅(qū)動 這種類型的驅(qū)動給客戶端提供了一個網(wǎng)絡(luò)API,客戶端上的JDBC驅(qū)動程序使用套接字(Socket)來調(diào)用服務(wù)器上的中間件程序,后者在將其請求轉(zhuǎn)化為所需的具體API調(diào)用。 類型4本地協(xié)議驅(qū)動 這種類型的驅(qū)動使用Socket,直接在客戶端和數(shù)據(jù)庫間通信。 API概述JDBC API主要位于JDK中的java.sql包中(之后擴展的內(nèi)容位于javax.sql包中),主要包括(斜體代表接口,需驅(qū)動程序提供者來具體實現(xiàn)): DriverManager:負責(zé)加載各種不同驅(qū)動程序(Driver),并根據(jù)不同的請求,向調(diào)用者返回相應(yīng)的數(shù)據(jù)庫連接(Connection)。Driver:驅(qū)動程序,會將自身加載到DriverManager中去,并處理相應(yīng)的請求并返回相應(yīng)的數(shù)據(jù)庫連接(Connection)。Connection:數(shù)據(jù)庫連接,負責(zé)與進行數(shù)據(jù)庫間通訊,SQL執(zhí)行以及事務(wù)處理都是在某個特定Connection環(huán)境中進行的。可以產(chǎn)生用以執(zhí)行SQL的Statement。Statement:用以執(zhí)行SQL查詢和更新(針對靜態(tài)SQL語句和單次執(zhí)行)。PreparedStatement:用以執(zhí)行包含動態(tài)參數(shù)的SQL查詢和更新(在服務(wù)器端編譯,允許重復(fù)執(zhí)行以提高效率)。CallableStatement:用以調(diào)用數(shù)據(jù)庫中的存儲過程。SQLException:代表在數(shù)據(jù)庫連接的建立和關(guān)閉和SQL語句的執(zhí)行過程中發(fā)生了例外情況(即錯誤)。 數(shù)據(jù)類型的映射
注:這種類型匹配不是強制性標(biāo)準(zhǔn),特定的JDBC廠商可能會改變這種類型匹配。例如Oracle中的DATE類型是包含時分秒,而java.sql.Date僅僅支持年月日。 連接方式下面羅列了各種數(shù)據(jù)庫使用JDBC連接的方式: ⒈O(jiān)racle8/8i/9i數(shù)據(jù)庫(thin模式) ⒉DB2數(shù)據(jù)庫 ⒊Sql Server7.0/2000數(shù)據(jù)庫 ⒋Sybase數(shù)據(jù)庫 ⒌Informix數(shù)據(jù)庫 ⒍MySQL數(shù)據(jù)庫 ⒎PostgreSQL數(shù)據(jù)庫 ⒏access數(shù)據(jù)庫直連用ODBC的 當(dāng)訪問一個遠程數(shù)據(jù)庫時,JDBC將利用Internet文件的編址方案和一個看起來很像網(wǎng)頁地址(統(tǒng)一資源定位器URL)的文件名。 JDBC為程序員指定了一組在編寫SQL請求時使用的面向?qū)ο蟮念?。還有一組附加的類描述了JDBC驅(qū)動API。能映射成Java數(shù)據(jù)類型的最普通的SQL數(shù)據(jù)類型都是支持的。這個API提供了微軟事務(wù)服務(wù)器請求的執(zhí)行支持以及提交和回滾到事務(wù)開始的能力。 |
|