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