數(shù)據(jù)庫分為兩類,一類是可以自己本地管理的,例如Access、FoxBase等;另一類是供PC機(jī)通過服務(wù)器訪問的數(shù)據(jù)庫,例如Oracle、MS SQL Server等大型數(shù)據(jù)庫。為了讓數(shù)據(jù)庫提供給用戶統(tǒng)一的GUI和API,產(chǎn)生了標(biāo)準(zhǔn)ODBC。
JDBC是一個通用的底層的、支持基本SQL功能的Java API。它提供了兩部分與數(shù)據(jù)庫獨(dú)立的API,即JDBC API和JDBC Driver API。
Java程序通過JDBC API訪問JDBC Driver Manager,JDBC Driver Manager再通過JDBC Driver API 訪問不同的JDBC驅(qū)動程序,從而實(shí)現(xiàn)對不同數(shù)據(jù)庫的訪問。說白了就是底層是數(shù)據(jù)庫,上層是用戶的訪問請求,中間層包括各個數(shù)據(jù)庫的各自的驅(qū)動程序、用戶調(diào)用的API函數(shù),只不過這里的API有兩個子層,中間加入了一個JDBC Driver Manager來進(jìn)行管理。整個鏈?zhǔn)沁@樣的:DB--〉DB Driver--〉JDBC Driver API--〉JDBC Driver Manager--〉JDBC API--〉用戶
JDBC URL結(jié)構(gòu):
jdbc:<子協(xié)議>:<子名稱>
例如:
jdbc:odbc:test
Tips:
(1)
如果通過網(wǎng)絡(luò)來訪問數(shù)據(jù)庫,則將網(wǎng)絡(luò)地址的放在子名稱部分,格式為://hostname:port/sub protocol
例如:
jdbc:dbnet://ant:356/fred
(2)
對于odbc子協(xié)議,比較特殊,可以在子名稱后面接任意多個屬性值的特征。因此odbc子協(xié)議的完整語法為:
jdbc:odbc:<數(shù)據(jù)源名稱>[;<屬性名>=<屬性值>;......]
例如:
jdbc:odbc:mydb;UID=bacoo;PWD=bacoo