版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄TOC\o”1—4"\h\z\uHYPERLINK\l”_Toc263019752"1緒論 1HYPERLINK\l”_Toc263019753”1.1選題的目的及意義 1HYPERLINK\l”_Toc263019754”1.2系統(tǒng)開發(fā)的關(guān)鍵技術(shù) 12系統(tǒng)開發(fā)技術(shù) 32.1。1SERVLET技術(shù)簡介 32.1.2JSP及其特點 4_Toc263019763”2。3系統(tǒng)開發(fā)所用工具 6HYPERLINK\l”_Toc263019764”2.3.1ApacheTomcat 6HYPERLINK\l”_Toc263019765”2.3.2MySQL數(shù)據(jù)庫 6HYPERLINK\l”_Toc263019766”2。4系統(tǒng)運行環(huán)境 7HYPERLINK\l”_Toc263019767”2.4.1硬件環(huán)境 7HYPERLINK\l”_Toc263019768"2.4。2軟件環(huán)境 7HYPERLINK\l”_Toc263019769”3需求分析 8_Toc263019772"3。2。1功能結(jié)構(gòu)圖 10HYPERLINK\l”_Toc263019773"3。2。2系統(tǒng)模塊介紹 10HYPERLINK\l”_Toc263019774"3。3系統(tǒng)的總體結(jié)構(gòu) 113.4業(yè)務流程分析 12HYPERLINK\l”_Toc263019776”3。4。1學生志愿課題管理 12HYPERLINK\l”_Toc263019777"3。4。2教師課題管理 13HYPERLINK\l”_Toc263019778"3。4。3用戶基本信息管理 134。1數(shù)據(jù)庫概念結(jié)構(gòu)設計 16HYPERLINK\l”_Toc263019783"4。1。1實體E—R圖 16HYPERLINK\l”_Toc263019784"4。1。2實體聯(lián)系E—R圖 18_Toc263019786”4。1。4關(guān)系模式設計 19HYPERLINK\l”_Toc263019787"4.1。5數(shù)據(jù)表結(jié)構(gòu) 205。1系統(tǒng)登陸界面的設計與實現(xiàn) 25HYPERLINK\l”_Toc263019790”5.2主控制平臺的設計與實現(xiàn) 25HYPERLINK\l”_Toc263019791”5.3用戶操作總體設計 26_Toc263019793”5.3.2教師管理模塊設計 29HYPERLINK\l”_Toc263019794”5.4技術(shù)難點 315。4.2HQL語言 31HYPERLINK\l”_Toc263019797”6測試 326.3系統(tǒng)的安全性分析 346。4系統(tǒng)的實用性分析 34HYPERLINK\l”_Toc263019802”總結(jié) 35HYPERLINK\l”_Toc263019803”參考文獻 36HYPERLINK\l”_Toc263019804”致謝 371緒論1。1選題的目的及意義隨著網(wǎng)絡和信息技術(shù)的發(fā)展,20世紀80年代人們提出了“辦公自動化"的概念,經(jīng)過20多年兩代的發(fā)展,辦公自動化系統(tǒng)發(fā)生了根本的變化,它主要采用客戶/服務器的二層結(jié)構(gòu)、瀏覽器/服務器/數(shù)據(jù)庫的三層結(jié)構(gòu),以網(wǎng)絡技術(shù)和協(xié)同工作技術(shù)為主要特征,實現(xiàn)工作流程自動化和非結(jié)構(gòu)化數(shù)據(jù)庫的功能,實現(xiàn)了收發(fā)文件從傳統(tǒng)的手工方式向工作流程自動化方式飛躍,可以方便的實現(xiàn)非結(jié)構(gòu)化文檔的處理。學校處在信息接受的前沿,實現(xiàn)教學辦公自動化是必然趨勢,畢業(yè)生的“畢業(yè)設計選題管理系統(tǒng)”就是辦公自動化的一項主要內(nèi)容.“畢業(yè)設計選題管理系統(tǒng)”利用了方便的網(wǎng)絡通信技術(shù),使得管理員管理教師課題和學生的志愿工作變得非常方便。該系統(tǒng)采用JSP(JavaServerPages)開發(fā)技術(shù),基于B/S模式的工作方式使得數(shù)據(jù)的維護也顯得非常方便1。2系統(tǒng)開發(fā)的關(guān)鍵技術(shù)本系統(tǒng)采用了基于MVC模式的Struts框架與Hibernate框架進行開發(fā)。開發(fā)的關(guān)鍵技術(shù):=1\*GB2⑴JSP技術(shù)的應用。=2\*GB2⑵Struts框架的使用。=3\*GB2⑶Hibernate框架的使用。1。3本課題研究的主要內(nèi)容以及展望“畢業(yè)設計選題管理系統(tǒng)“是基于瀏覽器/服務器架構(gòu)的軟件管理系統(tǒng),它的開發(fā)技術(shù)是目前比較流行的基于windows平臺的JSP結(jié)合JAVASCRIPT技術(shù),數(shù)據(jù)庫采用了SUN公司開發(fā)的MYSQL數(shù)據(jù)庫,MYSQL是高性能的數(shù)據(jù)庫管理系統(tǒng),在可靠性、易用性、可伸縮性、業(yè)務職能功能等方面都具有非常優(yōu)秀的表現(xiàn),它具有支持多用戶同時訪問,自適應內(nèi)存調(diào)節(jié)特性等優(yōu)點,有良好的可擴展性和可維護性,更容易控制?!爱厴I(yè)設計選題管理系統(tǒng)"分為“前臺”和“后臺“兩部分,前臺是實現(xiàn)學生和教師瀏覽網(wǎng)站的功能,學生用戶通過網(wǎng)上瀏覽教師的課題選擇自己喜歡的課題,然后提交到后臺數(shù)據(jù)庫保存選題信息,待由管理員處理信息,而教師則可以通過網(wǎng)上瀏覽申請課題,然后提交到后臺數(shù)據(jù)庫,待由管理員處理信息,學生和教師只能瀏覽數(shù)據(jù)庫信息,不能修改,數(shù)據(jù)庫的相關(guān)信息處理由管理員完成.管理員處理教師課題和學生志愿要完成的操作有:對學生志愿的添加、刪除、修改,能夠查看有哪些學生選擇了志愿,哪些學生還沒有選擇志愿.對教師課題管理要完成的操作有:對教師課題的添加、刪除、修改,并要對教師申請的課題進行審查、批準.另外,管理員還要完成學生課題的排列:分為兩種方式:自動生成終表和手動生成終表,按志愿優(yōu)先級進行排列。發(fā)布公告,查看公告。2系統(tǒng)開發(fā)技術(shù)2。1語言可行性的分析2。1。1SERVLET技術(shù)簡介Servlet是Java技術(shù)對CGI(CommonGatewayInterface)編程的回答.Servlet程序在服務器端運行,動態(tài)地生成Web頁面。同時它也作為一個中間層,負責連接來自Web瀏覽器或其他HTTP客戶程序的請求和HTTP服務器上的數(shù)據(jù)庫或應用程序.與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資,更高效。Servlet被調(diào)用的流程如圖2。1所示。圖2。1Servlet被調(diào)用的流程圖2。1說明:(1)客戶端(通常為Web瀏覽器)向Web服務器發(fā)送一個基于HTTP協(xié)議的請求。(2)Web服務器接收到該請求,并將請求交給Servlet容器處理。(3)Servlet容器根據(jù)Servlet的配置來查找或創(chuàng)建Servlet的實例,并執(zhí)行該Servlet,Servlet容器必須把客戶端請求和響應封裝成Servlet規(guī)范中規(guī)定的請求和響應對象傳給Servlet。(4)Servlet可以使用請求對象獲取客戶端的信息,比如IP地址、請求的參數(shù)等,以及執(zhí)行特定的業(yè)務邏輯。Servlet可以使用響應對象向客戶端發(fā)送業(yè)務數(shù)據(jù)及業(yè)務執(zhí)行的結(jié)果。(5)Servlet處理完該請求后,Servlet容器要保證Servlet的響應內(nèi)容能夠發(fā)送到客戶端去(flush),最后返回到Web服務器.【3】2.1。2JSP及其特點JSP及其特點[2]:JavaServerPages(JSP)是一種實現(xiàn)普通靜態(tài)HTML和動態(tài)HTML混合編碼的技術(shù)。JSP和ASP相比具有兩方面的優(yōu)點。首先,動態(tài)部分用Java編寫,而不是VBScript或其他Microsoft語言,不僅功能更強大而且更易于使用。第二,JSP應用可以移植到其他操作系統(tǒng)和非Microsoft的Web服務器上.JSP和純Servlet相比JSP并沒有增加任何本質(zhì)上不能用Servlet實現(xiàn)的功能。但是,在JSP中編寫靜態(tài)HTML更加方便,不必再用println語句來輸出每一行HTML代碼.更重要的是,借助內(nèi)容和外觀的分離,頁面制作中不同性質(zhì)的任務可以方便地分開:比如,由頁面設計專家進行HTML設計,同時留出供Servlet程序員插入動態(tài)內(nèi)容的空間[4].2.2框架的可行性2.2.1MVC(ModelViewController)分層結(jié)構(gòu)MVC即模型-視圖-控制器模式是一種“分治"的思想。模型,即相關(guān)的數(shù)據(jù),它是對象的內(nèi)在屬性;視圖是模型的外在表現(xiàn)形式,一個模型可以對應一個或者多個視圖,視圖還具有與外界交互的功能;控制器是模型與視圖的聯(lián)系紐帶,控制器提取通過視圖傳輸進來的外部信息轉(zhuǎn)化成相應事件,然后由對應的控制器對模型進行更新;相應的,模型的更新與修改將通過控制器通知視圖,保持視圖與模型的一致性。圖2—2揭示了這三者之間的關(guān)系:圖2—2MVC模型圖2。2。2基于MVC結(jié)構(gòu)web系統(tǒng)設計MVC是包含模型、視力、控制器的分層結(jié)構(gòu),其系統(tǒng)設計也分別從這三個方面入手,圖2—3為基于MVCWEB系統(tǒng)的圖形化描述。圖2—3MVC模型=1\*GB2⑴控制器的設計控制器是模型和視圖聯(lián)系的紐帶,同時也是系統(tǒng)的控制中心。根據(jù)控制器在系統(tǒng)中的不同作用,將控制器抽象成四種控制器類型,即主控制器(MainController)、請求映射控制器(RequestMappingConntroller)、視圖選擇控制器(ViewController)和模型控制器(ModelController)。其中,主控制器在系統(tǒng)服務器最前端,用于從xml配置文件中獲取HTTP請求映射表,接收客戶的HTTP請求并且將該請求傳送給請求映射控制器和視圖選擇控制器;請求映射控制器將傳送來的HTTP請求映射到相應的處理器(處理器采用JavaBean形式)進行處理,其映射表直接從ServletContext的變量中獲取(因為該映射表已經(jīng)由主控制器裝入),處理完后返回結(jié)果;視圖控制器根據(jù)HTTP請求映射表及處理器處理后的結(jié)果進行下一個視圖的選擇;模型控制器負責客戶會話數(shù)據(jù)的處理:每一個客戶對應一個會話模型,用來描述客戶的各種狀態(tài)等.=2\*GB2⑵視圖層設計視圖層即用戶界面,在WEB系統(tǒng)中表現(xiàn)為用戶可見的網(wǎng)頁,對于每一個使用HTTP請求響應模型WEB應用,View組件基本上總是和響應相關(guān)聯(lián)的組件,并將結(jié)果返回給用戶,視圖層應該盡量減少業(yè)務邏輯或復雜的分析.=3\*GB2⑶模型層設計模型層通常表現(xiàn)為業(yè)務對象或者物理后端系統(tǒng)。模型層通常都是業(yè)務相關(guān)的,對于數(shù)據(jù)庫的相關(guān)操作,及復雜的業(yè)務邏輯分析都應該在模型層實現(xiàn)?!?5】2。3系統(tǒng)開發(fā)所用工具2。3.1ApacheTomcatTomcat服務器是一個免費的開放源代碼的Web應用服務器,它是Apache軟件基金會(Apache
Software
Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet
2。4和JSP
2。0規(guī)范。因為Tomcat技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器.2。3.2MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫技術(shù):MySQL是一個快速的多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務器。MySQL服務器支持關(guān)鍵任務.重負載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置(mass—deployed)的軟件中去。(1)MySQL是一個數(shù)據(jù)庫管理系統(tǒng)。一個數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合。它可以是從一個簡單的銷售表到一個美術(shù)館、或者一個社團網(wǎng)絡的龐大的信息集合。如果要添加、訪問和處理存儲在一個計算機數(shù)據(jù)庫中的數(shù)據(jù),你就需要一個像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。從計算機可以很好的處理大量的數(shù)據(jù)以來,數(shù)據(jù)庫管理系統(tǒng)就在計算機處理中和獨立應用程序或其他部分應用程序一樣扮演著一個重要的角色。(2)MySQL是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng).關(guān)系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個大倉庫中要好得多,這樣做將增加你的速度和靈活性.“MySQL”中的SQL代表“StructuredQueryLanguage”(結(jié)構(gòu)化查詢語言)。(3)MySQL服務器是一個快的、可靠的和易于使用的數(shù)據(jù)庫服務器.如果這是你正在尋找的,你可以試一試。MySQL服務器還包含了一個由用戶緊密合作開發(fā)的實用特性集。(4)MySQL服務器工作在客戶/服務器或嵌入系統(tǒng)中。MySQL數(shù)據(jù)庫服務器是一個客戶/服務器系統(tǒng),它由多線程SQL服務器組成,支持不同的后端.多個不同的客戶程序和庫.管理工具和廣泛的應用程序接口(APIs)。(5)MySQL也可以是一個嵌入的多線程庫,你可以把它連接到你的應用中而得到一個小、快且易于管理的產(chǎn)品.2。4系統(tǒng)運行環(huán)境2.4.1硬件環(huán)境后臺數(shù)據(jù)庫服務器:因為服務器為數(shù)據(jù)庫服務器,且要完成高密度的運算量,所以應采用較高檔的服務器??紤]到與軟件的兼容性,建議采用IntelPentium4多處理器系統(tǒng)、512MBRAM、80GB以上硬盤.客戶機:采用IntelPentium4多處理器系統(tǒng)、512MBRAM、80GB以上硬盤.網(wǎng)絡配置:10M/100M網(wǎng)絡帶寬、100Mb/s網(wǎng)卡、16口交換機.2.4。2軟件環(huán)境操作系統(tǒng)的選擇:數(shù)據(jù)庫服務器:因為服務器為數(shù)據(jù)庫服務器,特別對穩(wěn)定性有極高的要求,且支持多CPU.所以應采用Windows2000Server,因為它有優(yōu)良的穩(wěn)定性和操作性。數(shù)據(jù)庫的選擇:因大部分情況下軟件都是在Windows系統(tǒng)下使用的,考慮MySQL的優(yōu)勢在于中國普遍使用的免費數(shù)據(jù)庫軟件并且與系統(tǒng)的兼容度較高,并支持集成性安全檢測,且對系統(tǒng)的資源消耗較小。相比之下,Oracle數(shù)據(jù)庫雖然性能較高,但由于其可操作性和方便性不如MySQL好,并且服務器沒有使用磁盤陣列和多處理器,無法發(fā)揮Oracle數(shù)據(jù)庫設計上的性能優(yōu)勢,并且對系統(tǒng)性能要求較高。至于Access之類的數(shù)據(jù)庫,由于其性能較低,且并發(fā)度太低又不具安全性,故不予考慮。最終決定后臺數(shù)據(jù)庫用MySQL5。0。當然整個系統(tǒng)只能在Windows下運行。3需求分析畢業(yè)生選題管理一直是學校為培養(yǎng)合格的畢業(yè)生所做的最重要的工作,學校為畢業(yè)提供合適的課題,畢業(yè)生通過對課題的設計,綜合復習學習過的知識,將理論和實踐結(jié)合起來,為以后的工作積累寶貴的經(jīng)驗。傳統(tǒng)的畢業(yè)設計的選題過程是:指導老師根據(jù)院(系)的要求,設計出一定數(shù)量的畢業(yè)課題并提交給教學管理人員審閱;教學管理人員審閱課題,檢查出重復的課題,并根據(jù)學生的知識水平判斷課題的難易是否適宜,提出修改意見,反饋給教師修改;畢業(yè)課題設計完成之后,由學院負責人將全部課題發(fā)給畢業(yè)生,班級負責人組織畢業(yè)生選題,然后交給教學管理人員,教學管理人員檢查學生的選題情況,并最終確定選題結(jié)果。雖然是個合理的有序的過程,但在實際過程中,這種管理仍然存在著過程繁瑣、工作效率低等問題。隨著計算機的普及、網(wǎng)絡和信息化的迅速發(fā)展,計算機選課系統(tǒng)、計算機信息管理系統(tǒng)正在普及、然而針對畢業(yè)設計雙向選題的系統(tǒng)設計卻少見報道.開發(fā)一個基于WEB的畢業(yè)選題系統(tǒng),在提高畢業(yè)設計選題的工作效率,節(jié)省人力、物理資源方面都有極大的優(yōu)勢.目前,在大多數(shù)高校院(系)都沒有一套完整的選題系統(tǒng),因此設計和開發(fā)這樣的一個選題系統(tǒng)具有極大的現(xiàn)實意義。針對上述情況,本文采用目前流行的B/S架構(gòu)模式,設計了一套基于JSP+MYSQL的畢業(yè)設計選題系統(tǒng)。該系統(tǒng)增強了指導教師、學生和管理人員在畢業(yè)設計選題過程中的交互性,教師能夠在線提交和更新待審題目,學生可以在線選題并且查看選題結(jié)果,管理人員可以在審閱待審題目并且調(diào)整學生選題3。1需求說明(1)管理員錄入或?qū)虢處熜畔?,管理員將畢業(yè)學生基本信息導入,管理員是所有用戶中權(quán)限級別最高的用戶,能夠?qū)處?、學生和個人信息、出題信息、選題信息進行修改.同時,還要負責通知發(fā)布、選題結(jié)果公布等。(2)教師教師登錄系統(tǒng)后,能夠修改的數(shù)據(jù)有:密碼、個人聯(lián)系方式、包括Email和電話,其它信息不能私自修改。對于題目信息和要求,可以對題目信息和要求,可以通過管理員來修改。教師能后查看到選自己課題的學生人數(shù)和學生基本情況。(3)學生學生登錄系統(tǒng)后,只能修改密碼、個人的聯(lián)系方式、其它信息不能修改.每個學生只能選一個題目或者一個課題項目的一個模塊部分,選擇之后在規(guī)定的時間內(nèi)可以更改,規(guī)定時間以外不能更改,對于已選題目不能再次被選,除非其他學生在規(guī)定的時間內(nèi)退選。畢業(yè)生選題管理系統(tǒng)總體流程圖,如圖3。1所示.開始開始用戶登錄驗證教師管理系統(tǒng)管理員管理系統(tǒng)學生管理系統(tǒng)教師課題添加教師課題刪除教師課題查詢教師信息修改按類型查詢查詢?nèi)堪搭愋蛣h除系統(tǒng)設置學生管理教師管理發(fā)表公告學生查看課題學生課題退選學生課題查詢查看審核狀態(tài)存在提示確定刪除確定退選確定是否選上按類型查詢查詢?nèi)繉W生信息修改退出確定是否退出未通過驗證通過驗證是否生成終表圖3。1畢業(yè)生選題管理系統(tǒng)總體流程圖3。2功能定義用列表的方式,逐項定量和定性地敘述對系統(tǒng)所提出的功能要求,說明輸入什么量、經(jīng)怎樣的處理、得到什么輸出,說明系統(tǒng)的容量,包括系統(tǒng)支持的終端數(shù)據(jù)和應支持的并行操作的用戶數(shù)等指標。對出題的要求:(1)每位有資格教師可以出不少于指導名額、不多于8個論題;(2)在管理員確定的時間內(nèi)出題;(3)不能與已有出題重復。審查的程序:(1)管理員將所有教師出題提交學院學術(shù)委員會進行審查;(2)管理員將審查后的備選論題公布在學院網(wǎng)站上,備選論題與指導教師一一對應。選題要求:(1)每個學生只能選擇一個題目;(2)對于同一課題只能一個學生選擇(多人合作完成除外); 3.2。1功能結(jié)構(gòu)圖 根據(jù)用戶和系統(tǒng)需求,本系統(tǒng)劃分為三個子系統(tǒng),即管理員子系統(tǒng)、教師子系統(tǒng)、學生子系統(tǒng)。畢業(yè)生選題管理系統(tǒng)畢業(yè)生選題管理系統(tǒng)學生子系統(tǒng)管理員子系統(tǒng)教師子系統(tǒng)3。2系統(tǒng)功能結(jié)構(gòu)圖3。2.2系統(tǒng)模塊介紹根據(jù)實際情況,系統(tǒng)分為三大模塊,即三個子系統(tǒng)。下面詳細介紹各系統(tǒng)的功能及要求.(1)管理員模塊網(wǎng)絡的維護需要管理員對系統(tǒng)的必要的設置。并保證系統(tǒng)的正常運行.在不系統(tǒng)中,系統(tǒng)規(guī)定了管理員的權(quán)限與功能,管理員有權(quán)對數(shù)據(jù)庫進行維護。管理員功能系統(tǒng)包括添加功能、修改功能以及統(tǒng)計功能.添加功能能夠添加其他管理員、教師或者學生;修改功能能夠修改教師、學生資料,能夠根據(jù)專業(yè)設置情況添加課題類別,修改/添加課題的相關(guān)信息;統(tǒng)計功能主要是在選題過程結(jié)束后,由管理員對結(jié)果進行統(tǒng)計,便于院(系)及時掌握學生選題情況。(2)教師模塊課題信息發(fā)布,教師可以錄入每個選題信息,但是需要管理員審核后才能供學生選擇;個人資料的修改與添加,教師資料的修改與添加可由管理員或者教師自己來完成;查看選課學生資料,教師可以查看選擇自己課題的學生的資料,決定是否指導該學生的畢業(yè)設計。(3)學生模塊學生登錄系統(tǒng)需要自己的學號,登錄后學生可以進行的操作:僅能修改個人的聯(lián)系方式;瀏覽供選擇的課題信息,選擇課題;在規(guī)定時間內(nèi)的選擇和更改課題;在規(guī)定的時間內(nèi)查詢選題結(jié)果。3。3系統(tǒng)的總體結(jié)構(gòu)根據(jù)畢業(yè)設計選題的業(yè)務情況,系統(tǒng)共分成管理員,教師,學生三大系統(tǒng)模塊,系統(tǒng)功能設置,管理員用戶操作,教師信息修改,選題題目提交,選題題目審核,學生信息導入,學生信息修改,題目選報,信息瀏覽功能。功能如圖所示:學學生志愿管理教師課題管理用戶信息管理自動生成終表手動生成終表文件管理修改學生志愿刪除學生志愿刪除學生課題修改教師課題刪除教師課題增加教師課題申請課題管理添加用戶刪除用戶發(fā)表公告修改用戶生成終表系統(tǒng)登錄的主界面管理員登錄圖3.3系統(tǒng)總體結(jié)構(gòu)圖3。4業(yè)務流程分析管理員錄入教師及學生初始信息管理員錄入教師及學生初始信息管理員開啟提交選題功能管理員添加審核管理員教師登錄提交選題管理員關(guān)閉提交選題功能管理員開啟題目審核功能管理員開啟學生預覽功能管理員調(diào)劑選報情況審核管理員審核題目學生登錄預覽題目管理員打印輸出最終報表管理員關(guān)閉題目審核功能管理員關(guān)閉學生預覽功能管理員開啟學生選報功能學生登錄選報題目管理員關(guān)閉學生選報功能圖3。4業(yè)務流程示意圖3.4.1學生志愿課題管理在這一塊里,可以分為修改學生志愿、刪除學生志愿、刪除學生課題和查看未選志愿學生四大部分,它的處理流程可以用以下圖表(圖3.5)方式描述:管理人員管理人員登錄學生志愿存儲學生課題存儲修改學生志愿刪除學生志愿刪除學生課題查看未選志愿學生學生基本信息存儲控制界面登陸錯誤被彈出圖3。5管理員對學生志愿操作流程管理人員首先查看要更新的數(shù)據(jù),進行修改后,保存進數(shù)據(jù)庫。3.4。2教師課題管理管理員對教師課題管理分為:修改教師課題、添加教師課題、刪除教師課題和教師申請課題管理四部分,同時對數(shù)據(jù)庫中的信息進行最后的處理,拿出最終的畢業(yè)設計課題小組分組情況,處理流程如下圖(圖3.6):管理員管理員登陸教師課題存儲教師申請課題修改教師課題添加教師課題刪除教師課題批準教師申請課題主控制界面非法用戶被禁止圖3.6教師課題管理部分流程3.4。3用戶基本信息管理用戶基本信息管理包括了對用戶信息的添加、刪除、修改等基本操作,添加用戶后,該用戶可以憑借自己的帳號登陸管理系統(tǒng);刪除用戶信息后,該用戶登陸信息被刪除,不能進行登陸;需要注意的是,在修改用戶信息時,不要輕易改動用戶登陸信息,否則會造成用戶無法登陸。其數(shù)據(jù)處理流程如下圖(圖3。7)所示:管理員管理員登陸添加用戶修改用戶刪除用戶主界面用戶信息存儲圖3.7用戶信息管理操作3.4。4自動生成終表自動生成終表是按學生志愿順序生成終表,處理流程如圖3。8:管理員管理員登陸控制界面學生志愿存儲學生第一志愿相應教師課題判斷教師課題是否未滿生成終表是否教師課題存儲學生第二志愿相應教師課題判斷教師課題是否未滿是終表存儲生成終表否圖3.8自動生成終表3.4。5手動生成終表手動生成終表是由管理員判斷哪位學生修哪門課題,不一定要按學生志愿的順序生成終表,比如一位學生的第一志愿是“空調(diào)設計”,第二志愿是“網(wǎng)絡設計”,在手動排列生成終表時,管理員很可能直接就將該學生的設計課題定為第二志愿“網(wǎng)絡設計”,而不會考慮第一志愿。處理流程如下圖(圖3。9):管理員管理員登陸控制頁面學生志愿存儲教師課題存儲終表存儲學生志愿教師課題圖3.9手動排列生成終表流程4數(shù)據(jù)庫設計4。1數(shù)據(jù)庫概念結(jié)構(gòu)設計在一個數(shù)據(jù)庫應用系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫的設計是整個系統(tǒng)的基礎(chǔ).良好的數(shù)據(jù)結(jié)構(gòu)設計不僅可以減少數(shù)據(jù)冗余、提高查詢效率,而且還可以降低應用程序的編寫難度,提高工作效率。4。1.1實體E-R圖在需求分析階段所得到的應用需求應該首先抽象為信息世界的結(jié)構(gòu),才能更好的更準確的用數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)這些需求.根據(jù)需求分析畫出E—R圖。畢業(yè)生選題管理系統(tǒng)的E-R圖如下圖所示。管理員信息管理員信息管理員賬號帳號管理員姓名管理員密碼所屬院系聯(lián)系方式郵箱角色圖4.1管理員基本信息E—R圖學生信息學生信息學號學生姓名登錄密碼所屬班級所屬院系性別聯(lián)系方式郵箱課題角色圖4。2學生基本信息E—R圖教師信息教師信息教師工號教師姓名登錄密碼所屬院系職稱性別聯(lián)系方式郵箱角色圖4。3教師基本信息E—R圖課題信息課題信息課程名稱出題教師允許學院允許專業(yè)限選人數(shù)課題難度工作量課題性質(zhì)課題來源課題簡介課題要求出題日期圖4。4課程信息E—R圖以下幾個圖示實體與實體之間的關(guān)系:圖4-5學生信息實體和課題實體之間的聯(lián)系圖4-5學生信息實體和課題實體之間的聯(lián)系學生課題11引用圖4-6教師信息實體與課題信息實體之間的聯(lián)系圖4-6教師信息實體與課題信息實體之間的聯(lián)系教師課題n1擁有圖4-7學院實體和專業(yè)實體之間的聯(lián)系圖4-7學院實體和專業(yè)實體之間的聯(lián)系學院專業(yè)n1擁有圖4-8學院實體和教師實體之間的關(guān)系圖4-8學院實體和教師實體之間的關(guān)系學院教師n1擁有圖4-9課題實體和課題申請信息實體之間的關(guān)系圖4-9課題實體和課題申請信息實體之間的關(guān)系課題課題申請11引用4.1.2實體聯(lián)系E—R圖實體聯(lián)系E—R圖如圖4。10所示。1n11n1選題選題指導出題教師信息課題學生信息圖4。10實體聯(lián)系圖4.1。3E—R圖向關(guān)系模型的轉(zhuǎn)換關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E—R圖則是由實體,實體的屬性和實體間的聯(lián)系三個要素組成.所以將E—R圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體,實體的屬性和實體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。轉(zhuǎn)換原則如下:(1)實體類型的轉(zhuǎn)換:將每個實體類型轉(zhuǎn)換成一個關(guān)系模式,實體的屬性及為關(guān)系模式的屬性,實體標識符及為關(guān)系模式的鍵.(2)聯(lián)系類型的轉(zhuǎn)換,根據(jù)不同的情況做不同的處理:①若實體間的聯(lián)系是1:1,可以在兩個實體類型轉(zhuǎn)換成的兩個關(guān)系模式中的任意一個關(guān)系模式的屬性中加入另一各關(guān)系模式的鍵和聯(lián)系類型的屬性。②若實體間的聯(lián)系1:N,則在N端實體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實體類型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的屬性。③若實體間的聯(lián)系是M:N,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實體類型的鍵加上關(guān)系類型的屬性,而鍵為兩端實體間的組合.4。1.4關(guān)系模式設計依照該規(guī)則將教學管理系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系模型如下:將每一個實體轉(zhuǎn)換成一個關(guān)系(關(guān)系就是給出關(guān)系名,寫出屬性,并標明該關(guān)系的主鍵)。JB031模式:(1).a(chǎn)dmin_t(id,account,name,password,college,phone,mail,role)管理員信息(管理員帳號,管理員姓名,管理員密碼,所屬院系,聯(lián)系方式,郵箱,角色)(2).student_id(id,stuid,name,password,sex,class,profession,phone,mail,topic,role)學生信息(學號,學生姓名,登錄密碼,性別,所在班級,所屬院系,聯(lián)系方式,郵箱,課題,角色)(3).teacher_t(id,teach_id,name,password,sex,title,education,college,phone,mail,role)教師信息(教師工號,教師姓名,登錄密碼,性別,職稱,學歷,所屬院系,聯(lián)系方式,郵箱,角色)(4).college_t(id,college_id,college_name)學院信息(學院編號,學院名稱)(5).profession_t(id,profession_id,profession_name,college)專業(yè)信息(專業(yè)編號,專業(yè)名稱,所屬院系)(6).topic_t(id,topic_name,teacher,permit_col,permit_prof,limit_no,difficult,workload,topic_prop,topic_source,topic_intro,topic_ask,topic_date)課題信息(課題名稱,出題教師,允許學院,允許專業(yè),限選人數(shù),課題難度,工作量,課題性質(zhì),課題來源,課題簡介,課題要求,出題日期)(7).a(chǎn)pply_t(id,topic_state,student_state,topic_num,select_num,apply_date)課題申請信息(審核狀態(tài),正選狀態(tài),課題編號,已選人數(shù),申請日期)(8).wash_t(id,student_id,wash_id,topic_id,select_time)預選信息(學號,志愿號,課題名稱,預選日期)(9).systems_t(id,college,college_state,produce_topic,view_topic,select_topic,produce_no)系統(tǒng)信息(學院,學院選題狀態(tài),出題狀態(tài),預覽狀態(tài),選題狀態(tài),允許出題數(shù))(10).document_t(id,user_id,user_name,to_who,user_type,file_name,file_path,file_context,file_rank,create_time)文件(用戶賬號,用戶姓名,接收者,用戶角色,文件名稱,文件路徑,文件內(nèi)容,文件歸類,發(fā)表日期)4.1。5數(shù)據(jù)表結(jié)構(gòu)1。管理員信息表,如表4。11。表4。11管理員信息表中文名稱字段名數(shù)據(jù)類型約束管理員帳號accountVARCHARNotnullunique管理員姓名nameVARCHARNotnull管理員密碼passwordVARCHARNotnull所屬院系collegeINTEGERReferencescollege_t(college_id)聯(lián)系方式phoneVARCHARyes郵箱mailVARCHARyes角色roleVARCHARNotnull2.學生信息表,如表4.12。表4.12學生信息表中文名稱字段名數(shù)據(jù)類型約束學號stuidVARCHARNotnullunique學生姓名nameVARCHARNotnull登錄密碼passwordVARCHARNotnull學生性別sexVARCHARNotnull學生所在班級classVARCHARNotnull學生所屬院系professionINTEGERReferencesprofession_t(profession_id)聯(lián)系方式phoneVARCHARyes郵箱mailVARCHARyes課題topicINTEGERReferencestopic_t(topic_name)角色roleVARCHARNotnull3。教師信息表,如表4.13。表4。13教師信息表中文名稱字段名數(shù)據(jù)類型約束教師工號teach_idVARCHARNotnulluniqu教師姓名nameVARCHARNotnull登錄密碼passwordVARCHARNotnull教師性別sexVARCHARNotnull教師職稱titleVARCHARNotnull教師學歷educationVARCHARNotnull所屬院系collegeINTEGERReferencescollege_t(college_id)聯(lián)系方式phoneVARCHARyes郵箱mailVARCHARyes角色roleVARCHARNotnull4。課題信息表,如表4.14.表4.14課題信息表中文名稱字段名數(shù)據(jù)類型約束課程名稱topic_nameVAECHAENotnullunique出題教師teacherINTEGERNotnull允許學院permit_colINTEGERReferencescollege_t(college_id)允許專業(yè)permit_profINTEGERReferencesprofession_t(profession_id)限選人數(shù)limit_noINTEGERNotnull課題難度difficultVARCHARNotnull課題工作量workloadVARCHARNotnull課題性質(zhì)topic_propVARCHARNotnull課題來源topic_sourceVARCHARNotnull課題簡介topic_introVARCHARNotnull課題要求topic_askVARCHARNotnull出題日期topic_dateTIMESTAMPNotnull5。學院信息表,如表4。15.表4。15學院信息表中文名稱字段名數(shù)據(jù)類型約束學院編號college_idINTEGERNotnullunique學院名稱college_nameVARCHAENotnull6.專業(yè)信息表,如表4.16。表4。16專業(yè)信息表中文名稱字段名數(shù)據(jù)類型約束專業(yè)編號Profession_idINTEGERNotnullunique專業(yè)名稱Profession_nameVARCHARNotnull所屬院系collegeINTEGERReferencescollege_t(college_id)7.課題申請信息表,如表4。17。表4。17課題申請信息表中文名稱字段名數(shù)據(jù)類型約束審核狀態(tài)topic_stateINTEGERNotnull正選狀態(tài)student_stateVARCHARNotnull已選人數(shù)topic_numVARCHAR yes出題編號select_numVARCHARNotnull申請日期apply_dateTIMESTAMPNotnull8。學生預選信息表,如表4。18。表4。18學生預選信息表中文名稱字段名數(shù)據(jù)類型約束學號student_idINTEGERReferencesstudent_t(stuid)志愿編號wash_idVARCHARNotnull課題topic_nameVARCHAR Referencestopic_t(topic_name)預選日期select_timeTIMESTAMPNotnull9.系統(tǒng)設置信息表,如表4.19.表4。19系統(tǒng)設置信息表中文名稱字段名數(shù)據(jù)類型約束所屬院系collegeINTEGERReferencesprofession_t(profession_id)院系狀態(tài)college_stateINTEGERNotnull出題狀態(tài)produce_topicINTEGERNotnull預覽狀態(tài)view_topicINTEGERNotnull選題狀態(tài)select_topicINTEGERNotnull出題個數(shù)produce_noINTEGERNotnull10文件信息表,如表4。20。表4.20文件信息表中文名稱字段名數(shù)據(jù)類型約束用戶帳號User_idVARCHARNotnullunique用戶姓名User_nameVARCHARNotnull用戶角色User_typeVARCHARNotnull接收用戶To_whoVARCHARyes文件名稱File_naemVARCHARNotnull文件路徑File_pathVARCHARNotnull文件內(nèi)容File_contextTEXTyes發(fā)表日期upfile_timeTIMESTAMPNotnull5系統(tǒng)實現(xiàn)詳細設計與實現(xiàn)根據(jù)已有的需求信息和總體設計,來進行系統(tǒng)的詳細設計和實現(xiàn)。為此,我們建立了一個Web工程,系統(tǒng)的設計和實現(xiàn)如下。5.1系統(tǒng)登陸界面的設計與實現(xiàn)用戶登陸模塊最基本的作用是為了限制該管理系統(tǒng)資源的使用,只有經(jīng)過身份確認的操作員才能對其管理系統(tǒng)進行相關(guān)操作。其基本過程是從客戶端取得提交的用戶名和密碼,然后到數(shù)據(jù)庫中進行核對.如果該信息在數(shù)據(jù)庫中存在,那么就可以成功登錄到下一界面,否則就會被該系統(tǒng)拒之門外.選擇連接數(shù)據(jù)庫后,進入用戶登陸界面。在用戶登陸界面中輸入用戶名和密碼,從數(shù)據(jù)庫表中檢查是否有相應的用戶名和密碼。如果用戶名和密碼錯誤,系統(tǒng)就會給出錯誤提示,并且不會有任何的頁面跳轉(zhuǎn)。如果輸入的用戶名和相應密碼正確,則可以點擊“確定”進入主控制平臺。用戶登陸的界面如圖5。1所示。圖5.1登錄系統(tǒng)界面5。2主控制平臺的設計與實現(xiàn)通過用戶登陸界面,進入主控制平臺.在主控制界面中,包括教師管理、課題管理、學生管理、返回管理員登錄頁面等功能模塊的連接,管理員可通過對管理模塊的選擇進行相應的操作。主控界面如圖5。2所示。圖5.2主控制界面5.3用戶操作總體設計用戶操作主要包括管理員登錄和學生及教師管理模塊,具體功能如下:管理員登錄:用于登錄系統(tǒng)。學生管理模塊:用于瀏覽、添加和修改學生及教師的信息,以及課題的管理。5。3。1用戶登錄設計用戶登錄是用戶進入主頁面的入口,其運行結(jié)果如圖5。3所示。圖5。3用戶登錄運行結(jié)果系統(tǒng)登陸是畢業(yè)生選題管理中最先使用的功能,因為用戶登陸在數(shù)據(jù)庫中使用的是人員表,人員表中有一個role字段,是來標識是否是管理員的。在登陸時要根據(jù)數(shù)據(jù)庫的這個字段來判斷此用戶是否具有管理員的權(quán)限。在網(wǎng)頁里添寫用戶名和密碼后點擊登陸按鈕,網(wǎng)頁會訪問一個URL,這個URL是“l(fā)ogon.action",這個action的name屬性的值是login,它是Struts的Actoin的實現(xiàn)類在配置文件中的名字,如下所示:〈actionname=”login”type=”com.graduate。action.LoginAction"/>action是Struts的Action的URL,他們在Struts的配置文件中都是已經(jīng)配好的,如下所示:〈actionname=”login"class="com。graduate。LoginAction"〉〈resultname=”studentlogin”〉/student/index.jsp</result〉 <resultname=”fail”〉login.jsp〈/result〉 〈resultname=”teacherlogin”>/teacher/index。jsp</result〉 <resultname="fail”>login.jsp〈/result〉 〈resultname=”adminlogin”〉/admin/index。jsp</result〉 <resultname=”fail"〉login。jsp</result></action>在這個配置文件中,可以了解到如下信息:根據(jù)name=”login"可以找到與之相對應的Action的實現(xiàn)類“com.graduate.action。LoginAction”。根據(jù)type=”com.graduate。action。LoginAction”可以找到處理用戶數(shù)據(jù)的Action類.根據(jù)〈resultname=”success”/〉/user/index。jsp〈/result〉可以了解,這個Action返回success時,頁面會被轉(zhuǎn)到/user/index.jsp文件,這就是登陸成功的頁面.如果當Action返回fail時,頁面會被轉(zhuǎn)到login。jsp文件,用戶重新登錄,并告訴用戶的錯誤信息。Struts的UserAction實現(xiàn)類的execute()方法是最先被執(zhí)行的,這個方法本身也沒有具體的事務,而是根據(jù)action的參數(shù)不同執(zhí)行相應的方法。在登陸頁里面可以找到有一個“action=logon”的字樣,它的目的就是在這里做邏輯判斷.當action=logon時調(diào)用logon()方法。logon()方法從UsersForm中得到用戶提交的數(shù)據(jù),然后在調(diào)用UsersDao()的logonUsers()方法.并且把UsersForm轉(zhuǎn)成Users類做為logonUsers()方法的參數(shù)。調(diào)用后會返回一個boolean型的值。如果為真,則返回“mapping。findForward(”success");”否則返回“mapping。findForward(”fail");”也就是當用戶登陸成功后,返回給用戶登陸成功的頁面,登陸失敗后返回用戶一個登陸失敗的頁面。那么UsersDao的logonUsers()方法是根據(jù)什么得到的返回值呢,現(xiàn)在就讓我們看看這個方法,這個方法先通過HibSessionFactory得到一個Hibernate的Session并且開始一個事務,Session再像使用一個欲編譯似的命令似的東西,設定參數(shù)、提交事務和最后在關(guān)閉Session。.得到一個List里面就存儲著所有查詢出的結(jié)果。根據(jù)這個結(jié)果就可以判斷出該用戶是否有登陸的權(quán)根了,在返回true或者false。就這樣合法的用戶就可以順利的登陸了。那剛才那些有些類似于欲編譯的東西是什么呢,這些就是Hibernate特有的查詢語言,被稱為Hibernate查詢語言(HQL),而它本身也就是使用的JDBC的欲編譯技術(shù)。關(guān)鍵代碼如下:publicStringexecute(){ if(hasErrors()){ returnINPUT;}ActionContext.getContext()。getSession().put("user",admin); returnSUCCESS;}publicvoidvalidate(){Stringnumber=(String)ActionContext。getContext()。getSession()。get(”number"); System。out.println(”name--——-”+name); if(name==null||name。trim()。equals(””)){ addFieldError("username”,”用戶名不能為空”); return; } if(psw==null||psw。trim()。equals(””)){ addFieldError(”userpsw”,”密碼不能為空"); return; } if(!number。equalsIgnoreCase(num)){ addFieldError(”checkcode”,”驗證碼不正確"); return; }AdminDAOdao=(AdminDAO)DAOFactory。getDAOInstance(AdminDAO.class); admin=dao。findByUserId(name);if(admin==null||!psw。trim().equals(admin。getPassword())){ addFieldError(”login”,”不是合法用戶”); return; } }5.3。2教師管理模塊設計教師管理模塊主要包括審核課題信息、添加課題、查看教師、添加教師.此模塊文件架構(gòu)如圖5。4所示。各項管理工作都是在用戶成功登陸后的管理頁面進行的,在管理控制頁面的左側(cè)是各項的相關(guān)鏈接,右側(cè)是操作平臺。單擊“添加課題信息”,即打開添加課題信息的頁面如圖5。4所示。圖5.4添加課題信息頁面添加課題信息的鏈接是這樣的,如下所示:<ahref=”addtopic。jsp"target="main"〉添加課題〈/a〉在Struts配置文件中,添加課題信息的鏈接沒有使用Action類,也沒有使用Action的實現(xiàn)類,如下所示:addTopic。jsp文件,只是一個普通的JSP文件,但是它的表單元素都是與TopicAction相對應的,TopicAction如下所示:TocpicAction類中的reset()方法作用是當用戶點擊“重置”按鈕時,清空input輸入框的內(nèi)容,toString()方法覆蓋了Object和toString()方法,populate()方法很有,它把TopicAction轉(zhuǎn)化成Topic實體類,大大方便了程序在對數(shù)據(jù)庫操作時使用的方便。而且這個方法中還把申請日期等表單元素的值由字符型轉(zhuǎn)成日期類型。在addTopic。jsp頁面中的action上可以看到它要提交的URL,如下所示:〈formname=”topic"method=”post”action=”topic_add。action">,Topic的action實現(xiàn)類是“com。graduate。TopicAction”,如下所示:publicTsave(Tentity){ Sessionsession=HibernateSessionFactory.getSession(); session.save(entity); returnentity;在TopicAction找到參數(shù)action等于add時所調(diào)用的方法addTopic(),它只是把從topic表單轉(zhuǎn)化成的topic類做為參數(shù)傳給了TopicDAO的save()方法。在由這個方法向數(shù)據(jù)庫添加課題信息,如下所示:如果添加成功頁面會被被重新加載回頁面顯示出來topic.action的URL.這樣就在頁面做一次提交時它訪問了二次TopicAction,第一次的作用是向數(shù)據(jù)庫中添加信息,隨后又把所添加的課題信息取出來顯示給用戶,同樣TopicAction還只是調(diào)用TopicDAO,TopicAction取出從TopicDAO中數(shù)據(jù),在把它存到ActionContext里,然后返回returnmapping.findForward(”success”);在Strutsr的配置文件里返回頁是addTopic。jsp.課題信息都在這個頁中顯示出來.這是添加課題信息的整個過程,在這個過程中,有一部分是用于顯示課題信息的,課題信息的列表的最后一列可以對該條記錄做刪除和修改。刪除的鏈接地址是〈ahref="topic_deleteTopic。action”>刪除</a〉它向Action的實現(xiàn)類提交了兩個參數(shù),一個是action=deleteTopic是固定不變的,另一個是該課題的id這是根據(jù)不同記錄取出來的。在TopicAction類中根據(jù)action的值可以找到與其相對的方法,在這個方法里得到頁面提交過來的用戶ID,把這個id存在Topic表中的實例中,傳給dao的delete()方法,我們可以看到關(guān)于數(shù)據(jù)庫方面的操作都被封裝在Dao中.刪除用戶時和添加用戶一樣都是先得到一個Hibernate的Session,后調(diào)用它的delete()方法就可以了修改課題的信息時必須先把要修改的課題信息先查找出來,讓用戶可以直觀的根據(jù)以前的信息修改。這樣在點擊修改時也要傳給Action一個用戶ID,用來查詢出課題信息,如下所示:〈ahref=”topic_modifyTopic.action&id='topic.getId()’”〉編輯〈/a〉”〉修改〈/a>根據(jù)頁面的鏈接可以在Struts的配置文件里找到相應的配置信息,它調(diào)用了TopicAction類,返回到updateTopic,在UsserAction中同前面一樣也是根據(jù)action的參數(shù)來識別出調(diào)用相應的方法,使在調(diào)用Dao的loadTopic()的方法后,得到一個Topic里面存著與此id相對應的課題把它存在request里。Hibernate在使用這個load()方法時比較特別,需要傳入實體類的class,和要查詢的用戶ID。得到的返回值需要做一下強制類型轉(zhuǎn)換。顯示課題信息的頁面在updateTopic.jsp,如圖所示.圖5。5修改課題信息頁面5.4技術(shù)難點5。4。1中文亂碼由于瀏覽器中的參數(shù)傳遞是按字節(jié)傳送,因此英文和數(shù)字不會有任何的問題,而中文漢字則由兩個字節(jié)組成.為了解決這個問題,使用了下面的兩種方法:<%request。setCharacterEncoding(“utf-8”<%request。getParameter(”Password”).getBytes(”ISO—8849—1”),"utf—8”)%〉5.4。2HQL語言本系統(tǒng)中,所有對數(shù)據(jù)庫的操作都由Hibernate來完成,因此用到了大量的HQL語言.HQL是Hibernate設計的一套完整而實用高效的查詢語言,它通過面向?qū)ο蟮恼Z句結(jié)構(gòu)實現(xiàn)了和SQL語言類似的功能。如果向表里插入一條數(shù)據(jù)的話,直接調(diào)用save()方法即可,但如果要使用查詢功能的話,我按照一般的SQL語句的方法:from表名where條件,卻總是找不到預期的數(shù)據(jù),后來看書中發(fā)現(xiàn),from后跟的是表對應映射的類文件名,而非表名,比如招聘表為invite,它對應的類為Invite。java,所以在from后要根Invite而不是invite.6測試6。1常用的測試方法測試在整個軟件開發(fā)過程中起著至關(guān)重要的作用,軟件測試對于保證一個軟件的可靠性是極為重要的.測試占據(jù)整個軟件生命周期的75%左右,可見它的重要性。特別是在面對一個龐大而復雜的系統(tǒng),軟件測試就能充分的發(fā)揮它的作用,因為伴隨著測試,我們會發(fā)現(xiàn)軟件中存在的各種各樣的問題.從而,盡快地解決問題。在開發(fā)一個系統(tǒng)的各個階段都不可避免地會發(fā)生這樣或那樣的問題,所以在每一個開發(fā)的過程中的各個階段都要對軟件進行測試,軟件測試的目標是盡可能地發(fā)現(xiàn)軟件中的錯誤,以便對其進行修改。測試包括單元測試和集成測試。單元測試是把一個模塊作為獨立的程序單元進行測試,以保證它能夠正確執(zhí)行規(guī)定的功能,單元測試是編碼和單元測試階段的任務。集成測試是將已經(jīng)通過徹底測試的模塊組裝起來,以形成一個系統(tǒng)或軟件產(chǎn)品,集成測試主要使用黑盒測試法對系統(tǒng)進行功能測試,集成測試的主要任務是檢查和排除模塊接口錯誤。全局數(shù)據(jù)結(jié)構(gòu)錯誤。模塊中某些遺漏的錯誤;集成測試是系統(tǒng)集成階段的任務;集成測試可分為自頂向下集成測試、自底向上集成測試、自頂向下和自底向上綜合的集成測試、回歸測試、測試工作能否成功,主要取決于測試案例設計是否科學合理。測試案例系指測試輸入數(shù)據(jù)及其對應的輸出,其設計依賴于所采用的測試方法:白盒測試與黑盒測試.1.白盒測試:使用白盒方法導出測試案例是依據(jù)模塊的編碼,即模塊的內(nèi)部邏輯對測試者是可見的,故稱為白盒測試,有時也稱為玻璃盒測試。測試的目的在于用最少的測試案例,檢測出最多的錯誤。使用白盒測試方法所導出的測試案例能保證模塊中所有獨立途徑至少要測試一次.測試所有邏輯決策真和假兩個方面.在所有循環(huán)的邊界內(nèi)部和邊界上執(zhí)行循環(huán)體。檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以保證其有效性。白盒測試又包含基本路徑測試、條件測試、數(shù)據(jù)流測試和循環(huán)測試。2.黑盒測試:黑盒測試集中在軟件的功能需求上,黑盒測試是在程序或模塊的接口級進行,而不考慮該程序的內(nèi)部邏輯。黑盒測試能夠用于檢測程序中下列類型的錯誤:(1)不正確或漏掉的功能,這往往是由于程序算法中的問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣東廣州市白云區(qū)云城街第一次招聘政府雇員3人備考題庫及1套完整答案詳解
- 人力資源市場規(guī)范承諾書(3篇)
- 2026廣東東莞市橫瀝鎮(zhèn)中心幼兒園教職工招聘2人考試參考試題及答案解析
- 2026江蘇護理職業(yè)學院招聘24人筆試備考題庫及答案解析
- 2025至2030中國跨境電商獨立站運營模式及海外市場拓展分析報告
- 職業(yè)內(nèi)其他承諾書主題類型5篇范文
- 2026中國鋁業(yè)集團有限公司總部部門部分處室副處長、副經(jīng)理崗位競爭上崗5人考試參考試題及答案解析
- 2026湖南永州市廉潔征兵考試參考題庫及答案解析
- 2026財達證券股份有限公司財富管理與機構(gòu)業(yè)務委員會邯鄲光明北大街證券營業(yè)部總經(jīng)理招聘1人(河北)備考考試題庫及答案解析
- 2026鄱陽湖湖泊濕地綜合研究站實驗支撐崗位招聘1人備考考試題庫及答案解析
- 2025-2026學年蘇教版六年級數(shù)學上學期期中試卷及參考解析
- GB/T 19436.2-2025機械電氣安全電敏保護設備第2部分:使用有源光電保護裝置(AOPDs)設備的特殊要求
- 凈菜加工工藝流程與質(zhì)量控制要點
- 第02講排列組合(復習講義)
- 大型商業(yè)綜合體消防安全應急預案
- 2025年妊娠期梅毒考試題及答案
- 淺談國土年度變更調(diào)查及林草濕荒監(jiān)測區(qū)別
- 《砂漿、混凝土用低碳劑》
- 2025年社區(qū)工作總結(jié)及2026年工作計劃
- 《 證券投資學》教學方案
- 南昌地鐵培訓課件
評論
0/150
提交評論