版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目 錄(三號(hào)黑體居中,不加粗)(空一行)緒論(小四號(hào)宋體,以下所有文字均用小四號(hào)宋體)( 1 )1 課題總體介紹( 1 )1.1 課題介紹( 1 )1.2 課題目的及意義( 1 )1.3 主要研究功能( 1 )2 jsp連接sql server的方法( 1 )2.1 如何用jsp連接sql server( 2 )2.2 數(shù)據(jù)控件法( 2 )2.3 幾種接口的比較( 2 )2.4 性能比較及應(yīng)用說(shuō)明( 4 )2.5 jsp訪問(wèn)數(shù)據(jù)庫(kù)的原則( 4 )2.5.1 代碼的重用和運(yùn)行的效率( 4 )2.5.2 實(shí)現(xiàn)的簡(jiǎn)便性,易維護(hù)性( 4 )2.5.3 安全性原則( 4 )3 數(shù)據(jù)庫(kù)訪問(wèn)分析( 5 )3
2、.1 使用數(shù)據(jù)庫(kù)對(duì)象( 5 )3.2 使用adodb( 5 )3.3 dao、rdo、odb、cado 和jdbc( 5 )3.4 ado.net 結(jié)構(gòu)( 7 )3.5 ado.net 的優(yōu)勢(shì)( 7 )3.6 dataset 對(duì)象( 7 )3.7 使用dataset對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)( 8 )結(jié)論( 13 )參考文獻(xiàn)( 13 )附錄( 13 )淺析jsp在sql server數(shù)據(jù)庫(kù)中的訪問(wèn)技術(shù)(中文題目,三號(hào)黑體居中)(空一行)摘 要(四號(hào)黑體居中)(空一行)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,已經(jīng)成為先進(jìn)信息技術(shù)的重要組成部分,現(xiàn)代算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。jsp在數(shù)據(jù)庫(kù)中的應(yīng)用也越來(lái)越受到廣泛應(yīng)
3、用和研究。隨著intranet和各種管理信息系統(tǒng)的發(fā)展,數(shù)據(jù)庫(kù)與計(jì)算機(jī)網(wǎng)絡(luò)之間的聯(lián)系和應(yīng)用越來(lái)越緊密,近些年來(lái)微軟不斷的改進(jìn)數(shù)據(jù)庫(kù)的訪問(wèn)技術(shù)。從最早的odbc,到dao,到rdo,再到ado和ole db。隨著微軟.net戰(zhàn)略的推進(jìn),各種新技術(shù)正不斷為廣大編程人員所接受。在數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)方面,.net框架有它自己的數(shù)據(jù)庫(kù)訪問(wèn)apiado.net。ado.net對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)做了大大的簡(jiǎn)化,但是它的功能相對(duì)以前的技術(shù)卻是飛躍式的進(jìn)步。(五號(hào)宋體,單倍行距)(一般為300字左右)【關(guān)鍵詞】(小四號(hào)黑體)數(shù)據(jù)庫(kù) 接口 數(shù)據(jù)訪問(wèn)對(duì)象(五號(hào)宋體)(一般列36個(gè))on jsp database in sq
4、l server application(外文題目,三號(hào)加粗times new roman居中)(空一行)abstract(四號(hào)times new roman,加粗,居中)(空一行)the development of database technology, advanced information technology has become an important component of the modern computer information systems and computer application system and the basis of the core. d
5、atabase access technology is more and more widely used and research. with all intranet and the development of management information systems, databases and computer networks and application of the link between increasingly close in recent years to continuously improve the microsoft access database t
6、echnology. from the earliest odbc, dao, rdo, to the ado and ole db. with microsoft. promote net strategy, and new technologies are continuously accepted by the overwhelming majority of programmers. in the database access technology,. net framework has its own database access api-ado.net. ado.net dat
7、abase visit to the greatly simplified, but its function it is progress. (五號(hào)times new roman,單倍行距)(與中文摘要內(nèi)容一致)【key words】(times new roman小四號(hào)加粗)database interface data access object(五號(hào)times new roman)(與中文關(guān)鍵詞一致)緒論(黑體四號(hào)) jsp技術(shù)的特點(diǎn):java server page(jsp)1是使用java代碼動(dòng)態(tài)生成html文檔的wed頁(yè)面模版。jsp運(yùn)行于服務(wù)器端組建,稱為jsp容器,它將jsp
8、轉(zhuǎn)化成等價(jià)的java servlet。正是因?yàn)槿绱?,servelet和jsp頁(yè)面最終是相關(guān)的。jsp頁(yè)面具有了servlet的所有優(yōu)點(diǎn),如良好的性能和擴(kuò)展性,對(duì)http會(huì)話提供嵌入式支持等。同時(shí)jsp頁(yè)面還具有自身的優(yōu)點(diǎn),如需要時(shí)自動(dòng)從新編譯和與wed開發(fā)工具具有更大的兼容性。(正文,五號(hào)宋體,單倍行距,下同)jsp容器基于每個(gè)文件的時(shí)間戳自動(dòng)管理jsp頁(yè)面。當(dāng)對(duì)一個(gè)jsp頁(yè)面的請(qǐng)求發(fā)出后,容器首先判斷與.jsp文件對(duì)應(yīng)的類的名字。如果該類不存在或比jsp文件的老然后容器為一個(gè)等價(jià)的servlet創(chuàng)建java源并編譯它。如果servlet實(shí)例并未運(yùn)行,容器載入改servlet類并創(chuàng)建一個(gè)實(shí)例。
9、最后,容器發(fā)送一個(gè)線程在載入的實(shí)例中處理當(dāng)前的http請(qǐng)求。所以,一個(gè)jsp頁(yè)面有三種存在形式,即jsp源碼和已編譯的java類。jsp元素可以分為三種:偽指令,腳本元素(包含表達(dá)式,script和聲明)和動(dòng)作。其中,偽指令是指示jsp容器生成什么代碼的命令;在表達(dá)式和script中可以使用9個(gè)隱含對(duì)象;行為是創(chuàng)建。修改或使用對(duì)象的高層jsp元素使用嚴(yán)格的xml語(yǔ)法編碼。靜態(tài)web站點(diǎn)的開發(fā)與維護(hù)變得越來(lái)越困難,其最大的問(wèn)題就是缺少交互性,信息的內(nèi)容只有在網(wǎng)站管理人員更改后才能發(fā)生變化,使得web管理員不得不頻繁修改他們的網(wǎng)頁(yè)。為了向網(wǎng)絡(luò)用戶提供大量有用的、動(dòng)態(tài)的和可交互的信息,凡是能夠數(shù)據(jù)庫(kù)
10、化的內(nèi)容,應(yīng)盡量做成數(shù)據(jù)庫(kù)的形式,因?yàn)閿?shù)據(jù)庫(kù)形式的數(shù)據(jù)遠(yuǎn)比其他形式的數(shù)據(jù)要容易更新與管理。通用化就是數(shù)據(jù)庫(kù)技術(shù)和數(shù)據(jù)訪問(wèn)技術(shù)一直在追求的目標(biāo)。下面我就談?wù)劷虅?wù)管理信息系統(tǒng)的開發(fā)過(guò)程中jsp在數(shù)據(jù)庫(kù)中應(yīng)用所遇到的問(wèn)題及解決方法。1 課題總體介紹(正文1級(jí)標(biāo)題,四號(hào)黑體,不加粗,段前后均留0.5行距)1.1 課題介紹(正文2級(jí)標(biāo)題,用小四號(hào)黑體,不加粗)教務(wù)管理系統(tǒng)是典型的信息管理系統(tǒng)(mis), 2其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā),數(shù)據(jù)庫(kù)的連接等幾個(gè)方面。首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后運(yùn)用jsp技術(shù)進(jìn)行數(shù)據(jù)庫(kù)的連接,找到合適的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),對(duì)初始原型系統(tǒng)進(jìn)行需求
11、迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。(宋體五號(hào))1.2 課題目的及意義眾所周知,學(xué)校的教務(wù)任務(wù)十分復(fù)雜,工作也很繁瑣,這主要表現(xiàn)在成績(jī)管理、學(xué)生管理、教師管理、排課管理和課程管理等方面,通過(guò)使用各種教務(wù)管理軟件,能夠大大減輕教師和管理人員的工作強(qiáng)度,進(jìn)一步規(guī)范教務(wù)管理工作,并增強(qiáng)教務(wù)管理信息的透明度,使管理人員的工作效率大大提高,節(jié)省了大量的人力物力,3最終達(dá)到了提高教務(wù)管理質(zhì)量的目的。本課題以設(shè)計(jì)和開發(fā)一個(gè)實(shí)用的單機(jī)版教務(wù)管理系統(tǒng)為目標(biāo),希望通過(guò)課題開發(fā),一方面提高自身的計(jì)算機(jī)實(shí)踐能力,同時(shí),也希望本系統(tǒng)具有較強(qiáng)的實(shí)用性,能夠應(yīng)用到學(xué)校的實(shí)際教務(wù)管理工作當(dāng)中,實(shí)現(xiàn)一定的社會(huì)效益
12、。1.3 主要研究功能通過(guò)應(yīng)用實(shí)例得出如何選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)、連接方式的一些方法;如何互相訪問(wèn)各種標(biāo)準(zhǔn)不一的數(shù)據(jù)庫(kù)等內(nèi)容進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的研究; 數(shù)據(jù)庫(kù)技術(shù)和數(shù)據(jù)訪問(wèn)技術(shù)通用化的研究。2 jsp連接sql server的方法(正文1級(jí)標(biāo)題,四號(hào)黑體,不加粗,段前后均留0.5行距)2.1 如何用jsp連接sql server(正文2級(jí)標(biāo)題,用小四號(hào)黑體,不加粗) testoracle.jsp如下:% page contenttype=text/html:charset=gb2312%(times new roman五號(hào)) 您的第一個(gè)字段內(nèi)容為: 您的第二個(gè)字段內(nèi)容為: % 2.2 數(shù)據(jù)控件法 da
13、ta control:dao/jet數(shù)據(jù)界面接口data control/odbc direct:dao/odbc direct數(shù)據(jù)界面接口 remotedata control/rdc:rdo數(shù)據(jù)界面接口advanced data connector/adc:ado數(shù)據(jù)界面接口 2.3 幾種接口的比較adc(advanced data connector):4高級(jí)數(shù)據(jù)連接器。提供綁定ado數(shù)據(jù)源到窗體的數(shù)據(jù)綁定控件上。adc主要是一種直接訪問(wèn)或者通過(guò)ado訪問(wèn)遠(yuǎn)程ole db對(duì)象的一種技術(shù),它也支持主要應(yīng)用在微軟ie瀏覽器上的數(shù)據(jù)綁定控件。它是特地為web上的瀏覽器為基礎(chǔ)的應(yīng)用程序而設(shè)計(jì)的。
14、ado(active data objects):active數(shù)據(jù)對(duì)象。是dao/rdo的后繼產(chǎn)物,ado“擴(kuò)展”了dao和rdo所使用的對(duì)象模型,這意味著它包含較少的對(duì)象、更多的屬性、方法(和參數(shù)),以及事件。ado實(shí)際是一種提供訪問(wèn)各種數(shù)據(jù)類型的連接機(jī)制。ado設(shè)計(jì)為一種極簡(jiǎn)單的格式,通過(guò)odbc的方法同數(shù)據(jù)庫(kù)接口??梢允褂萌魏我环Nodbc數(shù)據(jù)源,即不止適合于sql server、oracle、access等數(shù)據(jù)庫(kù)應(yīng)用程序,也適合于excel表格、文本文件、圖形文件和無(wú)格式的數(shù)據(jù)文件,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌?。ado是為microsoft最新和最強(qiáng)大的數(shù)據(jù)訪問(wèn)范例ole db而設(shè)計(jì)的
15、,ole db為任何數(shù)據(jù)源提供了高性能的訪問(wèn),這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫(kù)、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。ado在關(guān)鍵的internet方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。因此ado通過(guò)其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問(wèn)接口方法。dao(data access objects):數(shù)據(jù)訪問(wèn)對(duì)象。是一種面向?qū)ο蟮慕缑娼涌凇Mㄟ^(guò)dao/jet功能可以訪問(wèn)isam數(shù)據(jù)庫(kù),使用dao/odbc direct功能可以實(shí)現(xiàn)遠(yuǎn)程rdo功能。使用dao的程序編碼非常簡(jiǎn)單,dao提供豐富的游標(biāo)(cursor)類型的結(jié)果
16、集和非游標(biāo)(cursor-less)類型的結(jié)果集,同ddl(數(shù)據(jù)描述語(yǔ)言)的功能很類似。dao可通過(guò)odbc像直接連接到其它數(shù)據(jù)庫(kù)一樣,直接連接到access數(shù)據(jù)庫(kù)。dao最適用于單系統(tǒng)應(yīng)用程序或小范圍本地分布使用。dao模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合。它們提供了完成管理這樣一個(gè)系統(tǒng)所需的全部操作的屬性和方法,包括創(chuàng)建數(shù)據(jù)庫(kù),定義表、字段和索引,建立表間的關(guān)系,定位和查詢數(shù)據(jù)庫(kù)等工具。jet(joint engine technology):數(shù)據(jù)連接性引擎技術(shù)。是一種基于工作站通過(guò)dao的數(shù)據(jù)庫(kù)訪問(wèn)機(jī)制。雖然可以通過(guò)微軟access提供的odbc驅(qū)動(dòng)程序訪問(wèn)jet數(shù)據(jù)庫(kù),但使用這些
17、驅(qū)動(dòng)程序在功能上有所限制。jet機(jī)制有自己的查詢和結(jié)果集處理功能,并可對(duì)同種或異種數(shù)據(jù)源作查詢處理。odbc(open database connectivity):開放式的數(shù)據(jù)庫(kù)連接技術(shù)。為異種數(shù)據(jù)庫(kù)的訪問(wèn)提供了統(tǒng)一的接口。odbc基于sql(structured query language),并把它作為訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。這個(gè)接口提供了最大限度的相互可操作性:一個(gè)應(yīng)用程序可以通過(guò)一組通用的代碼訪問(wèn)不同的數(shù)據(jù)庫(kù)管理系統(tǒng)。一個(gè)軟件開發(fā)者開發(fā)的客戶/服務(wù)器應(yīng)用程序不會(huì)被束定于某個(gè)特定的數(shù)據(jù)庫(kù)之上。odbc可以為不同的數(shù)據(jù)庫(kù)提供相應(yīng)的驅(qū)動(dòng)程序,是一種公認(rèn)的關(guān)系數(shù)據(jù)源的接口界面。它快而輕并且提供統(tǒng)一
18、接口的界面,odbc對(duì)任何數(shù)據(jù)源都未作優(yōu)化。odbc api:數(shù)據(jù)庫(kù)廠商為程序設(shè)計(jì)者提供的直接訪問(wèn)數(shù)據(jù)庫(kù)的一組函數(shù)。注意:這里要指出的是,雖然odbc api提供了很多很方便而且強(qiáng)大的功能。但是通常來(lái)說(shuō)odbc api都比較難學(xué),而且使用很容易出錯(cuò)。雖然允許用odbc api來(lái)操作6odbc句柄,但還是要小心,如果不正確地使用odbc api,可能會(huì)導(dǎo)致不可預(yù)知的錯(cuò)誤。例如,假如使用odbc api代碼來(lái)關(guān)閉連接或釋放這些odbc句柄中的任何一個(gè),那么remotedata控件或rdo的行為將是不可預(yù)知的。保存odbc句柄以供備用也是沒(méi)有意義的,因?yàn)樗鼈兪强勺兊?。odbc direct:是一種基
19、于dao對(duì)象的新的dao模式,其方法和屬性與rdo功能相同。使用在有dao代碼存在的場(chǎng)合,可用來(lái)訪問(wèn)遠(yuǎn)程數(shù)據(jù)源。ole db: 是com模型的數(shù)據(jù)庫(kù)接口。是一種底層數(shù)據(jù)訪問(wèn)界面接口。是用于第三方驅(qū)動(dòng)程序商家開發(fā)輸出數(shù)據(jù)源到ado技術(shù)的應(yīng)用程序或用于c+的開發(fā)者開發(fā)定制的數(shù)據(jù)庫(kù)組件。它能夠處理任何類型的數(shù)據(jù)。ole db向應(yīng)用程序提供一個(gè)統(tǒng)一的數(shù)據(jù)訪問(wèn)方法,而不考慮它們的格式和存儲(chǔ)方法。在實(shí)際應(yīng)用中,這種多樣性意味著可以訪問(wèn)駐留在電子數(shù)據(jù)表、文本文件甚至郵件服務(wù)器,諸如 microsoft exchang中的數(shù)據(jù)。ole db不能被vb直接調(diào)用。rdc(remotedata control):遠(yuǎn)
20、程數(shù)據(jù)訪問(wèn)控件。是一種對(duì)rdo數(shù)據(jù)綁定的控件。可以輸出特定的結(jié)果集到數(shù)據(jù)源控件。rdo(remote data objects):遠(yuǎn)程數(shù)據(jù)對(duì)象。是一個(gè)到odbc的、面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)接口,遠(yuǎn)程數(shù)據(jù)對(duì)象和集合為使用代碼來(lái)創(chuàng)建和操作一個(gè)遠(yuǎn)程odbc數(shù)據(jù)庫(kù)系統(tǒng)的各個(gè)部件提供了一個(gè)框架。對(duì)象和集合都具有描述數(shù)據(jù)庫(kù)的各個(gè)部件特征的屬性以及用來(lái)操作這些部件的方法。可以在對(duì)象和集合之間建立起關(guān)系,這些關(guān)系就代表了數(shù)據(jù)庫(kù)系統(tǒng)的邏輯結(jié)構(gòu)。它同易于使用的dao style組合在一起,提供了1個(gè)接口,形式上展示出所有odbc的底層功能和靈活性。rdo是odbc api的一個(gè)淺層界面接口。是專為訪問(wèn)遠(yuǎn)程odbc關(guān)系數(shù)
21、據(jù)源而設(shè)計(jì)的。盡管rdo在訪問(wèn)jet或isam數(shù)據(jù)庫(kù)方面受到限制,而且它只能通過(guò)現(xiàn)存的odbc驅(qū)動(dòng)程序來(lái)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)。但是,rdo已被證明是許多sql server、oracle以及其他大型關(guān)系數(shù)據(jù)庫(kù)開發(fā)者經(jīng)常選用的最佳接口。rdo提供了用來(lái)訪問(wèn)存儲(chǔ)過(guò)程和復(fù)雜結(jié)果集的更多和更復(fù)雜的對(duì)象、屬性以及方法。2.4性能比較及應(yīng)用說(shuō)明以上幾種訪問(wèn)sql server的方法各有各的特點(diǎn)。daos方法是基于對(duì)象的,因而便于使用,但是它從visual basic到sql server的最慢的方式。odbc api和vbsql方法從本質(zhì)上講是基于程序的。odbc api方法通用性好,允許最強(qiáng)的互操作性,編程簡(jiǎn)
22、單,但速度慢于vbsql方法。vbsql方法通過(guò)vbsql控件,提供了重要的sql server前端應(yīng)用程序所需的靈活性、強(qiáng)大功能和良好性能。它具有真正的事件驅(qū)動(dòng)及錯(cuò)誤處理能力,完全支持異步處理、游標(biāo)和計(jì)算列等。這些都是vbsql方法超出其它方法的優(yōu)勢(shì),但其編程稍復(fù)雜。rdo是位于odbc api之上的一個(gè)對(duì)象模型層,它依賴odbc api、odbc驅(qū)動(dòng)程序以及后端數(shù)據(jù)庫(kù)引擎來(lái)實(shí)現(xiàn),用rdo所需的程序短小(約250 kb)、快速。rdo具備基本的odbc處理方法,可直接執(zhí)行大多數(shù)odbc api函數(shù),rdo包含在vb 4.0/vb 5.0企業(yè)版中,由msrdo32.dll動(dòng)態(tài)連接庫(kù)來(lái)實(shí)現(xiàn)。rd
23、o是綜合了dao/jet、vbsql/dblib和odbc的優(yōu)點(diǎn)的對(duì)象模型,包含odbc api應(yīng)用層,設(shè)計(jì)為在后臺(tái)(服務(wù)器端)有數(shù)據(jù)庫(kù)存在的前提下運(yùn)行,是針對(duì)sql server和oracle而特別設(shè)計(jì)的。rdo的優(yōu)勢(shì)在于它完全被集成在vb之中,可直接訪問(wèn)sql server存儲(chǔ)過(guò)程、完全支持t-sql、t-sql調(diào)試集成在開發(fā)環(huán)境中、visual database tools的集成化等。但微軟已宣布今后不再對(duì)vbsql/dblib7進(jìn)行升級(jí),而odbc api函數(shù)一般的編程方式也不為人們所喜愛(ài),rdo的應(yīng)用將逐漸減少。至于實(shí)際使用哪一種接口方式,在很大程度上依賴于用戶的應(yīng)用程序的具體情況而
24、定。 2.5 jsp訪問(wèn)數(shù)據(jù)庫(kù)的原則應(yīng)用jsp訪問(wèn)數(shù)據(jù)庫(kù)時(shí),要具體問(wèn)題具體分析,根據(jù)具體的環(huán)境、條件、要求而采用適當(dāng)?shù)姆桨?,就?yīng)注意以下幾個(gè)原則:2.5.1 代碼的重用和運(yùn)行的效率(正文3級(jí)標(biāo)題,用小四號(hào)黑體,不加粗)例如:通過(guò)使用odbc數(shù)據(jù)源連接數(shù)據(jù)庫(kù)的方法,可在變換多種數(shù)據(jù)庫(kù)類型的情況下,而不用頻繁修改代碼。使用odbc接口的ado的效率要高于rdo。2.5.2 實(shí)現(xiàn)的簡(jiǎn)便性,易維護(hù)性如果一種方法實(shí)現(xiàn)起來(lái)很復(fù)雜,工程的開發(fā)必然造成人力物力的浪費(fèi),同時(shí)這樣設(shè)計(jì)出來(lái)的應(yīng)用程序只會(huì)支持起來(lái)更復(fù)雜或維護(hù)時(shí)更困難。例如:本地需要訪問(wèn)isam 或jet 類型數(shù)據(jù)源,那么就使用dao/jet,而沒(méi)有必
25、要使用通過(guò)odbc的方法。rdc實(shí)現(xiàn)起來(lái)要較rdo更容易。2.5.3 安全性原則這一條應(yīng)根據(jù)環(huán)境和條件決定。例如局域網(wǎng)的網(wǎng)絡(luò)安全性要好于廣域網(wǎng)因而可直接利用數(shù)據(jù)控件如rdc,這樣實(shí)現(xiàn)起來(lái)方便快捷,而廣域網(wǎng)需要大量的錯(cuò)誤捕獲,如用rdc就不如用rdo易控制錯(cuò)誤。3 數(shù)據(jù)庫(kù)訪問(wèn)分析(正文1級(jí)標(biāo)題,四號(hào)黑體,不加粗,段前后均留0.5行距)3.1 使用數(shù)據(jù)庫(kù)對(duì)象(正文2級(jí)標(biāo)題,用小四號(hào)黑體,不加粗)首先,要進(jìn)行有關(guān)數(shù)據(jù)對(duì)象的聲明,代碼如下。dim myws as workspacedim mydb as databasedim wordtab as recordset 生成工作區(qū),打開數(shù)據(jù)庫(kù),然后再根
26、據(jù)需要打開相應(yīng)的庫(kù)表。set myws = dbengine.createworkspaceadmin dbusejetset mydb = myws.opendatabase數(shù)據(jù)庫(kù)名稱 false falseset wordtab = mydb.openrecordset表名dbopendynaset 這種方法的優(yōu)點(diǎn)是代碼比較簡(jiǎn)單,要求的環(huán)境為dao 2.5/3.51,其中表名可以換成select語(yǔ)句,即根據(jù)條件打開所需要的記錄集,這種方法可脫離數(shù)據(jù)控件,可以比較方便靈活地操作數(shù)據(jù)庫(kù)表,增加了程序的靈活性。3.2 使用adodb首先,聲明一個(gè)鏈接變量,并根據(jù)需要聲明記錄集變量。dim loc
27、cnn1 as adodb.connectiondim locrst1 as adodb.recordset 建立與數(shù)據(jù)庫(kù)的鏈接,如果數(shù)據(jù)庫(kù)沒(méi)有口令,最后一行可以不寫(寫上也不會(huì)錯(cuò))。set loccnn1 = new adodb.connectionloccnn1.open provider=microsoft.jet.oledb.4.0user id=admin &_data source= & app.path & 數(shù)據(jù)庫(kù)名稱.mdb& _mode=share deny noneextended properties=persist security info=false & _jet
28、oledbdatabase password=asp561rbc 這種方法雖然代碼長(zhǎng)一些,但對(duì)數(shù)據(jù)環(huán)境要求低,且結(jié)構(gòu)清晰,所編寫的發(fā)布程序也大為減小。由于與鏈接sql server等數(shù)據(jù)庫(kù)的方法一樣,因而大量的操作數(shù)據(jù)庫(kù)的代碼相同,當(dāng)數(shù)據(jù)庫(kù)需要由access擴(kuò)充到一些大型數(shù)據(jù)庫(kù),或8由一些大型數(shù)據(jù)庫(kù)裁剪出一個(gè)簡(jiǎn)單數(shù)據(jù)庫(kù)時(shí),程序的移植會(huì)比較方便。另外,這種方法對(duì)于access97及access2000均能很好地支持,兼容性好。對(duì)于大量插入、刪除、修改等操作,只在connection層進(jìn)行即可,既可提高速度又可減少代碼。如果還要獲取具體的記錄集內(nèi)容,則須再根據(jù)條件打開具體的庫(kù)表,代碼如下:set
29、locrst1 = new adodb.recordset locrst1.cursortype = adopenkeysetlocrst1.locktype = adlockoptimisticlocrst1.open select from 表名loccnn1adcmdtext 3.3 dao、rdo、odb、cado 和jdbc 下面介紹一個(gè)實(shí)例,來(lái)消化以上的相關(guān)知識(shí)。這里我在一個(gè)程序界面下實(shí)現(xiàn)了dao,ado,odbc,oledb四種數(shù)據(jù)庫(kù)訪問(wèn)方式。 程序代碼分析:整個(gè)程序功能是選擇不同的連接方式來(lái)進(jìn)行顯示工作,三種方式顯示效果完全相同下面是主程序過(guò)程private sub comma
30、nd1_click()dim selitem as integer判斷連接數(shù)據(jù)庫(kù)的方式if option1.value = true thenselitem = 1elseif option2.value = true thenselitem = 2elseselitem = 3end ifend if選取不同的數(shù)據(jù)庫(kù)連接方式select case selitemcase 1:使用dao的數(shù)據(jù)庫(kù)連接方式call showbydaocase 2:使用ado的數(shù)據(jù)庫(kù)連接方式call showbyadocase 3:使用odbc的數(shù)據(jù)庫(kù)連接方式call showbyodbccase 4:使用oled
31、b的數(shù)據(jù)庫(kù)連接方式call showbyoledbend selectend subprivate sub showbydao()使用dao的數(shù)據(jù)庫(kù)連接方式dim db as databasedim rs as recordsetdim sqlstr$ 存放查詢語(yǔ)句set db = opendatabase(app.path & db1.mdb)(times new roman五號(hào))sqlstr = select * from 成績(jī)表set rs = db.openrecordset(sqlstr)顯示結(jié)果call gridshow(rs)end subsub showbyado()dim c
32、onn as new adodb.connectiondim rs as new adodb.recordset使用數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)conn.open dsn=data3.4 ado.net結(jié)構(gòu) ado.net是由微軟microsoft activex data object(ado)升級(jí)發(fā)展而來(lái)的。ado.net 的 數(shù)據(jù)存取 api 提供兩種數(shù)據(jù)訪問(wèn)方式,分別用來(lái)識(shí)別并處理兩種類型的數(shù)據(jù)源,即 sql server7.0(及更高的版本)和可以通過(guò) ole db進(jìn)行訪問(wèn)的其他數(shù)據(jù)源,如圖所示。為此 ado.net中包含了兩個(gè)類庫(kù),system.data.sql 庫(kù)可以直接連接到sqlser
33、ver的數(shù)據(jù),system.data.ado 庫(kù)可以用于其他通過(guò) ole db 進(jìn)行訪問(wèn)的數(shù)據(jù)源,如 access數(shù)據(jù)。 圖3.1 ado.net的結(jié)構(gòu)(圖號(hào)與圖名之間空一格,黑體5號(hào)字;插圖與圖題不得拆開排于兩頁(yè))connection 對(duì)象提供與數(shù)據(jù)源的連接。command 向數(shù)據(jù)庫(kù)發(fā)送的命令。datareader直接讀取數(shù)據(jù)流。它們與傳統(tǒng)的ado對(duì)象十分相似,但在.net 應(yīng)用程序中它們不能被直接 使用,必須通過(guò)從它們繼承而來(lái)的類進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),即只通過(guò)oledbconnection, oledb command和oledbdatareader 對(duì)象訪問(wèn)oledb提供的數(shù)據(jù); 通過(guò)sqlc
34、onnection , sqlcommand 和 sqldataadapter 訪問(wèn) sql server 的數(shù)據(jù)。dataset 對(duì)象提供數(shù)據(jù)庫(kù)的斷訪問(wèn)模式,然而它需要其他工具來(lái)初始化和創(chuàng)建數(shù)據(jù)表。dataadapter對(duì)象提供連接dataset 對(duì)象和數(shù)據(jù)源的橋梁。dataadapter 使用 command 對(duì)象在數(shù)據(jù)源中執(zhí)行 sql 命令,以便將數(shù)據(jù)加載到dataset 中,并使對(duì)dataset 中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致。 3.5 ado.net 的優(yōu)勢(shì)3.5.1 ado.net 不依賴于連續(xù)的活動(dòng)連接 使用ado.net進(jìn)行數(shù)據(jù)訪問(wèn)是以有節(jié)制使用連接的結(jié)構(gòu)為中心進(jìn)行設(shè)計(jì)的。因?yàn)閿?shù)
35、據(jù)庫(kù)并未被大部分時(shí)間空閑的連接占用,所以它可以為更多用戶提供服務(wù)。 3.5.2 使用數(shù)據(jù)命令執(zhí)行數(shù)據(jù)庫(kù)交互 在 ado.net中,可使用數(shù)據(jù)命令打包sql語(yǔ)句或存儲(chǔ)過(guò)程。 3.5.3 數(shù)據(jù)可被緩存到數(shù)據(jù)集中 ado.net 使用數(shù)據(jù)集。數(shù)據(jù)集是從數(shù)據(jù)源檢索的記錄的緩存。數(shù)據(jù)集包含一個(gè)或多個(gè)表,并且它可以包含有關(guān)這些表之間的關(guān)系和對(duì)表可包含數(shù)據(jù)的約束的信息。 3.5.4 數(shù)據(jù)集獨(dú)立于數(shù)據(jù)源 數(shù)據(jù)集是作為從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù)的緩存,它與數(shù)據(jù)庫(kù)之間沒(méi)有任何實(shí)際關(guān)系。它由從數(shù)據(jù)適配器執(zhí)行的sql命令或存儲(chǔ)過(guò)程填充。由于數(shù)據(jù)集不直接綁定到數(shù)據(jù)源,所以它是來(lái)自多個(gè)源的數(shù)據(jù)的好的集成點(diǎn)。3.6 dataset
36、 對(duì)象 ado.net 的dataset 對(duì)象是數(shù)據(jù)的內(nèi)存駐留表示形式,它提供了獨(dú)立于數(shù)據(jù)源的一致關(guān)系編程模型。dataset 可以包含應(yīng)用程序本地的數(shù)據(jù),也可以包含來(lái)自多個(gè)數(shù)據(jù)源的數(shù)據(jù)。dataset 對(duì)象模型如圖所示。 圖3.2 dataset對(duì)象模型 dataset 對(duì)象的主要屬性和方法: 3.6.1 datatable 對(duì)象datatable 對(duì)象表示 dataset 中的表。最初創(chuàng)建 datatable 時(shí),它是沒(méi)有架構(gòu)的,可通過(guò)將 datarow 對(duì)象添加到表的 rows 集合中來(lái)將數(shù)據(jù)行添加到表。 以下示例創(chuàng)建 datatable 對(duì)象的實(shí)例,并為其指定名稱“students”。
37、 dim dttable as datatable=new datatable(“students”) 3.6.2 datarow 對(duì)象表示 datatable 中的一行數(shù)據(jù)。datarow和datacolumn對(duì)象是datatable的主要組件。 使用 datarow 對(duì)象及其屬性和方法檢索、評(píng)估、插入、刪除和更新 datatable 中的值。 3.6.3 datarelation 對(duì)象 使用datarelation 對(duì)象建立表間的關(guān)系,在多個(gè)表之間導(dǎo)航。 datarelation 對(duì)象可執(zhí)行兩種功能:它可使與正使用的記錄相關(guān)的記錄可用。它可強(qiáng)制 約束的引用完整性,如刪除父記錄時(shí)刪除相關(guān)的子
38、記錄。 程序中定義和使用datarelation對(duì)象的方法如下: dim dr as datarelation dr=new datarelation(relationname as string,parentcolumn as system.data.datacolumn,childcolumn as system.data.datacolumn) 3.7 使用dataset對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)下面通過(guò)一段程序來(lái)說(shuō)明如何使用這些對(duì)象。利用ado.net8對(duì)象訪問(wèn)miscrosoft sql server數(shù)據(jù)庫(kù)(oledb對(duì)象和sql對(duì)象的使用方法基本一樣),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的顯示, 添加,刪除和
39、修改。(數(shù)據(jù)庫(kù)已經(jīng)事先建好) public class form1 inherits system.windows.forms.form dim objds as new data.dataset objds作為記錄的離線數(shù)據(jù)源 dim dtstudent as data.datatable = objds.tables.add(學(xué)生信息表) dim dsrow as datarow private sub connectdata() 建立與數(shù)據(jù)庫(kù)的連接 dim strsql as string dim strconn as stringobjda用來(lái)獲取dataset6記錄集 dim obj
40、da as sqlclient.sqldataadapter 創(chuàng)建數(shù)據(jù)庫(kù)連接的字符串,供代碼創(chuàng)建連接對(duì)象使用 strconn = data source=chengye-ys9l3va;integrated security=sspi;initial catalog=student;user id=sa;password=sa; strsql = select * from 學(xué)生信息表 數(shù)據(jù)查詢內(nèi)容字符串 objda = new sqlclient.sqldataadapter(strsql,strconn) 初始化dataadapter對(duì)象,并用它填充dataset對(duì)象 objda.fill
41、(objds, 學(xué)生信息表) end sub private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load connectdata() datagrid1.datasource = objds.tables(學(xué)生信息表).defaultview 綁定objds到datagrid1 datagrid1.captiontext = 學(xué)生基本信息管理 end sub private sub buttonadd_click(byval sender as sy
42、stem.object, byval e as system.eventargs) handles buttonadd.click, buttondel.click, buttonmodify.click select case sender.text 根據(jù)按鈕名稱選擇執(zhí)行哪種表3.1 sql語(yǔ)言的動(dòng)詞(表序與表名之間空一格,黑體5號(hào)字)sql功能動(dòng)詞數(shù)據(jù)查詢select數(shù)據(jù)定義create,drop,alter數(shù)據(jù)操縱insert,update,delete數(shù)據(jù)控制grant,revoke在sql中處理含單引號(hào)的字符串時(shí),對(duì)字符串?dāng)?shù)據(jù)都用單引號(hào)引起來(lái),如:select * from myta
43、ble where id=firstid 若其中的firstid為firstid,即中間多出一個(gè)單引號(hào),則上述寫法將導(dǎo)致錯(cuò)誤,解決的辦法是將字符串中的每一個(gè)單引號(hào)用兩雙引號(hào)替換,下面的函數(shù)strtosql完成該功能,并用單引號(hào)將處理后的字符串引起來(lái):private function strtosql(byval strvalue as string) as stringstrtosql = + replace(strvalue, , ) + end function在寫sql時(shí)如有字符串?dāng)?shù)據(jù),不管其中有沒(méi)有單引號(hào),都可以這樣使用:strvalue=firstidstrsql=select * from mytable where id=+strtosql(strvalue 結(jié)論(黑體四號(hào))經(jīng)驗(yàn)一:如果數(shù)據(jù)量不大,而且要求開發(fā)周期短的情況,建議使用dao+access雖然dao功能并不強(qiáng)大,但是其對(duì)jet引擎進(jìn)行了加速優(yōu)化處理,所以這種搭配應(yīng)該是比較好的選擇。經(jīng)驗(yàn)二:rdo當(dāng)前已經(jīng)用的很少了,一般用ado來(lái)替代。經(jīng)驗(yàn)三:使用ado開發(fā)時(shí),連接數(shù)據(jù)庫(kù)的方式有三種(,其中dsn需要用戶首先使用要將所要操縱的數(shù)據(jù)庫(kù)設(shè)置為數(shù)據(jù)庫(kù)源并給其命名。方法是在控制面板管理工具數(shù)據(jù)源(odbc)下面進(jìn)行配置。比如設(shè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 4254-20:2025 EN Agricultural machinery - Safety - Part 20: Grape,olives and coffee harvesters
- 2024年租賃合同中的維修責(zé)任
- 研究生復(fù)試課程設(shè)計(jì)問(wèn)題
- 紅色課程設(shè)計(jì)思
- 幼兒園青蛙課程設(shè)計(jì)
- 步進(jìn)式運(yùn)輸機(jī)課程設(shè)計(jì)
- 舞蹈身材訓(xùn)練課程設(shè)計(jì)
- 班主任工作中的困惑與解決之道
- 電子心率計(jì)數(shù)器課程設(shè)計(jì)
- 硬件課程設(shè)計(jì) 函數(shù)
- 2024軟件維護(hù)合同范本
- 2022-2023學(xué)年北京市海淀區(qū)七年級(jí)上學(xué)期期末語(yǔ)文試卷(含答案解析)
- 汽車尾氣排放治理作業(yè)指導(dǎo)書
- 人教版初中美術(shù)八年級(jí)上冊(cè) 第一單元 第1課 造型的表現(xiàn)力 教案
- 云南省師范大學(xué)附屬中學(xué)2025屆高二生物第一學(xué)期期末聯(lián)考試題含解析
- 人教部編版初中八年級(jí)生物上冊(cè)知識(shí)梳理
- 預(yù)應(yīng)力錨索加固監(jiān)理實(shí)施細(xì)則
- 中職2024-2025學(xué)年高一上學(xué)期期末語(yǔ)文試題06(解析版)
- 土木工程材料期末考試試題庫(kù)
- 耕作學(xué)智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- 2024年中國(guó)消防救援學(xué)院第二批面向應(yīng)屆畢業(yè)生招聘28人歷年【重點(diǎn)基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論