




已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第八章 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā),一個完整的數(shù)據(jù)庫應(yīng)用系統(tǒng)在邏輯上包括用戶界面和數(shù)據(jù)庫訪問鏈路,數(shù)據(jù)庫在C/S或B/S雙層結(jié)構(gòu)中位于服務(wù)器端,構(gòu)成整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的后端數(shù)據(jù)庫,滿足客戶端連接數(shù)據(jù)庫和存儲數(shù)據(jù)的需要,它并不具備圖形用戶界面的設(shè)計(jì)功能。,8.1 數(shù)據(jù)庫應(yīng)用結(jié)構(gòu),集中式應(yīng)用結(jié)構(gòu) 文件服務(wù)器結(jié)構(gòu) 客戶/服務(wù)器結(jié)構(gòu) 互聯(lián)網(wǎng)應(yīng)用結(jié)構(gòu),數(shù)據(jù)庫應(yīng)用結(jié)構(gòu),1. 集中式應(yīng)用結(jié)構(gòu),按鍵信息,終端字符,終端1,終端N,終端2,圖1 大型機(jī)結(jié)構(gòu)的數(shù)據(jù)庫訪問,大型機(jī),客戶端,數(shù)據(jù)庫,應(yīng)用程序,文件,文件請求,工作站1,工作站N,工作站2,應(yīng)用程序,應(yīng)用程序,應(yīng)用程序,數(shù)據(jù)庫,網(wǎng)絡(luò)文件服務(wù)器,圖2 文件服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫訪問,2. 文件服務(wù)器結(jié)構(gòu),客戶端,3. 客戶/服務(wù)器結(jié)構(gòu),服務(wù)器,請求,結(jié)果,工作站1,工作站N,工作站2,客戶端,圖3 客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫訪問,應(yīng)用程序,應(yīng)用程序,應(yīng)用程序,數(shù)據(jù)庫,客戶機(jī)/服務(wù)器模式(簡稱C/S)是以網(wǎng)絡(luò)環(huán)境為基礎(chǔ)、將計(jì)算應(yīng)用有機(jī)地分布在多臺計(jì)算機(jī)中的結(jié)構(gòu)。 服務(wù)器(Server),客戶機(jī)(Client)。 服務(wù)器負(fù)責(zé)數(shù)據(jù)的存儲、檢索與維護(hù),而客戶機(jī)負(fù)責(zé)提供GUI接口,承擔(dān)諸如處理與顯示檢索所得的數(shù)據(jù)、解釋和發(fā)送用戶的要求等任務(wù)。,基于客戶機(jī)/服務(wù)器模式的數(shù)據(jù)庫系統(tǒng),客戶機(jī)/服務(wù)器系統(tǒng)基本由三個部分組成: 客戶機(jī)??蛻魴C(jī)是一個面向最終用戶的接口或應(yīng)用程序,它通過向服務(wù)器請求數(shù)據(jù)服務(wù),然后做必要的處理,將結(jié)果顯示給用戶。 服務(wù)器。服務(wù)器的主要功能是建立進(jìn)程和網(wǎng)絡(luò)服務(wù)地址,監(jiān)聽用戶的調(diào)用,處理客戶的請求,將結(jié)果返回給客戶和釋放與客戶的連接。 連接件??蛻魴C(jī)與服務(wù)器之間的連接是通過網(wǎng)絡(luò)連接實(shí)現(xiàn)的,對應(yīng)用系統(tǒng)來說這種連接更多的是一種軟件通信工程(如網(wǎng)絡(luò)協(xié)議等)。,客戶機(jī)/服務(wù)器系統(tǒng)的組成,客戶端應(yīng)用系統(tǒng),在客戶機(jī)上可以有自己專用的局部數(shù)據(jù)庫,在客戶端需要安裝客戶端組件(Client Utility),也需要配置數(shù)據(jù)源。 為了優(yōu)化遠(yuǎn)程數(shù)據(jù)訪問,應(yīng)當(dāng)遵循二個基本原則: 完全在服務(wù)器上執(zhí)行查詢,不要直接檢索數(shù)據(jù)并在本地處理; 盡量減少與數(shù)據(jù)庫服務(wù)器的連接次數(shù)和網(wǎng)上傳輸?shù)臄?shù)據(jù)量。,三層結(jié)構(gòu)的客戶機(jī)/服務(wù)器系統(tǒng),表示層,功能層,數(shù)據(jù)層,表示層 表示層由客戶機(jī)實(shí)現(xiàn)。表示層是應(yīng)用的用戶接口部分,它擔(dān)負(fù)著用戶與應(yīng)用間的對話功能。 大部分的應(yīng)用邏輯被移植到應(yīng)用服務(wù)器上。 功能層 功能層由應(yīng)用服務(wù)器實(shí)現(xiàn)。功能層相當(dāng)于應(yīng)用的本體,它是應(yīng)用邏輯處理的核心,是具體業(yè)務(wù)的實(shí)現(xiàn)。 數(shù)據(jù)層 數(shù)據(jù)層就是DBMS,駐留在數(shù)據(jù)庫服務(wù)器上,負(fù)責(zé)管理對數(shù)據(jù)庫數(shù)據(jù)的存取操作。,4. 互聯(lián)網(wǎng)應(yīng)用結(jié)構(gòu),客戶端,數(shù)據(jù)庫服務(wù)器,請求,頁面,個人機(jī)1,個人機(jī)N,個人機(jī)2,圖4 互聯(lián)網(wǎng)計(jì)算環(huán)境下的數(shù)據(jù)庫訪問,請求,結(jié)果,Web服務(wù)器,瀏覽器,瀏覽器,瀏覽器,應(yīng)用程序,數(shù)據(jù)庫,瀏覽器/服務(wù)器模式,在Internet和Intranet上的瀏覽器/ 服務(wù)器(簡稱B/S),而B/S是一種基于Hyperlink(超鏈接)、HTML(超文本標(biāo)記語言)、Java 的三層或多層C/S結(jié)構(gòu),客戶端僅需要單一的瀏覽器軟件,通過瀏覽器可訪問幾個應(yīng)用平臺,形成一種一點(diǎn)對幾點(diǎn)、多點(diǎn)對多點(diǎn)的結(jié)構(gòu)模式。 早期的B/S系統(tǒng)也是兩層結(jié)構(gòu)。,瀏覽器/Web服務(wù)器/DB的三層體系結(jié)構(gòu),Web服務(wù)器與數(shù)據(jù)庫服務(wù)器的接口方式,表示層:存在于客戶端(Client),只須安裝一個Web瀏覽器軟件(例如Internet Explorer或Navigator)。 Web服務(wù)器:作為一個HTTP服務(wù)器,處理HTTP協(xié)議,接受請求并按照HTTP格式生成響應(yīng);執(zhí)行服務(wù)器端腳本(如VBScript、JavaScript等);對于數(shù)據(jù)庫應(yīng)用,能夠創(chuàng)建、讀、修改、刪除(CRUD)視圖實(shí)例。Web服務(wù)器通過對象中間件技術(shù)(Java、DCOM、CORBA等),在網(wǎng)絡(luò)上尋找對象應(yīng)用程序,完成對象之間的通信。 數(shù)據(jù)層:存在于數(shù)據(jù)庫服務(wù)器上,安裝有DBMS,提供SQL處理、數(shù)據(jù)庫管理等服務(wù)。,B/S模式與C/S模式相比有許多優(yōu)點(diǎn): B/S是一種瘦客戶機(jī)模式,客戶端軟件僅需安裝瀏覽器。 B/S具有統(tǒng)一的瀏覽器客戶端軟件,易于管理和維護(hù)。 無須開發(fā)客戶端軟件。 B/S應(yīng)用的開發(fā)效率高,開發(fā)周期短,見效快。 平臺無關(guān)性。 開放性。,瀏覽器/服務(wù)器的工作原理和過程,目前應(yīng)用廣泛的瀏覽器/服務(wù)器模式系統(tǒng)主要是通過瀏覽器以超文本的形式向Web服務(wù)器提出訪問數(shù)據(jù)庫的請求,Web服務(wù)器接受客戶請求后,激活對應(yīng)的(Common Gateway Interface ,公共網(wǎng)關(guān)接口)程序?qū)⒊谋綡TML語言轉(zhuǎn)化為SQL語法,將這個請求交給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器得到請求后,驗(yàn)證其合法性,并進(jìn)行數(shù)據(jù)處理,然后將處理結(jié)果集返回給CGI程序。CGI再將結(jié)果集轉(zhuǎn)化為HTML,并由Web服務(wù)器轉(zhuǎn)發(fā)給請求方的瀏覽器。,瀏覽器/服務(wù)器的工作原理和過程,在中間層上不但可采用公共網(wǎng)關(guān)接口CGI,而且可以采用ISAPI、NSAPI、JDBC、Java的RMI(遠(yuǎn)程方法調(diào)用)和IDL(界面接口語言)、CORBA的ORB(Object Request Brocker,對象請求處理)等技術(shù)。,瀏覽器/服務(wù)器的工作方式,簡單式 即基于瀏覽器的瀏覽器/服務(wù)器模式,利用HTML頁面在用戶的計(jì)算機(jī)上表示信息。 有時也可使用Java Applet(Java小應(yīng)用程序)、ActiveX 和Java Bean(Java豆)來加強(qiáng)表達(dá)能力。,交互式 在這種方式中,瀏覽器顯示的不只是靜態(tài)的和服務(wù)器端傳送來的被動的頁面信息。在打開與服務(wù)器的連接及傳輸數(shù)據(jù)以前,HTML頁面顯示供用戶輸入的表單、文本域、按鈕,通過這些內(nèi)容與用戶交互。HTTP服務(wù)器將用戶輸入信息傳遞給客戶服務(wù)器程序或腳本進(jìn)行處理,Web服務(wù)器再從DBMS服務(wù)器中檢索數(shù)據(jù),然后把結(jié)果組成新頁面返回給瀏覽器,最后中斷瀏覽器和服務(wù)器的本次連接。這個模型允許用戶從各種后端服務(wù)器中請求信息。,分布式 這種模型將機(jī)構(gòu)中目前的已有設(shè)施與分布式數(shù)據(jù)源結(jié)合起來,最終會代替真正開放的客戶機(jī)/服務(wù)器應(yīng)用程序。它無需下載HTML頁面,客戶程序是由可下載的Java編寫的,并可以在任何支持Java的瀏覽器(目前流行的IE或Navigator)上執(zhí)行Applet。當(dāng)HTTP服務(wù)器將含有Java Applet的頁面下載到瀏覽器時,Applet在瀏覽器中運(yùn)行并通過構(gòu)件(Component)支持的通信協(xié)議(IIOP,DCOM)與傳輸服務(wù)器上的小服務(wù)程序(Servlet)通信會話。這些小服務(wù)程序按構(gòu)件的概念撰寫,它收到信息后,經(jīng)過JDBC、ODBC或本地方法向數(shù)據(jù)庫服務(wù)器發(fā)出請求,數(shù)據(jù)庫服務(wù)器接到命令后,再將結(jié)果傳送給Servlet,最后將結(jié)果送至瀏覽器顯示出來。,可以看出,這里已出現(xiàn)了一個比較明晰的中間層,客戶端的應(yīng)用程序已分為兩層: GUI界面(Applet) 中間層軟件 小應(yīng)用程序除了支持如HTTP、TCP/IP和安全套接字層(SSL)外,它可以和其他服務(wù)器通信以便提供對各種數(shù)據(jù)庫的訪問。,瀏覽器/服務(wù)器的實(shí)施方案,目前,在瀏覽器上發(fā)布信息常用的文件格式有兩種:HTML文件與Java Applet類。 HTML文件只能發(fā)布超文本格式的信息。DHTML(動態(tài)標(biāo)記語言)和XML(可擴(kuò)展標(biāo)記語言)。有人認(rèn)為XML是從關(guān)系模型以來對數(shù)據(jù)庫應(yīng)用的最重要的發(fā)展。 Java Applet類嵌入在HTML文件中,可發(fā)布圖形信息。,瀏覽器/服務(wù)器的實(shí)施方案,CGI階段 腳本語言階段 組件技術(shù)階段,動態(tài)網(wǎng)頁發(fā)展的階段,CGI 是英文“Common Gateway Interface”的縮寫,代表服務(wù)器端的一種通用(標(biāo)準(zhǔn))接口。每當(dāng)服務(wù)器接到客戶更新數(shù)據(jù)的要求以后,利用這個接口去啟動外部應(yīng)用程序來完成各類計(jì)算、處理或訪問數(shù)據(jù)庫的工作,處理完成后將結(jié)果返回Web服務(wù)器,再返回瀏覽器,外部應(yīng)用程序是用C+、Perl、Java或其他語言編寫的程序,程序運(yùn)行在獨(dú)立的地址空間中。 CGI是微軟為了擴(kuò)展其主打WEB服務(wù)器產(chǎn)品IIS,為高級編程人員提供的一項(xiàng)特定技術(shù),使得編程人員可以在服務(wù)器級上使用底層的API(應(yīng)用編程接口)編程,擴(kuò)展IIS功能,按照程序設(shè)計(jì)者的意圖完成WEB應(yīng)用。,CGI階段,CGI示意圖,后來出現(xiàn)了“ISAPI”或“NSAPI” ISAPI 是英文“ Internet server application programming interface ”的縮寫,字面的翻譯為:英特網(wǎng)服務(wù)器應(yīng)用編程接口。其功能與CGI相同,但技術(shù)方面有些改進(jìn)。外部應(yīng)用程序改用動態(tài)鏈接庫(DDL),被載入Web服務(wù)器的地址空間運(yùn)行,并且用“線程”代替“進(jìn)程”,因而顯著地提高了運(yùn)行效率。 對于程序員來說,直接使用“應(yīng)用編程接口”是一件令人興奮的事情。,出現(xiàn)了許多杰出的腳本語言,如ASP、PHP、JSP等。腳本語言的出現(xiàn)大大簡化了動態(tài)網(wǎng)站開發(fā)的難度。 JSP與ASP的程序結(jié)構(gòu)非常類似。主要的特點(diǎn)是在傳統(tǒng)的HTML網(wǎng)頁文件中加入Java程序片斷(Scriptlet)和使用各種各樣的JSP標(biāo)志(Tag),構(gòu)成JSP網(wǎng)頁。,腳本語言階段,ASP.NET和Java(J2EE)技術(shù)是這個階段的代表。這是一個由類和對象(組件)組成的完全面向?qū)ο蟮南到y(tǒng),采用編譯方法和事件驅(qū)動方式運(yùn)行。 系統(tǒng)具有高效、高可靠、高可擴(kuò)展的特點(diǎn)。,組件技術(shù)階段,在C/S結(jié)構(gòu)中,圖形用戶界面的設(shè)計(jì)工作通常使用可視化開發(fā)工具Visual Basic和Delphi等,在B/S結(jié)構(gòu)中,常使用ASP、.net、JSP等來實(shí)現(xiàn)。,8.2 數(shù)據(jù)庫訪問接口,DBMS應(yīng)用系統(tǒng)中使用SQL編程來訪問和管理數(shù)據(jù)庫中數(shù)據(jù)。常用的數(shù)據(jù)庫的連接方法有: ODBC OLE DB ADO JDBC Native Call,ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(Windows Open Services Architecture, WOSA)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范。 它應(yīng)用數(shù)據(jù)通信方法、數(shù)據(jù)傳輸協(xié)議、DBMS等多種技術(shù)定義了一個標(biāo)準(zhǔn)的接口協(xié)議,允許應(yīng)用程序以SQL作為數(shù)據(jù)存取標(biāo)準(zhǔn),來存取不同的DBMS管理的數(shù)據(jù)。,1. ODBC,ODBC為數(shù)據(jù)庫應(yīng)用程序訪問異構(gòu)型數(shù)據(jù)庫提供了統(tǒng)一的數(shù)據(jù)存取接口API(應(yīng)用程序編程接口),應(yīng)用程序不必重新編譯、連接就可以與不同的DBMS相連,這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。 目前支持ODBC的有SQL Server、DB/2和 Oracle等10多種流行的DBMS。,ODBC是一個分層體系結(jié)構(gòu),由四部分 構(gòu)成: ODBC數(shù)據(jù)庫應(yīng)用程序(Application) 驅(qū)動程序管理器(Driver Manager) DBMS驅(qū)動程序(DBMS Driver) 數(shù)據(jù)源(Data Source),ODBC結(jié)構(gòu)模型,應(yīng)用程序 主要功能是:調(diào)用ODBC函數(shù),遞交SQL語句給DBMS,檢索出結(jié)果,并進(jìn)行處理。應(yīng)用程序要完成ODBC外部接口的所有工作。 應(yīng)用層提供圖形用戶界面(GUI)和事務(wù)邏輯,它是使用諸如Visual Basic、 Java及C+這樣的語言編寫的程序。應(yīng)用程序利用ODBC接口中的ODBC功能與數(shù)據(jù)庫進(jìn)行操作。,應(yīng)用程序的操作包括: 連接數(shù)據(jù)庫,向數(shù)據(jù)源發(fā)送SQL語句; 為SQL語句執(zhí)行結(jié)果分配存儲空間,定義所讀取的數(shù)據(jù)格式; 讀取結(jié)果; 處理錯誤; 向用戶提交處理結(jié)果; 請求事務(wù)的提交和回退操作; 斷開與數(shù)據(jù)源的連接。,驅(qū)動程序管理器 驅(qū)動程序管理器是一個動態(tài)連接庫 (DLL),用于連接各種DBS的DBMS驅(qū)動程序(如SQL Server、Oracle、Sybase等驅(qū)動程序),主要管理應(yīng)用程序和DBMS驅(qū)動程序之間的交互作用。,驅(qū)動程序管理器的主要功能如下: 為應(yīng)用程序加載DBMS驅(qū)動程序。 檢查ODBC調(diào)用參數(shù)的合法性和記錄ODBC函數(shù)的調(diào)用。 不同驅(qū)動程序的ODBC函數(shù)提供單一的入口。 調(diào)用正確的DBMS驅(qū)動程序。 提供驅(qū)動程序信息。 當(dāng)一個應(yīng)用程序與多個數(shù)據(jù)庫連接時,驅(qū)動程序管理器能夠保證應(yīng)用程序正確地調(diào)用這些DBS的DBMS,實(shí)現(xiàn)數(shù)據(jù)訪問,并把來自數(shù)據(jù)源的數(shù)據(jù)傳送給應(yīng)用程序。,DBMS驅(qū)動程序 應(yīng)用程序不能直接存取數(shù)據(jù)庫,其各種操作請求要通過ODBC的驅(qū)動程序管理器提交給DBMS驅(qū)動程序,通過驅(qū)動程序?qū)崿F(xiàn)對數(shù)據(jù)源的各種操作,數(shù)據(jù)庫的操作結(jié)果也通過驅(qū)動程序返回給應(yīng)用程序。應(yīng)用程序通過調(diào)用驅(qū)動程序所支持的函數(shù)來操縱數(shù)據(jù)庫。 驅(qū)動程序是一個動態(tài)連接庫(DLL)。當(dāng)應(yīng)用程序調(diào)用函數(shù)進(jìn)行連接時,驅(qū)動程序管理器加載驅(qū)動程序。,驅(qū)動程序完成以下任務(wù): 建立應(yīng)用程序與數(shù)據(jù)源的連接。 向數(shù)據(jù)源提交用戶請求執(zhí)行的SQL語句。 根據(jù)應(yīng)用程序的要求,將發(fā)送給數(shù)據(jù)源的數(shù)據(jù)或是從數(shù)據(jù)源返回的數(shù)據(jù)進(jìn)行數(shù)據(jù)格式和類型轉(zhuǎn)換。 把處理結(jié)果返回給應(yīng)用程序。 將執(zhí)行過程中DBS返回的錯誤轉(zhuǎn)換成ODBC定義的標(biāo)準(zhǔn)錯誤代碼,并返回給應(yīng)用程序。 根據(jù)需要定義和使用光標(biāo)。,ODBC的數(shù)據(jù)源管理 數(shù)據(jù)源(Data Source Name,簡稱DSN)是驅(qū)動程序與DBS連接的橋梁,數(shù)據(jù)源不是DBS,而是用于表達(dá)一個ODBC驅(qū)動程序和DBMS特殊連接的命名。 創(chuàng)建數(shù)據(jù)源最簡單的方法是使用ODBC驅(qū)動程序管理器。在連接中,用數(shù)據(jù)源名來代表用戶名、服務(wù)器名、所連接的數(shù)據(jù)庫名等,可以將數(shù)據(jù)源名看成是與一個具體數(shù)據(jù)庫建立的連接。,數(shù)據(jù)源分為以下三類: 用戶數(shù)據(jù)源:用戶創(chuàng)建的數(shù)據(jù)源,稱為“用戶數(shù)據(jù)源”。此時只有創(chuàng)建者才能使用,并且只能在所定義的機(jī)器上運(yùn)行。任何用戶都不能使用其他用戶創(chuàng)建的用戶數(shù)據(jù)源。 系統(tǒng)數(shù)據(jù)源:所有用戶和在Windows下以服務(wù)方式運(yùn)行的應(yīng)用程序均可使用系統(tǒng)數(shù)據(jù)源。 文件數(shù)據(jù)源:文件數(shù)據(jù)源是ODBC 3.0以上版本增加的一種數(shù)據(jù)源,可用于企業(yè)用戶,ODBC驅(qū)動程序也安裝在用戶的計(jì)算機(jī)上。,Access數(shù)據(jù)庫系統(tǒng)DSN的配置方法 單擊添加后彈出對話框,選擇數(shù)據(jù)源為 Driver do Microsoft Access (*.mdb)單擊完成。 這時彈出一個 “ODBC Microsoft Access安裝”的對話框,在對話框的數(shù)據(jù)源名文本輸入框中輸入配置的DSN文件名,如果test_dsn,然后單擊 “選擇”按鈕。 這時將彈出對話框,在對話框的數(shù)據(jù)庫名中輸入 “c:test.mdb”,或是從右邊的目錄瀏覽器中選擇“驅(qū)動器C”- “test.mdb” 。選擇數(shù)據(jù)庫完成后,單擊確定按鈕將回到第二步界面。 單擊“確定”,請注意,這時在系統(tǒng)數(shù)據(jù)源列表框中出現(xiàn)了“test” 項(xiàng)。Access數(shù)據(jù)庫系統(tǒng)DSN配置完成。,SQL Server數(shù)據(jù)庫系統(tǒng)DSN的配置方法 在彈出的對話框中的驅(qū)動程序中選擇SQL Server項(xiàng)。 單擊“完成”,這時將彈擊一個對話框,在對話框的名稱文本輸入框中輸入要配置的DSN文件名。 單擊“下一步”,此時我們?nèi)绻诘诙綍r選擇的是通過IP地址連接服務(wù)器,請選擇客戶端配置選項(xiàng),調(diào)出配置對話框。 單擊“下一步”,在“改變默認(rèn)的數(shù)據(jù)庫”的復(fù)選框中打勾,并選擇test數(shù)據(jù)庫。 單擊“下一步”。 單擊“完成”。 單擊“測試數(shù)據(jù)庫”按鈕以進(jìn)行測試, 單擊“確定”,這時在系統(tǒng)數(shù)據(jù)源列表框中出現(xiàn)了“test” 項(xiàng),SQL Server數(shù)據(jù)庫系統(tǒng)DSN配置完成。,Oracle數(shù)據(jù)庫系統(tǒng)DSN的配置方法 在彈出的對話框中的驅(qū)動程序中選擇Oracle in Ora92。 單擊“完成”,這時將彈擊一個對話框: Data Source Name中輸入框中輸入要配置的DSN文件名 TNS Service Name中輸入框中輸入Oracle服務(wù)名 User中輸入登錄用戶名。 單擊“測試數(shù)據(jù)庫”按鈕以進(jìn)行測試, 單擊“確定”,這時在系統(tǒng)數(shù)據(jù)源列表框中出現(xiàn)了“test” 項(xiàng), Oracle數(shù)據(jù)庫系統(tǒng)DSN配置完成。,OLE DB是一組“組件對象模型”(COM)接口,是一種數(shù)據(jù)訪問的技術(shù)標(biāo)準(zhǔn),封裝了ODBC的功能,目的是提供統(tǒng)一的數(shù)據(jù)訪問接口。OLE DB將傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)劃分為多個邏輯部件,部件間相對獨(dú)立又相互通訊。,2. OLE DB,1)消費(fèi)者(Consumers): 消費(fèi)者是使用OLE DB對存儲在數(shù)據(jù)提供者中的數(shù)據(jù)進(jìn)行控制的應(yīng)用程序。,2)提供者(Providers): 提供者是暴露OLE DB的軟組件。提供者大致分兩類: 數(shù)據(jù)提供者(Data Providers),數(shù)據(jù)提供者是提供數(shù)據(jù)存儲的軟組件, 服務(wù)提供者(Service Providers),位于數(shù)據(jù)提供者之上,它是從過去的DBMS中分離出來且能獨(dú)立運(yùn)行的功能組件這些組件使得數(shù)據(jù)提供者提供的數(shù)據(jù)能以表格形式向外表示,并實(shí)現(xiàn)數(shù)據(jù)的查詢和修改功能。,3)業(yè)務(wù)組件(Business Component): 業(yè)務(wù)組件是利用數(shù)據(jù)服務(wù)提供者專門完成某種特定業(yè)務(wù)信息處理的、可重用的功能組件。,ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對象)技術(shù)則是一種良好的解決方案,它構(gòu)建于OLE DB API之上,提供一種面向?qū)ο蟮?、與語言無關(guān)的應(yīng)用程序編程接口。ADO的應(yīng)用場合非常廣泛,而且支持多種程序設(shè)計(jì)語言,不僅兼容所有的數(shù)據(jù)庫系統(tǒng),從桌面數(shù)據(jù)庫到網(wǎng)絡(luò)數(shù)據(jù)庫等,ADO提供相同的處理方法。,3. ADO,ADO對象模型,ADO對象模型,每個Connection、Command、Recordset和Field對象都有Properties集合。, Connection對象 該對象主要負(fù)責(zé)與數(shù)據(jù)庫建立連接和執(zhí)行SQL語句。,屬性 ConnectionString 方法 Open Execute Close,ADO直接連接數(shù)據(jù)庫,參數(shù): Provider指明驅(qū)動程序 Datasource指明數(shù)據(jù)庫在哪里 User ID 指明用于連接數(shù)據(jù)庫的用戶名 Password指明用于連接數(shù)據(jù)庫的密碼,ConnStr= “Provider=Microsoft.Jet.OLEDB.4.0;“&_ “Data Source=“ &_ “ Server.MapPath(“databaseUser.mdb“) &“,例1:連接ACCESS,ConnStr= “Provider=SQLOLEDB.1;“ &_ “Initial Catalog=“,例2:連接SQL Server,ConnStr= “Provider=OraOLEDB.Oracle.1;“ &_ “Persist Security Info = True“,例3:連接Oracle,系統(tǒng)DSN(Data Source Name) Conn.ConnectionString=“DSN=test“ 利用數(shù)據(jù)庫專用接口 Conn.ConnectionString= “DRIVER=Microsoft Access Driver (*.mdb);“&_ “DBQ=“& server.MapPath(“databaseUser.mdb“) &“,利用ODBC連接, RecordSet對象 該對象是ADO中使用最為普遍的對象,主要記錄了對數(shù)據(jù)庫表查詢的結(jié)果。 如 select * from users 查詢的結(jié)果即存放了一張結(jié)果表。,屬性 Fields Eof 方法 MoveNext MoveFirst,結(jié)果表屬性(列)的集合,是否在結(jié)果表的末尾,如果是 則為True,否則為False,移動到結(jié)果表的下一條記錄,移動到結(jié)果表的第一條記錄,首先,建立與數(shù)據(jù)庫的連接 Connection,并打開(Open)該連接。 其次,利用Connection的Execute方法執(zhí)行相應(yīng)的 “Select * from 表名 where 條件” 語句, 并把結(jié)果賦給 RecordSet 對象 最后,利用 RecordSet 一條一條把結(jié)果顯示出來。,利用RecordSet顯示表中記錄的步驟, 昵稱密碼 性別頭像 “& _ “& Rs.Fields(“sName“) &“ “& _ “& Rs.Fields(“sPassword“) &“ “& _ “& Rs.Fields(“sSex“) &“ “& _ “ “& _ “ Rs.movenext while end %,例4:顯示表中的記錄,步驟: 建立與數(shù)據(jù)庫的連接 Connection ,并打開該連接。 利用Connection的Execute方法執(zhí)行相應(yīng)的 “Insert into 表名() values()” 語句。,如何向表中插入數(shù)據(jù)呢?,例5:插入記錄,步驟: 建立與數(shù)據(jù)庫的連接 Connection ,并打開該連接。 利用Connection的Execute方法執(zhí)行相應(yīng)的 “Update 表名 Set 列名1=值1 where 條件” 語句。,如何修改表中的數(shù)據(jù)呢?,例6:修改記錄,步驟: 建立與數(shù)據(jù)庫的連接 Connection ,并打開該連接。 利用Connection的Execute方法執(zhí)行相應(yīng)的 “delete from 表名 where 條件” 語句。,如何刪除表中的數(shù)據(jù)呢?,例7: 刪除記錄, Command對象 Command對象是對數(shù)據(jù)存儲執(zhí)行命令的對象。 Record對象 Stream對象 Stream對象用于訪問節(jié)點(diǎn)的內(nèi)容。 集合 ADO對象庫中有一些集合,每個集合都有零個或更多個與其關(guān)聯(lián)的對象的拷貝。 ADO常數(shù) 當(dāng)使用ADO時,會發(fā)現(xiàn)有許多預(yù)先定義的用于眾多選項(xiàng)的常數(shù),比如定義光標(biāo)類型和鎖類型的常數(shù)。,ADO支持開發(fā)C/S和B/S應(yīng)用程序的關(guān)鍵功能包括: 獨(dú)立創(chuàng)建對象。使用ADO不再需要瀏覽整個層次結(jié)構(gòu)來創(chuàng)建對象,因?yàn)榇蠖鄶?shù)的ADO對象可以獨(dú)立創(chuàng)建。這個功能允許用戶只創(chuàng)建和跟蹤需要的對象,這樣,ADO對象的數(shù)目較少,所以工作集也更小。 成批更新。通過本地緩存對數(shù)據(jù)的更改,然后在一次更新中把它們?nèi)繉懙椒?wù)器。, 支持帶參數(shù)和返回值的存儲過程。 不同的游標(biāo)類型。包括對SQL Server和Oracle這樣的數(shù)據(jù)庫后端特定的游標(biāo)的支持。 可以限制返回行的數(shù)目和其它的查詢目標(biāo)來進(jìn)一步調(diào)整性能。 支持從存儲過程或批處理語句返回的多個記錄集。,提供者與驅(qū)動程序的區(qū)別,JDBC(Java Database Connectivity)是SUN公司針對Java語言提出的與數(shù)據(jù)庫連接的API標(biāo)準(zhǔn)。與ODBC類似,JDBC是特殊類型的API,這些API支持對數(shù)據(jù)庫的連接和基本的SQL功能,包括建立數(shù)據(jù)庫連接、執(zhí)行SQL語句、處理返回結(jié)果等。與ODBC不同的是,JDBC為單一的Java語言的數(shù)據(jù)庫接口。,4. JDBC,JDBC驅(qū)動程序管理器,JDBC-Net驅(qū)動程序, JDBC-ODBC橋接驅(qū)動程序。 JDBC基于X/Open的SQL調(diào)用級接口(CLI,這是ODBC的基礎(chǔ)),JDBC可以保證JDBC API在其他通用SQL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中英語跨文化交際教學(xué)中的文化差異分析及應(yīng)對策略論文
- 校園周邊公共交通服務(wù)質(zhì)量對高中生出行滿意度的影響分析論文
- 藝校各科目管理制度
- 蘇州金螳螂管理制度
- 2025年福建省中考英語試卷真題(含標(biāo)準(zhǔn)答案)
- 課課練初中英語七年級上冊答案
- 財(cái)務(wù)體制優(yōu)化設(shè)計(jì)工程建議書
- 講座二 常見氣體的制備(精講)-2023年高考化學(xué)大一輪復(fù)習(xí)精講精練(解析版)
- 記賬實(shí)操-酒店業(yè)會計(jì)賬務(wù)處理
- 計(jì)量標(biāo)準(zhǔn)器具:化學(xué)計(jì)量標(biāo)準(zhǔn)器具相關(guān)行業(yè)投資方案
- GB/T 4208-2017外殼防護(hù)等級(IP代碼)
- GB/T 19889.8-2006聲學(xué)建筑和建筑構(gòu)件隔聲測量第8部分:重質(zhì)標(biāo)準(zhǔn)樓板覆面層撞擊聲改善量的實(shí)驗(yàn)室測量
- GB/T 12236-2008石油、化工及相關(guān)工業(yè)用的鋼制旋啟式止回閥
- .全年累計(jì)供暖空調(diào)能耗模擬報告
- 國家開放大學(xué)《藥學(xué)信息檢索》形考作業(yè)參考答案
- 自身免疫性腦炎
- 熱工基礎(chǔ)思考題答案(第1章)
- 大學(xué)生選課申請表
- 生產(chǎn)安全事故風(fēng)險評估報告(參考模板)
- 消防安全工作臺賬表格匯總
- 廣州舊城改造三元里文本
評論
0/150
提交評論