已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀
基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn).pdf 免費下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
大連理工大學碩士學位論文基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)姓名孟禹申請學位級別碩士專業(yè)軟件工程指導教師李明楚20081109大連理工大學專業(yè)學位碩士學位論文摘要隨著計算機網(wǎng)絡(luò)技術(shù)在教育領(lǐng)域的廣泛應(yīng)用,傳統(tǒng)的考試方式正面臨著重大的變革,而利用網(wǎng)絡(luò)來進行考試則是一種先進的考試方式,它有很多傳統(tǒng)考試所不具有的優(yōu)越性。它不但可以節(jié)省大量的人力、物力,還可以提高考試的效率和質(zhì)量。本文構(gòu)建了一個基于BS多層結(jié)構(gòu)的、以JSP技術(shù)和SQL后臺數(shù)據(jù)庫為基礎(chǔ)的在線考試系統(tǒng)。同時,論文立足于面向?qū)ο蟮目梢暬#瑧?yīng)用UML統(tǒng)一建模語言對網(wǎng)絡(luò)考試系統(tǒng)的結(jié)構(gòu)、功能等要素進行了可視化描述,并為系統(tǒng)開發(fā)的各個階段建立了可視化模型。本文還對考試系統(tǒng)中的自動組卷算法進行了詳細的描述。網(wǎng)絡(luò)考試系統(tǒng)主要具備以下功能考生信息管理、試題庫管理、在線考試、計算機自動閱卷等功能。具有六個特點一是實現(xiàn)題庫數(shù)字化。將試題輸入計算機,利用數(shù)據(jù)庫技術(shù)對試題庫進行管理,便于實現(xiàn)試題的保存、分類、檢索和制作試卷。二是隨機自動生成試卷。按照教師制定的組卷策略隨機生成試卷,提高了出卷效率和質(zhì)量。同時避免考前的試題泄密,確保考試公正合理。三是題庫適時更新。教師可以根據(jù)對考試結(jié)果的評估和分析,或者根據(jù)考試對象,對試題庫進行增加、刪除、修改、更新,增強了題庫的生命力。四是有效保存考試數(shù)據(jù)??忌脑嚲怼⒖荚嚦煽兌即鎯τ跀?shù)據(jù)庫中,方便評閱試卷,提高判卷的準確度,使考試過程規(guī)范化。五是加強安全性控制。題庫的編輯、修改,試卷的查詢、考試成績的查詢,都需要進行身份驗證。六是使用方便快捷。計算機考試系統(tǒng)提供了方便的考試環(huán)境,既節(jié)省了印刷試卷的成本,又減輕了教師批卷的負擔。關(guān)鍵詞考試系統(tǒng);組卷;自動閱卷基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)THEDESIGNANDIMPLEMENTATIONOFEXAMINATIONSYSTEMBASEDONWEBABSTRACTWITHTHEWIDERAPPLICATIONSOFTHENETWORKTECHNOLOGYINTHE6ELDOFEDUCATION,THETRADITIONALWAYOFEXAMINATIONSISFACINGMAJORCHANGES,ANDTHEUSEOFTHEINTERACTTOCONDUCTEXAMINATIONISALLADVANCEDWAYOFEXAMINATION,ITHASALOTOFADVANTAGESOVERTHETRADITIONALEXAMINATIONITCANNOTONLYSAVEALOTOFMANPOWER,MATERIAL,BUTALSOTOIMPROVETHEEFFICIENCYANDQUALITYOFTHEEXAMINATIONINTHISPAPEL“,THEARTICLEDISCUSSEDTHEMETHODOFTHEREALIZINGOFTHEONLINEEXAMINATIONSYSTEMWHIELLISABSMULTI1AYERSTRUCTUREDANDBASEDONTHEJSPANDSQLDATABASETECHNOLOGYTHEPAPERAPPLIESUMLTOCONSTRUCTMODELFROMTHESYSTEMSTRUCTUREPROCESSANDFUNCTION,DESCRIBINGTHEPROCESSFROMMODELING,DESIGNMODELINGTOIMPLEMENTMODELINGANDTHEPAPERDESCRIBESTHEALGORITHMOFAUTOGENERATINGTESTPAPERINDETAILNETWORKTESTSYSTEMSHAVETHEFOLLOWINGFUNCTIONSINFORMATIONMANAGEMENTCANDIDATES,THETESTLIBRARYMANAGEMENT,OILLINEEXAMINATIONS,THECOMPUTERAUTOMATICALLYSCORINGFUNCTIONSHAVESIXCHARACTERISTICSFIRST,THEREALIZATIONOFTHENUMBEROFQUESTIONSQUESTIONSWILLBEENTEREDINTOTHECOMPUTER,USINGDATABASETECHNOLOGYTOTHETESTLIBRARYMANAGEMENT,TOFACILITATETHEREALIZATIONOFTHEQUESTIONSPRESERVATION,CLASSIFICATION,RETRIEVALANDPRODUCTIONOFPAPERSNLESECONDISAUTOMATICALLYGENERATEDRANDOMPAPERSTEACHERSINACCORDANCEWITHTHEDEVELOPMENTOFTHETESTPAPERRANDOMLYGENERATEDSTRATEGYPAPERS,THEVOLUMEINCREASEDE銜CIENCYANDQUALITYATTHESAMETIMETOAVOIDATESTOFTHELEAKTESTTOENSRREAFAIRANDRATIONALEXAMINATION11柵THEBANKUPDATEDINATIMELYMANNERTEACHERSCANBEBASEDONTHERESULTSOFTHEEXAMINATIONANDASSESSMENTOFTHEANALYSISOREXAMINATIONINACCORDANTEWITHTHETARGET,THETESTFORTHETREASURYTOADD,DELETE,MODIFY,UPDATEANDENHANCETHEVITALITYOFTHEBANKTHEFOURTHISTOPRESERVEANEFFECFIVETESTDATACANDIDATESOFTHEPAPERS,EXAMINATIONRESULTSARESTOREDINTHEDATABASETOFACILITATETHEMARKINGEXAMINATIONPAPERS,MARKINGTOIMPROVETHEACCURACY,SOTHATTHEPROCESSOFSTANDARDIZEDTESTS111EFIFULISTOSTRENGTHENTHESECURITYCONTR01NEBANKEDITING,REVISION,THEPAPERSINQUIRY,THEEXAMINATIONRESULTSOFTHEINQUIRYWILLREQUIREALLTHENTICATIONSIXISCONVENIENTEXAMINATIONOFTHECOMPUTERSYSTEMTOFACILITATETHEEXAMINATIONOFTHEENVIRONMENT,NOTONLYSAVESTHECOSTOFPRINTINGPAPERS,BUTALSOTOREDUCET11EBURDENONTEACHERKEYWORDSEXAMINATIONSYSTEM;GENERATINGTESTPAPER;AUTOMARKINGTESTPAPERII大連理工大學學位論文獨創(chuàng)性聲明作者鄭重聲明所呈交的學位論文,是本人在導師的指導下進行研究工作所取得的成果。盡我所知,除文中已經(jīng)注明引用內(nèi)容和致謝的地方外,本論文不包含其他個人或集體已經(jīng)發(fā)表的研究成果,也不包含其他已申請學位或其他用途使用過的成果。與我一同工作的同志對本研究所做的貢獻均已在論文中做了明確的說明并表示了謝意。若有不實之處,本人愿意承擔相關(guān)法律責任。學位論文題目基王遺籩簋洼鮑耋達丕統(tǒng)鮑遮讓皇塞麴作者簽名K丕顯日期竺圣年二二月蘭日大連理工大學碩士研究生學位論文大連理工大學學位論文版權(quán)使用授權(quán)書本人完全了解學校有關(guān)學位論文知識產(chǎn)權(quán)的規(guī)定,在校攻讀學位期間論文工作的知識產(chǎn)權(quán)屬于大連理工大學,允許論文被查閱和借閱。學校有權(quán)保留論文并向國家有關(guān)部門或機構(gòu)送交論文的復印件和電子版,可以將本學位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印、或掃描等復制手段保存和匯編本學位論文。學位論文題目基王羹籩篡洼鮑耋達丕統(tǒng)鮑遮I土生塞趣作者簽名魚。日期蘭年L月二二日導師簽名益睦蕉一;日期至三竺年蘭月旦日大連理工大學專業(yè)學位碩士學位論文1緒論1。1論文的選題背景和研究意義考試一直是學校教學活動中最重要的環(huán)節(jié)之一,其主要的宗旨在于檢測知識水平。傳統(tǒng)的考試都是采用紙、筆為介質(zhì)的手工考試方式1】,即使在目前,這種傳統(tǒng)的考試方式仍然廣泛使用。但是,隨著教學手段的不斷發(fā)展,考試的類型和要求也隨之不斷提高,每逢考試,學?;ㄙM大量的人力和物力去組織考試。而在考試結(jié)束后,對大量考生的考試成績進行統(tǒng)計分析,也是一件十分煩瑣并且容易出錯的事情。還有,采用傳統(tǒng)的考試方式,試卷的反饋能力弱,試題的選擇也具有較大的隨意性,試卷的難度、區(qū)分度等指標也難以估算。成績分析也僅僅停留在平均分、及格率等表面層次上,更難以統(tǒng)計出學生對各個知識點的掌握程度并以此發(fā)現(xiàn)教師在教學中的薄弱環(huán)節(jié)。而且,即便統(tǒng)計出成績之后,學生為查看成績給教師和教務(wù)部門找的麻煩也不少,因此傳統(tǒng)的考試方式己經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展和普及,特別是INTERNET的迅速發(fā)展和廣泛應(yīng)用,將分布在世界各地的各種計算機系統(tǒng)及網(wǎng)絡(luò)用戶連接在一起,使人們可以方便地通過共同的網(wǎng)絡(luò)通信協(xié)議,在不同的網(wǎng)絡(luò)和操作系統(tǒng)間交換數(shù)據(jù)。近年來,現(xiàn)代遠程教育作為現(xiàn)代教育技術(shù)的形式,給傳統(tǒng)的教育思想和技術(shù)帶來了革命性的變革,己成為建設(shè)學習型社會,推動教育信息化進程的必然要求【21。它可以最大限度地利用各種資源,將各個學校的優(yōu)勢教育資源、優(yōu)秀的教師、最好的教學成果通過網(wǎng)絡(luò)傳播到四面八方,使任何人、在任何時間、任何地點、從任何章節(jié)開始、學習任何課程,為學生的自主學習、個性化學習提供了必要條件,同時也需要提供相應(yīng)的測試或考試系統(tǒng)以檢測學習的成效。這些都使得考試的手段和媒介發(fā)生著革命性的變化,傳統(tǒng)的考試方式和手段正面臨著強烈的沖擊。在網(wǎng)絡(luò)技術(shù)已經(jīng)逐漸滲入社會生活各個層面的今天,傳統(tǒng)的考試方式也面臨著變革,而網(wǎng)絡(luò)考試則是一個很重要的方向?;赪EB技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)是一種先進的考試方式,它比傳統(tǒng)的考試方式更具優(yōu)越性1考試形式靈活多樣。借助因特網(wǎng)進行考試,既可以在本地進行,也可以在異地進行,大大拓展了考試的靈活性。同時考試不受時間和空間的限制。2節(jié)約考試成本。基于WEB技術(shù)的在線式考試系統(tǒng)實現(xiàn)無紙化,不需要印刷試卷,可以節(jié)省大量的人力、物力和財力。3數(shù)字化的試題庫。在建立試題庫時,將課程考試的題目按要求錄入到數(shù)據(jù)庫中,既利于長期保存,減少老師重復翻查資料進行出題的工作;又能夠試題庫進行科學的管基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)理,便于對考試內(nèi)容進行分類、檢索,為編制試卷提供了高效率和低成本的手段;教師還可以依據(jù)考試的分析結(jié)果,及時對試題庫進行增加、刪除、修改、更新,增強了題庫的生命力。4考試系統(tǒng)安全高效。試題內(nèi)容、考試答案存放在服務(wù)器中,考生需通過身份驗證才能夠使用考試系統(tǒng),這樣考試的公平性、答案的安全性可以得到有效的保證。同時題庫的編輯、修改,試卷的查詢、考試成績的查詢,都需要進行身份驗證。5自動判卷快捷準確。考試系統(tǒng)采用大量標準化試題,便于計算機根據(jù)評分標準自動評分,無需人工閱卷,減輕了教師改卷的負擔,提高了閱卷的效率和準確度【31,避免了人工判卷時經(jīng)常出現(xiàn)的錯判、漏判和分數(shù)計算錯誤等情況,使考試過程更加規(guī)范化。還可以直接把成績送到數(shù)據(jù)庫中,進行統(tǒng)計、排序等操作。與此同時,由于辦學規(guī)模的擴大,目前普通高校普遍存在師資力量不足的現(xiàn)象教師工作量大,將大部分精力放在上課、作業(yè)、考試上,難以抽出更多的時間提高自身素質(zhì)或進行教改和科研工作。同時,作為新形勢下教學方法和考試方法的數(shù)字化改革,改變傳統(tǒng)的計算機基礎(chǔ)課程的考試手段具有重要意義141I1,2論文的主要內(nèi)容本論文的主要內(nèi)容是遠程考試系統(tǒng)的研究與實現(xiàn)。采用了面向?qū)ο蠓治雠c設(shè)計的思想,使用UML統(tǒng)一建模語言對遠程考試系統(tǒng)建模,研究和開發(fā)了適宜于本項目特點的基于BS模式的網(wǎng)絡(luò)考試系統(tǒng)。論文共分六章,闡述了該系統(tǒng)的總體結(jié)構(gòu),功能特點,設(shè)計方案。并對該系統(tǒng)所采用的相關(guān)技術(shù)和實現(xiàn)方法進行了重點介紹。第一章論述了考試系統(tǒng)的開發(fā)背景及現(xiàn)實意義。第二章簡要介紹了系統(tǒng)開發(fā)過程中所用到的各項技術(shù),如JSP、UML方面的相關(guān)知識。第三章為考試系統(tǒng)的需求分析,分析了考試系統(tǒng)的功能需求,并對系統(tǒng)進行了用例建模。第四章對考試系統(tǒng)中的各主要功能及數(shù)據(jù)庫進行了詳細設(shè)計。第五章詳細介紹了系統(tǒng)中的一項關(guān)鍵技術(shù),即基于遺傳算法的自動組卷算法。第六章是在線考試系統(tǒng)的實現(xiàn),并以系統(tǒng)中的幾項主要功能為例,詳細介紹了其工作原理及工作流程。一2一大連理工大學專業(yè)學位碩士學位論文2系統(tǒng)開發(fā)中的相關(guān)技術(shù)介紹21統(tǒng)一建模語言UML軟件系統(tǒng)的開發(fā)是一個非常復雜的系統(tǒng)過程,為了更好的理解整個軟件系統(tǒng),需要建立系統(tǒng)模型。統(tǒng)一建模語言UNIFIEDMODELINGLANGUAGE,UML56是一種用來繪制軟件藍圖的標準語言。通過UML可以對軟件制品進行可視化、詳述、構(gòu)造和文檔化。從企業(yè)信息系統(tǒng)到基于WEB的分布式應(yīng)用,甚至對于嚴格的實時嵌入式系統(tǒng),都可以通過UML進行建模。這種建模語言得到了“UML伙伴聯(lián)盟“的應(yīng)用與反饋,并得到工業(yè)界的廣泛支持,由OMG組織OBJEZTMANAGEMENTGROUP采納作為業(yè)界標準【7】O目前,OMG組織己經(jīng)將UML作為公共可得到的規(guī)格說明提交給國際標準化組織INTERNATIONALORGANIZATIONFORSTANDARDIZATION,ISO進行國際標準化,UML即將成為信息技術(shù)的國際標準引。211UML的概念模型為了理解UML,需要形成一個語言的概念模型。切L包括三個主要要素UML的基本構(gòu)建塊、支配這些構(gòu)建塊放在一起的規(guī)則和一些運用于整個UML的公共機制。這三部分構(gòu)成了UML的概念模型【9】。1UML的基本構(gòu)建塊UML的詞匯表中包括三種構(gòu)建塊事物、關(guān)系和圖。事物是模型中最有代表性成分的抽象,關(guān)系把事物結(jié)合在一起,圖聚集相關(guān)的事物。UML中事物可分為四種結(jié)構(gòu)事物、行為事物、分組事物、注釋事物。結(jié)構(gòu)事物結(jié)構(gòu)事物通常是UML模型中的靜態(tài)部分,描述概念或物理元素。主要包括以下七種類、接口、協(xié)作、用例、主動類、構(gòu)件和節(jié)點。類是對一組具有相同屬性、相同操作、相同關(guān)系和相同語義的對象的描述。一個類實現(xiàn)一個或多個接口。接口描述一個類或構(gòu)件的一個服務(wù)的操作集。協(xié)作定義一個交互,它是由一組共同工作以提供某協(xié)作行為的角色和其他元素構(gòu)成的一個群體,這些協(xié)作行為大于所有元素的各自行為的總和。用例是對一組動作序列的描述。主動類是一個類,它的對象至少擁有一個線程或進程。構(gòu)件是系統(tǒng)中物理的、可替代的部件,它遵循且提供一組接口的實現(xiàn)。節(jié)點是在運行時存在的物理元素,它表示一種可計算的資源,至少有一些記憶能力和處理能力?;谶z傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)行為事物行為事物是UML模型的動態(tài)部分,描述跨時間和空間的行為,主要包括交互和狀態(tài)機。交互描述的是在特定語境中共同完成1定任務(wù)的一組對象之間消息的交換。狀態(tài)機描述一個對象或一個交互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列。分組事物分組事物是UML模型的組織部分。在所有的分組事物中,最主要的分組事物是包。包是把元素組織成組的一種機制。結(jié)構(gòu)事物、行為事物甚至其他的分組事物都可以組合成包。注釋事物注釋事物是UML模型的解釋部分。這些注釋事物用來描述、說明和標注模型的任何元素。在UML中主要有四種關(guān)系依賴、關(guān)聯(lián)、泛化和實現(xiàn)。依賴是兩個事物間的語義關(guān)系,表示其中一個事物獨立事物發(fā)生變化會影響另一個事物依賴事物。關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,它描述一組鏈,即對象之間的連接。聚合描述了整體和部分之間的結(jié)構(gòu)關(guān)系。泛化是一種特殊一般關(guān)系,特殊子元素的對象可替代一般元素父元素的對象。實現(xiàn)是指一個類定義一個操作接口,而另一個類實現(xiàn)這個操作接口的這樣一種關(guān)系。在UML中包括九種圖類圖、對象圖、用例圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、構(gòu)件圖和實施副10。111。類圖CLASSDIAGRAM展現(xiàn)一組對象、接口、協(xié)作和它們之間的關(guān)系,是UML建模中最常見的圖。對象圖OBJECTDIAGRAM展現(xiàn)一組對象以及它們之間的關(guān)系,用以說明類圖中所反應(yīng)的事物實例的數(shù)據(jù)結(jié)構(gòu)和靜態(tài)快照。對象圖表達系統(tǒng)的靜態(tài)設(shè)計視圖或靜態(tài)過程視圖,除了現(xiàn)實和原型方面的因素外,它與類圖作用是相同的。用例圖USECASEDIAGRAM展現(xiàn)一組用例、參與者一種特殊的類及其之間的關(guān)系??梢杂糜美龍D描述系統(tǒng)的靜態(tài)使用情況。在對系統(tǒng)行為組織和建模方面,用例圖是相當重要的。順序圖SEQUEILCEDIAGRAM和協(xié)作圖COLLABORATIONDIAGRAM統(tǒng)稱為交互圖INTERACTIONDIAGRAM,交互圖展現(xiàn)了一種交互,它由一組對象及其之間的關(guān)系組成,包括在它們之間可能發(fā)送的信息。其中,順序圖SEQUEILCEDIAGRAM是一種強調(diào)消息的時間順序的交互圖,而協(xié)作圖COLLABORATIONDIAGRAM強調(diào)收發(fā)信息的對象的結(jié)構(gòu)組織。順序圖和防作圖是同構(gòu)的,這意味著它們是可以相互轉(zhuǎn)換的。狀態(tài)圖STATEDIAGRAM展現(xiàn)一個狀態(tài)機,它由狀態(tài)、轉(zhuǎn)換、事件和活動組成。一4一大連理工大學專業(yè)學位碩士學位論文活動圖ACTIVITYDIAGRAM顯示了系統(tǒng)中從活動到活動的流,它對于系統(tǒng)的功能建模特別重要,強調(diào)對象間的控制流程。組件圖COMPONENTDIAGRAM展現(xiàn)了一組構(gòu)件之間的組織和依賴關(guān)系。配置圖DEPLOYMENTDIAGRAM展現(xiàn)系統(tǒng)運行時處理節(jié)點以及其中的構(gòu)件的配置。需要說明的是UML并不限定僅使用以上9種圖,開發(fā)工具可以提供符合UML語義的其他種類的圖,但到目前為止,這9種圖在實際應(yīng)用中是最常用的。使用這9種圖能基本實現(xiàn)應(yīng)用系統(tǒng)的建模問題。F2UML規(guī)則UML用于描述事物的語義規(guī)則分別是為事物、關(guān)系和圖命名給一個名字以特定含義的語境,即范圍;怎樣使用或看見名字,即可見性;事物如何正確、一致地相互聯(lián)系,既完整性;運行或模擬動態(tài)模型的含義是什么,即執(zhí)行。另外,UML還允許在一定的階段隱藏模型的某些元素、遺漏某些元素以及保證模型的完整性,但模型逐步地要達到完整和一致。在軟件開發(fā)的生命周期內(nèi),隨著系統(tǒng)細節(jié)的展開和變動,不可避免地要出現(xiàn)一些不太規(guī)范的模型。UML的規(guī)則鼓勵你專注于最重要的分析、設(shè)計和實現(xiàn)問題。這些問題將促使模型隨時間的推移而具有良好的結(jié)構(gòu)。3UML的公共機制有四種在整個UML語言中一致應(yīng)用的機制,使該語言變得較為簡單。這四種機制是規(guī)格說明、修飾、通用劃分和擴展機制。212IIML的建模機制從應(yīng)用的角度看,當采用面向?qū)ο蠹夹g(shù)設(shè)計系統(tǒng)時,首先是描述;其次根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三步是描述系統(tǒng)的行為,其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類圖、對象圖、構(gòu)件圖和實施圖等5個圖形,是標準建模語言UML的靜態(tài)建模機制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動圖、順序圖和合作圖等四個圖形,是標準建模語言UML的動態(tài)建模機制。因此,標準建模語言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機制和動態(tài)建模機制兩大類121。1靜態(tài)建模機制任何建模語言都以靜態(tài)建模機制為基礎(chǔ),標準建模語言UML也不例外UML的靜態(tài)建模機制包括用例圖USECASEDIAGRAM、類圖CLASSDIAGRAM、對象圖OBJECTDIAGRAM、包PACKAGE、構(gòu)件圖COMPONENTDIAGRAM和實施圖DEPLOYMENTDIAGRAM。基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)用例圖用例圖展現(xiàn)了一組用例、參與者以及它們之間的關(guān)系??梢杂糜美龍D描述系統(tǒng)的靜態(tài)使用情況。在對系統(tǒng)行為組織和建模方面,用例圖是相當重要的。類圖類圖展現(xiàn)了一組類、接口和協(xié)作及它們間的關(guān)系,在建模中所建立的最常見的圖就是類圖。用類圖說明系統(tǒng)的靜態(tài)設(shè)計視圖,包含主動類的類圖一專注于系統(tǒng)的靜態(tài)進程視圖。系統(tǒng)可有多個類圖,單個類圖僅表達了系統(tǒng)的一個方面。要在高層給出類的主要職責,在低層給出類的屬性和操作。對象圖對象圖展示了一組對象及它們間的關(guān)系,用對象圖說明類圖中所反映的事物實例的數(shù)據(jù)結(jié)構(gòu)和靜態(tài)快照。對象圖表達了系統(tǒng)的靜態(tài)設(shè)計視圖或靜態(tài)過程視圖,除了現(xiàn)實和原型方面的因素外,它與類圖的作用是相同的。構(gòu)件圖構(gòu)件圖展現(xiàn)了一組構(gòu)件之間的組織和依賴,用于對原代碼、可執(zhí)行的發(fā)布、物理數(shù)據(jù)庫的系統(tǒng)建模。實施圖實施圖展現(xiàn)了對運行時處理節(jié)點以及其中構(gòu)件的配置。它描述系統(tǒng)硬件的物理拓撲結(jié)構(gòu)包括網(wǎng)絡(luò)布局和構(gòu)件在網(wǎng)絡(luò)上的位置,以及在此結(jié)構(gòu)上執(zhí)行的軟件即運行時軟件在節(jié)點中的分布情況。用實施圖說明系統(tǒng)結(jié)構(gòu)的靜態(tài)部署圖,即說明分布、交付和安裝的物理系統(tǒng)。2動態(tài)建模機制系統(tǒng)的動態(tài)行為主要是由交互圖順序圖和協(xié)作圖、狀態(tài)圖和活動圖來表達。順序圖順序圖展現(xiàn)了一組對象和由這組對象收發(fā)的消息,用于按時間順序?qū)刂屏鹘?。用順序圖說明系統(tǒng)的動態(tài)視圖。協(xié)作圖協(xié)作圖展現(xiàn)了一組對象,這組對象間的連接以及這組對象收發(fā)的消息。它強調(diào)收發(fā)消息的對象的結(jié)構(gòu)組織,按組織結(jié)構(gòu)對控制流建模。狀態(tài)圖狀態(tài)圖展現(xiàn)了一個特定對象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)間的轉(zhuǎn)移。一個狀態(tài)圖描述了一個狀態(tài)機,用狀態(tài)圖說明系統(tǒng)的動態(tài)視圖。它對于接口、類或協(xié)作的行為建模尤為重要,可用它描述用例實例的生命周期?;顒訄D活動圖是一種特殊的狀態(tài)圖,描述需要做的活動、執(zhí)行這些活動的順序多為并行的以及工作流完成工作所需要的步驟。它對于系統(tǒng)的功能建模特別重要,強調(diào)對象間的控制流程。高層活動圖用于表示需要完成的一些任務(wù),即用于分析用例,理解涉及多個用例的工作流、多線程及并行,顯示相互聯(lián)系的行為整體,還可用于對企業(yè)過程建模,對系統(tǒng)的功能建模。低層活動圖用于表示類的方法。但活動圖不適用于描述動作與對象間的關(guān)系,顯示對象間的合作以及顯示對象在生命周期內(nèi)的運轉(zhuǎn)情況。一6一大連理工大學專業(yè)學位碩士學位論文22DSP概述當今世界,計算機技術(shù)飛速發(fā)展,網(wǎng)絡(luò)正深入到人們生活的每一個部分,人們從網(wǎng)絡(luò)上獲取信息、享受服務(wù)、交流情感,網(wǎng)絡(luò)正在迅速改變著我們的生存方式。同時,網(wǎng)絡(luò)的發(fā)展也給了WEB技術(shù)提供了廣闊的應(yīng)用前景,各種基于WEB的技術(shù)正越來越受到人們的歡迎。JSP是JAVASERVERPAGE的簡稱,是SUN公司推出的服務(wù)器端嵌入式腳本語言。JSP是J2EE平臺面向多層體系結(jié)構(gòu)下表示層模式的關(guān)鍵技術(shù)。JSP技術(shù)基于平臺和服務(wù)器的互相獨立,輸入支持來自廣泛的,專門的,各種工具包,服務(wù)器的組件和數(shù)據(jù)庫產(chǎn)品開發(fā)商所提供。由于JSP頁面的內(nèi)置腳本語言是基于JAVA程序設(shè)計語言的,而且所有的JSP頁面都被編譯成為JAVASERVLET,JSP頁面就具有JAVA技術(shù)的所有優(yōu)點,包括健壯的存儲管理和安全性。幾乎所有平臺都支持JAVA,JSPJAVABEAN可以在所有平臺下通行無阻。著名的WEB服務(wù)器APACHE已經(jīng)能夠支持JSP。由于APACHE廣泛應(yīng)用在NT、UNIX和LINUX上,因此JSP有更廣泛的運行平臺。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面UNIX的優(yōu)勢仍然很大,而新崛起的LINUX更是來勢不小。從一個平臺移植到另外一個平臺,JSP和JAVABEAN甚至不用重新編譯,因為JAVA字節(jié)碼都是標準的與平臺無關(guān)的。JAVA中連接數(shù)據(jù)庫的技術(shù)是JDBCJAVADATABASECONNECTIVITY。很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動程序,JAVA程序就通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。SUN公司還開發(fā)了JDBCODBCBRIDGE,用此技術(shù)JAVA程序就可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動程序,所以JAVA程序能訪問諸如ORACLE、SYBASE、SQLSERVER和ACCESS等數(shù)據(jù)庫【L31。使用JSP技術(shù),WEB頁面開發(fā)人員可以使用HTML或者XML標識來設(shè)計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識JAVABEANS組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。如果核心邏輯被封裝在標識和BEAN中,那么其他人,如網(wǎng)站管理員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容生成。在服務(wù)端,JSP引擎解釋JSP標識和小腳本。生成所請求的內(nèi)容例如,通過訪問JAVABEAN組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文件,并且將結(jié)果以HTML或者XML頁面的形式發(fā)送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的WED瀏覽器的完全可用性【】51?;谶z傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)目前,JSP與ASP、PHP技術(shù)都是流行的應(yīng)用于服務(wù)器端腳本技術(shù),其中,JSP能用JAVABEANS技術(shù)封裝,達到商業(yè)邏輯的目的,ASP與之對應(yīng)的是采用了COM組件,因此兩者都能用于開發(fā)商業(yè)邏輯,PHP則更像于一個純腳本,僅適合于普通的網(wǎng)站開發(fā),而不能用作商業(yè)邏輯。JSP與ASP相比,JSP具有跨平臺、安全、強大的可伸縮性的特點,雖然ASP的最新版本ASPNET與原來的ASP性質(zhì)完全是不同的,它和JSP一樣,都是一種編譯性的腳本,本身完全與NET框架結(jié)合,完美的支持XML的各種應(yīng)用。但是無論是ASP還是ASPNET,它都擺脫不了WINDOWS平臺本身,這是ASP一個致命的缺點【】6】。23ORVIET技術(shù)SERVLET作為JAVA技術(shù)平臺支持WEB應(yīng)用的突破口,解決了CGI和專用API存在的問題,SERVLETAPI很簡單,幾乎所有的WEB服務(wù)器都支持SERVLET程序。它通過多線程解決了CGI的性能問題。同時,SERVLET是用JAVA編寫的,繼承了JAVA的跨平臺特性,以及兼容性和安全性,因此SERVLET被認為CGI的替代語言。SERVLET是JAVA20中新增的功能,它與APPLET相對應(yīng),APPLET運行在客戶端的瀏覽器上,而SERVLET運行在服務(wù)器端。SERVLET是服務(wù)器小程序,運行于服務(wù)器端,與運行于客戶端的小程序ADPLET相對應(yīng)。它們都是由JAVA編寫的小程序,都沒有MAIN方法,只有一些特定的方法用于啟動、執(zhí)行和退出,不同的是SERVLET不提供用戶界面。1SERVLET運行機理SERVLET是一個由SAVLET容器管理的可以產(chǎn)生動態(tài)內(nèi)容的WEB構(gòu)件;SERVLET是一個小的、與平臺無關(guān)的JAVA類,它實現(xiàn)了JAVA的SERVLET接口,被編譯成與平臺無關(guān)的字節(jié)碼,然后加載到SERVLET容器中運行,而且整個生命周期都由SERVLET容器管理。SERVLET同客戶端的交互遵循“請求響應(yīng)“模型,這個模型基于超文本傳輸協(xié)議HRRP的基本機理,所以SERVLET很適合開發(fā)WEB應(yīng)用。這些請求響應(yīng)過程也由SERVLET容器管理,SERVLET容器是運行在JAVA虛擬機上的管理器,它同WEB服務(wù)器或應(yīng)用服務(wù)器相結(jié)合提供網(wǎng)絡(luò)服務(wù),在WEB應(yīng)用中,SERVLET可用于接收來自WEB瀏覽器的HTRP請求,動態(tài)的生成響應(yīng),然后發(fā)送包含處理結(jié)果的HRFP響應(yīng)到瀏覽器【17】。2SERVLET的工作流程為客戶端WEB瀏覽器通過H了RP協(xié)議提出請求;一8一大連理工大學專業(yè)學位碩士學位論文WEB服務(wù)器接受該客戶端請求并將其發(fā)送給SERVLET,如果需要處理的SERVLET尚未被加載,WEB服務(wù)器加載這個SERVLCT給JAVA虛擬機并執(zhí)行它;SERVLET接收該HTRP請求并進行相應(yīng)處理;SERVLET向WEB服務(wù)器返回應(yīng)答;WEB服務(wù)器把從SERVLET收到的應(yīng)答發(fā)送給客戶端瀏覽器。SERVLET程序是在SERVLET容器管理下運行,SERVLET容器按照一個嚴格的生命周期管理SERVLET,這個生命周期定義了SERVLET如何被加載,實例化,初始化,處理客戶端請求,最后結(jié)束服務(wù),這個周期稱為SERVLET生命周期。生命周期的每一步對應(yīng)了SERVLET接口的不同方法,SERVLET程序?qū)崿F(xiàn)這些方法,SERVLET容器則按照生命周期調(diào)用這些方法,管理和運行SERVLET程序的運行的實例。3SERVLET的優(yōu)勢SERVLET是持久的,SERVLET只需WEB服務(wù)器加載一次,而且可以在不同的請求之間保持服務(wù)。SERVLET是快速的。SERVLET在響應(yīng)請求后,能夠在后臺持續(xù)運行,在多線程中處理多個請求。SERVLET是平臺無關(guān)的。SERVLET是使用JAVA編寫的,所以是與平臺無關(guān)的。SERVLET能夠保持狀態(tài)。SERVLET一旦被服務(wù)器加載,就能夠保持其狀態(tài)信息,只要SERVLET就沒有被改變,它就不需要被重新加載。4JSP與SERVLET的比較1819】JSP與SCRVLET是類似的。JSP的運作方式取決與JSP引擎的運作方式,它是編譯式運作方式。JSP引擎的任務(wù)主要是把工作移交給SERVLET引擎。除去編譯的部分,JSP和SERVLET的差異不大,JSP引擎是架構(gòu)在SERVLET引擎之上的,以SERVLET的形式存在,利用SERVLET引擎將JSP文檔轉(zhuǎn)譯成SERVLET原始碼,再調(diào)用JAVA編譯器編譯成SERVLET,所以第一次執(zhí)行JSP需要較多的時間,以后執(zhí)行JSP與SERVLET所需的時間相同。SUN公司先推出SERVLET,其功能較強大,體系設(shè)計也先進,但在輸出HTM語句時還是采用了CGI方式,是一句一句的輸出,所以編寫和修改HTML非常不方便。一個網(wǎng)絡(luò)項目一般分成表示層,業(yè)務(wù)層和數(shù)據(jù)層。SERVLET用來寫業(yè)務(wù)層很強大,但對于寫表示層就很不方便。JSP主要是為了方便寫表示層而設(shè)計的。它既可以書寫表示層,也可以寫事務(wù)層。一般JSP書寫表示層的內(nèi)容,而把數(shù)據(jù)實現(xiàn)兩層的結(jié)合。SERVLET執(zhí)行效率比JSP高,但JSP編寫方便,因此,在需要執(zhí)行效率高的地方,SERVLET仍然有它的優(yōu)勢。一9一基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)24JAVABEAN241JAVABEAN概述JAVA的軟件稱為JAVABCAN,或簡稱BEAN。按照JAVASOIT給出的定義,BEAN是能夠在構(gòu)造工具中進行可視化操作的可重用軟件。由于BEAN是用JAVA寫的,所以JAVA環(huán)境語言所固有的特性將會在BEAN中得到很好的體現(xiàn),從而可使BEAN極少擁有其他語言經(jīng)常出現(xiàn)的內(nèi)存泄露問題及指針錯用問題,并能夠?qū)崿F(xiàn)不同硬件平臺之間的互操作特性JAV如EAN通過其內(nèi)部的JAVA虛擬機實現(xiàn)對多平臺的支持。BEAN是一個可以在JAVA編程環(huán)境中可視化處理的可重用軟件組件。一個BEAN和一個JAVAAPPLET相似,是一個非常簡單的遵守某些協(xié)議的JAVA類。BEAN通常含有源文件,可以包裝成一個JAR格式的文件。開發(fā)者可以通過支持BEAN的開發(fā)工具,直接使用現(xiàn)在的BEAN,也可以在開發(fā)工具容器中,對組件進行必要的修改和測試,而不用編寫和編譯程序。在JAVA模型中,組件可以修改或與其他組件組合生成新組件或完整的應(yīng)用程序【201。大多數(shù)BEAN通常是中小型控制程序,但也可以是生成包裝整個應(yīng)用程序的BEAN。BEAN可以表示為簡單的GUI,如按鈕,列表等。但也可以生成不可見BEAN,用于接收事件和在幕后工作。所以,可把BEAN看成是用于接收事件和處理事件以便進行某個操作的組件。一個BEAN由3部分組成21】1屬性PROPERTYBEAN屬性就是對象的屬性,提供了屬性讀取和設(shè)置的接口支持。2方法METHODBEAN本身就是JAVA對象,它嚴格遵守面向?qū)ο蟮念愒O(shè)計邏輯,不讓外界訪問其任何字段,方法調(diào)用是調(diào)用BEAN的唯一途徑。3事件EVENTBEAN與其他組件交流信息的主要方式是發(fā)送和接收事件。這與對象之間信息通信類似。242JAVABEAN的用途JAVABEAN在WEB應(yīng)用程序中的用途主要有以下方面1用來封裝公共的功能。2當某些功能在程序中被多次使用,就可以JAVABEAN將它們封裝成一個可重用的構(gòu)件,這既方便了程序設(shè)計,也使程序結(jié)構(gòu)更加合理。3用來實現(xiàn)業(yè)務(wù)邏輯的實體。大連理工大學專業(yè)學位碩士學位論文4一個應(yīng)用系統(tǒng)通常分成表示邏輯和業(yè)務(wù)邏輯等部分。表示邏輯負責實現(xiàn)應(yīng)用系統(tǒng)的頁面顯示部分,這部分用HTML,XML,JSP,SERVLET等技術(shù)來實現(xiàn)。業(yè)務(wù)邏輯負責實現(xiàn)應(yīng)用程序的業(yè)務(wù)功能的部分,如取送數(shù)據(jù)到數(shù)據(jù)庫等,這部分可用成熟的面向?qū)ο蟮募夹g(shù)和語言來實現(xiàn),更好的方法是使用JAVABEAN來實現(xiàn)業(yè)務(wù)邏輯,因為JAVABEAN可封裝業(yè)務(wù)實體的功能,達到軟件重用的思想,簡化了程序設(shè)計。5作為在程序各個部分之間傳遞數(shù)據(jù)的實體??梢栽诔绦虻臉I(yè)務(wù)邏輯中設(shè)置JAVABEAN的屬性,在其他程序中讀取BEAN的屬性而獲得數(shù)據(jù)。這樣,JAVABEAN作為程序各個部分之間傳遞數(shù)據(jù)的實體,達到了程序中傳遞數(shù)據(jù)的目的。25JDBC數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)采用三層結(jié)構(gòu)。客戶端瀏覽器不直接訪問位于服務(wù)器上的后臺數(shù)據(jù)庫,而是通過位于中間層的WEB服務(wù)器和支持WEB的應(yīng)用服務(wù)器訪問數(shù)據(jù)庫。中間層程序可以使用SERVLET,JSP,JAVABEAN來實現(xiàn),中間層通過JDBC訪問數(shù)據(jù)岸22】。有了JDBC就可以讓程序員用JAVA語言來編寫完整的數(shù)據(jù)庫方面的應(yīng)用程序。另外也可以對保存在多種不同的數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)進行操作,而與數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)存儲格式無關(guān)。同時由于JAVA語言與平臺的無關(guān)性,所以不必在不同的系統(tǒng)平臺下編寫不同的數(shù)據(jù)庫應(yīng)用程序【231。251JDBC的使用方法數(shù)據(jù)庫系統(tǒng)在現(xiàn)代信息系統(tǒng)中已經(jīng)成為一個不可或缺的組成部分,現(xiàn)在很難想象一個信息系統(tǒng)不建立在數(shù)據(jù)庫的基礎(chǔ)之上。在使用JAVA技術(shù)開發(fā)WEB應(yīng)用程序時,對數(shù)據(jù)庫的訪問技術(shù)是最重要的組成技術(shù)之一。JDBC是一種用于執(zhí)行SQL語句的JAVAAPI,它由一組用JAVA編程語言編寫的類和接口組成,它為數(shù)據(jù)庫開發(fā)人員提供了一組標準的API。它同JAVA中的其他API一樣,可以用于JSP程序中構(gòu)造各種數(shù)據(jù)庫對象,編寫數(shù)據(jù)庫應(yīng)用程序,與數(shù)據(jù)庫建立連接,發(fā)送SOL語句和處理結(jié)果。ODBC是一個WINDOWS平臺上的訪問數(shù)據(jù)庫的標準API,使用ODBC使得應(yīng)用程序同具體的數(shù)據(jù)庫接口分離開來,應(yīng)用程序?qū)Σ煌瑪?shù)據(jù)庫具有兼容性和可移植性,無論任何一個數(shù)據(jù)庫,采用ODBC接口都可以按同樣的方式進行訪問。巾BC提供給JAVA程序使用的,它將各種數(shù)據(jù)庫的差異對JAVA程序屏蔽了起來,JAVA程序可以使用同樣的可移植的接口訪問數(shù)據(jù)庫,是JAVA的應(yīng)用程序屏蔽了數(shù)據(jù)庫領(lǐng)域,同時保持了JAVA語言的“一次編寫,各處運行“的優(yōu)點。JDBC的優(yōu)點表現(xiàn)在如下幾個方面充分利用已有的數(shù)據(jù)資源,使用JDBC,JAVA程序可以很方便的訪問已有的數(shù)據(jù)庫資源,這使得我們可以引入JAVA技術(shù),而不必丟棄基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)以前的系統(tǒng)和數(shù)據(jù),這對JAVA技術(shù)的推廣十分重要。其飲,開發(fā)簡便,JDBCAPI比較簡單,這使得使用JAVA開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)十分方便。其三,零配置,JDBC的一個突出優(yōu)點是JDBC本身無需任何配置,JDBCAPI已經(jīng)是JAVASDK的標準組成部分,因此安裝了JAVASDK,就安裝了JDBC。在JDBC中,所有建立數(shù)據(jù)庫連接所需的信息都通過JDBCURL定義,也不需要任何配置。25。2JDBC的體系結(jié)構(gòu)1JDBC的組成與工作機制3DBC是實現(xiàn)JAVA應(yīng)用程序與各種不同數(shù)據(jù)庫對話的一種機制。JDBC由兩部分與數(shù)據(jù)庫獨立的API組成,一部分是面向程序開發(fā)人員的JDBCAPI,另一部分是面向底層的JDBCDRIVERAPI。JDBC提供了一個通用的JDBCDRIVERMANAGER,用來管理各種數(shù)據(jù)庫軟件商提供的JDBC驅(qū)動程序,從而訪問其數(shù)據(jù)庫。此外,對沒有提供相應(yīng)JDBC驅(qū)動程序的數(shù)據(jù)庫系統(tǒng),開發(fā)了特殊的驅(qū)動程序JDBCODBC橋,該驅(qū)動程序支持JDBC通過現(xiàn)有的ODBC驅(qū)動程序訪問其數(shù)據(jù)庫系統(tǒng)。JDBC的基本層次結(jié)構(gòu)由JAVA程序、JDBC驅(qū)動程序管理器、驅(qū)動程序和數(shù)據(jù)庫四部分組成。JAVA程序JAVA程序包括JAVA應(yīng)用程序和JAVA小應(yīng)用程序,主要是根據(jù)JDBC方法實現(xiàn)對數(shù)據(jù)庫的訪問和操作。其主要任務(wù)有請求與數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫發(fā)送SQL請求;為結(jié)果集定義存儲應(yīng)用和數(shù)據(jù)類型查詢結(jié)果;處理錯誤;控制傳輸、提交及關(guān)閉連接等操作。JDBC驅(qū)動程序管理器它能夠動態(tài)地管理和維護數(shù)據(jù)庫查詢所需要的所有驅(qū)動程序?qū)ο?,實現(xiàn)JAVA程序與特定驅(qū)動程序的連接,從而體現(xiàn)JDBC的“與平臺無關(guān)一這一特點。其主要任務(wù)有為特定數(shù)據(jù)庫選擇驅(qū)動程序處理JDBC初始化調(diào)用;為每個驅(qū)動程序提供JDBC功能的入口;為JDBC調(diào)用執(zhí)行參數(shù)等。驅(qū)動程序驅(qū)動程序處理JDBC方法,向特定數(shù)據(jù)庫發(fā)送SQL請求,并為JAVA程序獲取結(jié)果。在必要的時候,驅(qū)動程序可以翻譯或優(yōu)化請求。使SQL請求符合DBMS支持的語言。其主要任務(wù)有建立與數(shù)據(jù)庫的連接;向數(shù)據(jù)庫發(fā)送請求;用戶程序請求時,執(zhí)行翻譯將錯誤代碼格式化成標準的JDBC錯誤代碼等。JDBC是獨立于數(shù)據(jù)庫管理系統(tǒng)的,而每個數(shù)據(jù)庫系統(tǒng)均有自己的協(xié)議與客戶機通信,因此,JDBC利用數(shù)據(jù)庫驅(qū)動程序來使用這些數(shù)據(jù)庫引擎。JDBC驅(qū)動程序由數(shù)據(jù)庫軟件商和第三方軟件商提供,因此,根據(jù)編程所使用的數(shù)據(jù)庫系統(tǒng)不同,所需要的驅(qū)動程序也有所不同。數(shù)據(jù)庫指JAVA程序需要訪問的數(shù)據(jù)庫及其數(shù)據(jù)庫管理系統(tǒng)。2JDBC驅(qū)動程序的分類大連理工大學專業(yè)學位碩士學位論文JDBC驅(qū)動程序?qū)崿F(xiàn)在JDBCAPI中定義的所有抽象類和接口,為通用的DRIVERMANAGER提供JDBCAPI。JDBC驅(qū)動程序通常由數(shù)據(jù)庫廠商提供,目前主流數(shù)據(jù)庫產(chǎn)品都提供相關(guān)的JDBC驅(qū)動程序。根據(jù)訪問數(shù)據(jù)庫的技術(shù)不同,JDBC驅(qū)動程序相應(yīng)地分為四種類型。不同類型的JDBC驅(qū)動程序有著不一樣的特性和使用方法。JDBCODBC橋驅(qū)動程序JDBCODBCBRIDGE。此類驅(qū)動程序提供了通過ODBC驅(qū)動程序的JDBC訪問。其特點是必須在本地計算機上先安裝好ODBC驅(qū)動程序,然后通過JDBCODBCBRIDGE的轉(zhuǎn)換,將JAVA程序中使用的JDBCAPI訪問指令轉(zhuǎn)換成ODBCAPI指令,進而通過ODBC驅(qū)動程序調(diào)用本地數(shù)據(jù)庫驅(qū)動代碼完成對數(shù)據(jù)庫的訪問。這種方法的不足是執(zhí)行效率比較低,不適合對大數(shù)據(jù)量存取的應(yīng)用;要求客戶端必須安裝ODBC驅(qū)動。部分JAVA的本地JDBCAPI橋驅(qū)動程序JDBCNATIVEAPIBRIDGE。同第一類一樣,此類驅(qū)動程序也必須在本地計算機上先安裝好特定的驅(qū)動程序類似ODBC,然后通過JDBCNATIVEAPIBRIDGE的轉(zhuǎn)換,把JAVA程序中使用的JDBCAPI轉(zhuǎn)換成NATIVEAPI,進而存取數(shù)據(jù)庫。這種方法效率比第一類驅(qū)動程序效率雖然高一些,但仍然需要在每臺客戶機上預(yù)先安裝本地API庫,因此不利于維護和使用。純JAVA的JDBC中間件驅(qū)動程序JDBCMIDDLEWARE。使用這類驅(qū)動程序時不需要在本地計算機上安裝任何附加軟件,但是必須在安裝數(shù)據(jù)庫管理系統(tǒng)的服務(wù)器端加裝中間件,這個中間件負責所有存取數(shù)據(jù)庫時必要的轉(zhuǎn)換。此類驅(qū)動程序能將JDBC訪問轉(zhuǎn)換成與數(shù)據(jù)庫無關(guān)的標準網(wǎng)絡(luò)協(xié)議通常是HTLP或HFITS送出,然后由一個中間件服務(wù)器再將其轉(zhuǎn)換成數(shù)據(jù)專用的訪問指令,完成對數(shù)據(jù)庫的操作。中間件服務(wù)器能支持對多種數(shù)據(jù)庫的訪問。由于是基于中間件服務(wù)器的,這類驅(qū)動程序的體積最小,效率較高,具有最大的靈活性,缺點是需要一個中間服務(wù)器的支持。此類驅(qū)動采用標準的網(wǎng)絡(luò)協(xié)議,可以被防火墻支持,是HATEMET應(yīng)用理想的解決方案。純JAVA的JDBC驅(qū)動程序PUREJDBCDRIVER。使用這類驅(qū)動程序時無需安裝任何附加的軟件無論是本地計算機或是數(shù)據(jù)庫服務(wù)器端,所有存取數(shù)據(jù)庫的操作都直接由JDBC驅(qū)動程序來完成。此類驅(qū)動程序能將JDBC調(diào)用轉(zhuǎn)換成DBMS專用的網(wǎng)絡(luò)協(xié)議。數(shù)據(jù)庫廠商是這一類驅(qū)動程序的主要提供者。它允許從客戶機到數(shù)據(jù)庫服務(wù)器的直接調(diào)用。這種驅(qū)動程序的效率最高,但由于采用DBMS專用的網(wǎng)絡(luò)協(xié)議,可能不被防火墻支持。在INTEMET應(yīng)用中會存在潛在安全隱患。綜上所述,最佳的JDBC驅(qū)動程序類型是第四類,它不會增加任何額外的開銷,并且由純JAVA語言開發(fā)而成,擁有最佳的兼容性。由于第一類和第二類的JDBC驅(qū)動程序都必須事先安裝其他附加的軟件,有損JAVA數(shù)據(jù)庫程序的兼容性。第三類JDBC驅(qū)動程基于遺傳算法的考試系統(tǒng)的設(shè)計與實現(xiàn)序也是不錯的選擇,它也是由純JAVA語言開發(fā)而成的,并且中間件也僅需要在服務(wù)器上安裝。因此,建議最好以第三類和第四類JDBC驅(qū)動程序為主要選擇,第一類和第二類的JDBC驅(qū)動程序為次要選擇。25。3JDBC的關(guān)鍵接口和數(shù)據(jù)庫訪問1JDBCAPI的關(guān)鍵接口JDBC主要有兩種接口,分別是面向程序開發(fā)人員的DBCAPI和面向底層的JDBCDRIVEAPI。在JDBCAPI定義了一些數(shù)據(jù)庫操作的類和接口,通過這些接口實現(xiàn)與數(shù)據(jù)庫連接,執(zhí)行SQL語句并得到返回結(jié)果等功能。下面是其中關(guān)鍵的類和接口JAVASQLDRIVER和JAVASQLDRIVERMANAGER管理驅(qū)動程序,為驅(qū)動程序的調(diào)入和創(chuàng)建新的數(shù)據(jù)庫連接提供支持。JAVASQLCONNECTION完成對某一指定數(shù)據(jù)庫的連接功能。JAVASQLSTATEMENT代表一個特定的容器,用來構(gòu)造并執(zhí)行SQL語句,實現(xiàn)對指定數(shù)據(jù)庫的訪問操作。它又分為兩個子類JAVASQLPREPAREDSTATEMENT和JAVASQLCALLABLESTATEMENT,前者用于執(zhí)行預(yù)編譯的SQL語句的聲明,后者用于執(zhí)行對一個數(shù)據(jù)庫存儲過程的調(diào)用。JAVASQLRESULTSET處理結(jié)果集,用來控制對一個特定SQL語句的行數(shù)據(jù)的存取。然而,JDBCDRIVEAPI則必須提供對上述接口的支持,它是面向驅(qū)動程序開發(fā)商的編程接口,對于大多數(shù)數(shù)據(jù)庫驅(qū)動程序來說,只要實現(xiàn)JDBCAPI提供的抽象的類就可以了。JDBC數(shù)據(jù)庫訪問的一般算法先安裝好待訪問的數(shù)據(jù)庫的JDBC驅(qū)動程序,并在CLASSPATH環(huán)境變量中設(shè)置對它的檢索路徑。在數(shù)據(jù)庫訪問程序中引入標準的JAVASQL包IMPORTJAVASQL。幸;調(diào)用CLASSFORNAME方法加載相應(yīng)數(shù)據(jù)庫的JDBC驅(qū)動程序;調(diào)用DRIVERMANAGER類的GETCONNECTIONO方法創(chuàng)建JDBCCONNECTION對象,以連接數(shù)據(jù)庫;調(diào)用JDBC的STATEMENT類的CREATESTATEMENT0方法,創(chuàng)建一個STATEMENT類的對象SQL語句對象;調(diào)用SQL語句對象的EXCEUTEQUERY0方法,執(zhí)行相應(yīng)SQL語句,并獲得返回的RESULTSET對象;調(diào)用RESULTSET對象的移動記錄針等方法,對結(jié)果集進行相關(guān)操作;訪問結(jié)束,則調(diào)用CLOSE方法,釋放JAVA程序與數(shù)據(jù)庫的連接并關(guān)閉數(shù)據(jù)庫。大連理工大學專業(yè)學位碩士學位論文在上述算法中可將SQL語句完整直接的寫在JAVA程序中,實現(xiàn)對數(shù)據(jù)庫的訪問,這種訪問模式屬于靜態(tài)SQL模式,它的靈活性較差,且受到調(diào)用級的接口的限制而只能執(zhí)行基本的SQL語句。然而,也可以在JAVA程序運行時提交一個由數(shù)據(jù)庫服務(wù)器處理的SQL請求,這種機制也意味著動態(tài)編譯、授權(quán)和權(quán)限檢查,從而
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)租賃合同范本
- 2024版地坪施工與石材加工及供應(yīng)合同3篇
- 2025年度新型綠色能源土地租賃合同
- 2025年度牛羊活畜市場拓展與買賣合作合同
- 2024版買賣合同個人之間房屋買賣合同
- 2025年度教育培訓機構(gòu)場地租賃合同規(guī)范4篇
- 年汽車租賃合同
- 網(wǎng)絡(luò)直播平臺建設(shè)開發(fā)合同
- 2024版枸杞批發(fā)銷售合同
- 施工運輸合同
- 焊錫膏技術(shù)培訓教材
- 函授本科《小學教育》畢業(yè)論文范文
- 高考高中英語單詞詞根詞綴大全
- 江蘇省泰州市姜堰區(qū)2023年七年級下學期數(shù)學期末復習試卷【含答案】
- 藥用輔料聚乙二醇400特性、用法用量
- 《中小學機器人教育研究(論文)11000字》
- GB/T 22085.1-2008電子束及激光焊接接頭缺欠質(zhì)量分級指南第1部分:鋼
- 全過程人民民主學習心得體會
- 2023年上海期貨交易所招聘筆試題庫及答案解析
- 附圖1岑溪市行政區(qū)劃圖
- word企業(yè)管理封面-可編輯
評論
0/150
提交評論