电竞比分网-中国电竞赛事及体育赛事平台

分享

Winform開發(fā)——數(shù)據(jù)庫的連接方式

 2017helloworld 2018-02-16

1. ODBC數(shù)據(jù)庫接口

ODBC即開放式數(shù)據(jù)庫互連(Open Database Connectivity),是微軟公司推出的一種實(shí)現(xiàn)應(yīng)用程序和關(guān)系數(shù)據(jù)庫之間通訊的接口標(biāo)準(zhǔn)。符合標(biāo)準(zhǔn)的數(shù)據(jù)庫就可以通過SQL語言編寫的命令對(duì)數(shù)據(jù)庫進(jìn)行操作,但只針對(duì)關(guān)系數(shù)據(jù)庫。目前所有的關(guān)系數(shù)據(jù)庫都符合該標(biāo)準(zhǔn)(如SQL Server,Oracle,Access,Excel等)。ODBC本質(zhì)上是一組數(shù)據(jù)庫訪問API(應(yīng)用程序編程接口),由一組函數(shù)調(diào)用組成,核心是SQL語句,其結(jié)構(gòu)如圖1.8所示:

Winform開發(fā)——數(shù)據(jù)庫的連接方式

圖 1.8 ODBC數(shù)據(jù)庫接口

1.3.1 數(shù)據(jù)庫的連接方式

2. OLE DB數(shù)據(jù)庫接口

OLE DB即數(shù)據(jù)庫鏈接和嵌入對(duì)象(Object Linking and Embedding DataBase)。OLE DB是微軟提出的基于COM思想且面向?qū)ο蟮囊环N技術(shù)標(biāo)準(zhǔn),目的是提供一種統(tǒng)一的數(shù)據(jù)訪問接口訪問各種數(shù)據(jù)源,這里所說的“數(shù)據(jù)”除了標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)之外,還包括郵件數(shù)據(jù)、Web上的文本或圖形、目錄服務(wù)(DirectoryServices)、以及主機(jī)系統(tǒng)中的文件和地理數(shù)據(jù)以及自定義業(yè)務(wù)對(duì)象等。OLE DB標(biāo)準(zhǔn)的核心內(nèi)容就是提供一種相同的訪問接口,使得數(shù)據(jù)的使用者(應(yīng)用程序)可以使用同樣的方法訪問各種數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲(chǔ)地點(diǎn)、格式或類型,其結(jié)構(gòu)圖如圖1.9所示:

Winform開發(fā)——數(shù)據(jù)庫的連接方式

圖1.9 OLE DB數(shù)據(jù)庫接口

1.3.1 數(shù)據(jù)庫的連接方式

3. ADO數(shù)據(jù)庫接口

ADO(ActiveX Data Objects)是微軟公司開發(fā)的基于COM的數(shù)據(jù)庫應(yīng)用程序接口,通過ADO連接數(shù)據(jù)庫,可以靈活地操作數(shù)據(jù)庫中的數(shù)據(jù)。

圖1.10展示了應(yīng)用程序通過ADO訪問SQL Server數(shù)據(jù)庫接口。從圖中可看出,使用ADO訪問SQL Server數(shù)據(jù)庫有兩種途徑:一種是通過ODBC驅(qū)動(dòng)程序,另一種是通過SQL Server專用的OLE DBProvider,后者有更高的訪問效率。

Winform開發(fā)——數(shù)據(jù)庫的連接方式

圖1.10 ADO訪問SQLServer的接口

1.3.1 數(shù)據(jù)庫的連接方式

4. ADO.NET數(shù)據(jù)庫接口

ASP.Net使用 ADO.NET 數(shù)據(jù)模型。該模型從ADO 發(fā)展而來,但它不只是對(duì) ADO的改進(jìn),而是采用了一種全新的技術(shù)。主要表現(xiàn)在以下幾個(gè)方面:

● ADO.NET 不是采用ActiveX 技術(shù),而是與.NET框架緊密結(jié)合的產(chǎn)物。

● ADO.NET 包含對(duì) XML標(biāo)準(zhǔn)的完全支持,這對(duì)于跨平臺(tái)交換數(shù)據(jù)具有重要的意義。

● ADO.NET 既能在與數(shù)據(jù)源連接的環(huán)境下工作,又能在斷開與數(shù)據(jù)源連接的條件下工作。特別是后者,非常適合于網(wǎng)絡(luò)應(yīng)用的需要。因?yàn)樵诰W(wǎng)絡(luò)環(huán)境下,保持與數(shù)據(jù)源連接,不符合網(wǎng)站的要求,不僅效率低,付出的代價(jià)高,而且常常會(huì)引發(fā)由于多個(gè)用戶同時(shí)訪問時(shí)帶來的沖突。因此 ADO.NET 系統(tǒng)集中主要精力用于解決在斷開與數(shù)據(jù)源連接的條件下數(shù)據(jù)處理的問題。

ADO.NET 提供了面向?qū)ο蟮臄?shù)據(jù)庫視圖,并且在 ADO.NET 對(duì)象中封裝了許多數(shù)據(jù)庫屬性和關(guān)系。最重要的是,ADO.NET 通過很多方式封裝和隱藏了很多數(shù)據(jù)庫訪問的細(xì)節(jié)??梢酝耆恢缹?duì)象在與 ADO.NET 對(duì)象交互,也不用擔(dān)心數(shù)據(jù)移動(dòng)到另外一個(gè)數(shù)據(jù)庫或者從另一個(gè)數(shù)據(jù)庫獲得數(shù)據(jù)的細(xì)節(jié)問題。如圖1.11顯示了 ADO.NET架構(gòu)總覽。

1.3.1 數(shù)據(jù)庫的連接方式

Winform開發(fā)——數(shù)據(jù)庫的連接方式

圖1.11 通過ADO.NET訪問數(shù)據(jù)庫的接口模型

1.3.1 數(shù)據(jù)庫的連接方式

5. JDBC數(shù)據(jù)庫接口

JDBC(JavaData Base Connectivity)是JavaSoft公司開發(fā)的,一組Java語言編寫的用于數(shù)據(jù)庫連接和操作的類和接口,可為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一的訪問方式。通過JDBC完成對(duì)數(shù)據(jù)庫的訪問包括四個(gè)主要組件:Java應(yīng)用程序、JDBC驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器和數(shù)據(jù)源。

在JDBC?API中有兩層接口:應(yīng)用程序?qū)雍万?qū)動(dòng)程序?qū)?,前者使開發(fā)人員可以通過SQL調(diào)用數(shù)據(jù)庫和取得結(jié)果,后者處理與具體數(shù)據(jù)庫驅(qū)動(dòng)程序的所有通訊。

使用JDBC接口對(duì)數(shù)據(jù)庫操作有如下優(yōu)點(diǎn):

(1).JDBC?API與ODBC十分相似,有利于用戶理解;

(2)使編程人員從復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù)中解脫出來,而致力于應(yīng)用程序功能的實(shí)現(xiàn);

(3)JDBC支持不同的關(guān)系數(shù)據(jù)庫,增強(qiáng)了程序的可移植性。

使用JDBC的主要缺點(diǎn):訪問數(shù)據(jù)記錄的速度會(huì)受到一定影響,此外,由于JDBC結(jié)構(gòu)中包含了不同廠家的產(chǎn)品,這給數(shù)據(jù)源的更改帶來了較大麻煩。

4. 數(shù)據(jù)庫連接池技術(shù)

對(duì)于網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫應(yīng)用,由于用戶眾多,使用傳統(tǒng)的JDBC方式進(jìn)行數(shù)據(jù)庫連接,系統(tǒng)資源開銷過大成為制約大型企業(yè)級(jí)應(yīng)用效率的瓶頸,采用數(shù)據(jù)庫連接池技術(shù)對(duì)數(shù)據(jù)庫連接進(jìn)行管理,可以大大提高系統(tǒng)的效率和穩(wěn)定性。

1.3.2 客戶/服務(wù)器(C/S)模式應(yīng)用系統(tǒng)

Microsoft公司開發(fā)的SQL Server數(shù)據(jù)庫管理系統(tǒng)當(dāng)前最流行的版本仍然是SQL Server2000,本書介紹SQL Server2000。

數(shù)據(jù)庫管理系統(tǒng)通過命令和適合專業(yè)人員的界面操作數(shù)據(jù)庫。對(duì)于SQL Server2000數(shù)據(jù)庫管理系統(tǒng),用戶在SQL Server 2000的查詢分析器中輸入SQL命令,系統(tǒng)執(zhí)行的結(jié)果返回到查詢分析器上顯示。用戶可以直接通過SQL Server 2000的企業(yè)管理器的界面操作數(shù)據(jù)庫。

Winform開發(fā)——數(shù)據(jù)庫的連接方式

圖1.12 數(shù)據(jù)庫應(yīng)用程序與數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系

1.3.3 三層客戶/服務(wù)器(B/S)模式應(yīng)用系統(tǒng)

基于Web的數(shù)據(jù)庫應(yīng)用采用三層客戶/服務(wù)器模式,也稱B/S結(jié)構(gòu)第一層為瀏覽器,第二層為Web服務(wù)器,第三層為數(shù)據(jù)庫服務(wù)器。瀏覽器是用戶輸入數(shù)據(jù)和顯示結(jié)果的交互界面,用戶在瀏覽器表單中輸入數(shù)據(jù),然后將表單中的數(shù)據(jù)提交并發(fā)送到Web服務(wù)器,Web服務(wù)器應(yīng)用程序接受并處理用戶的數(shù)據(jù),通過數(shù)據(jù)庫服務(wù)器,從數(shù)據(jù)庫中查詢需要的數(shù)據(jù)(或把數(shù)據(jù)錄入數(shù)據(jù)庫)送Web服務(wù)器,Web服務(wù)器把返回的結(jié)果插入HTML頁面,傳送到客戶端,在瀏覽器中顯示出來。如圖1.13所示。

1.3.3 三層客戶/服務(wù)器(B/S)模式應(yīng)用系統(tǒng)

基于Web的數(shù)據(jù)庫應(yīng)用采用三層客戶/服務(wù)器模式,也稱B/S結(jié)構(gòu)。第一層為瀏覽器,第二層為Web服務(wù)器,第三層為數(shù)據(jù)庫服務(wù)器。瀏覽器是用戶輸入數(shù)據(jù)和顯示結(jié)果的交互界面,用戶在瀏覽器表單中輸入數(shù)據(jù),然后將表單中的數(shù)據(jù)提交并發(fā)送到Web服務(wù)器,Web服務(wù)器應(yīng)用程序接受并處理用戶的數(shù)據(jù),通過數(shù)據(jù)庫服務(wù)器,從數(shù)據(jù)庫中查詢需要的數(shù)據(jù)(或把數(shù)據(jù)錄入數(shù)據(jù)庫)送Web服務(wù)器,Web服務(wù)器把返回的結(jié)果插入HTML頁面,傳送到客戶端,在瀏覽器中顯示出來。如圖1.13所示。

瀏覽器

1.3.3 三層客戶/服務(wù)器(B/S)模式應(yīng)用系統(tǒng)

基于Web的數(shù)據(jù)庫應(yīng)用采用三層客戶/服務(wù)器模式,也稱B/S結(jié)構(gòu)。第一層為瀏覽器,第二層為Web服務(wù)器,第三層為數(shù)據(jù)庫服務(wù)器。瀏覽器是用戶輸入數(shù)據(jù)和顯示結(jié)果的交互界面,用戶在瀏覽器表單中輸入數(shù)據(jù),然后將表單中的數(shù)據(jù)提交并發(fā)送到Web服務(wù)器,Web服務(wù)器應(yīng)用程序接受并處理用戶的數(shù)據(jù),通過數(shù)據(jù)庫服務(wù)器,從數(shù)據(jù)庫中查詢需要的數(shù)據(jù)(或把數(shù)據(jù)錄入數(shù)據(jù)庫)送Web服務(wù)器,Web服務(wù)器把返回的結(jié)果插入HTML頁面,傳送到客戶端,在瀏覽器中顯示出來。如圖1.13所示。

Winform開發(fā)——數(shù)據(jù)庫的連接方式

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多