




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
畢業(yè)生檔案管理系統(tǒng)緒論1.1系統(tǒng)開發(fā)背景隨著科技的發(fā)展,計算機本身經(jīng)歷了巨大的變化。計算機的概念也由原始的分立式走向今天的網(wǎng)絡(luò)式。網(wǎng)絡(luò)技術(shù)已逐漸成為現(xiàn)代信息技術(shù)的主流,網(wǎng)絡(luò)的概念也隨著Internet技術(shù)和應(yīng)用的發(fā)展而漸入人心。Internet/Intranet的作用正為越來越多的人所認識,通過網(wǎng)絡(luò)共享信息正成為科學(xué)研究的一種重要手段??梢赃@么說,誰擁有信息,誰就能在科技信息革命的大潮中獲得主動權(quán),就能獲取成功。面對信息時代的挑戰(zhàn),網(wǎng)絡(luò)的功能越來越強,國內(nèi)教育系統(tǒng)也在積極建設(shè)或升級計算機網(wǎng)絡(luò),并已建成了規(guī)模較大的中國教育科研網(wǎng),全國許多學(xué)校也紛紛建立或升級自己的校園網(wǎng)絡(luò)系統(tǒng),許多高校還提出了辦公無紙化的口號。校園網(wǎng)是實現(xiàn)辦公自動化、管理科學(xué)化、教學(xué)手段現(xiàn)代化和圖書情報信息網(wǎng)絡(luò)化最有利的支撐環(huán)境。但是,目前校園網(wǎng)的利用率卻不是很高,主要原因是缺少好的網(wǎng)絡(luò)應(yīng)用平臺。以前開發(fā)的MIS系統(tǒng)往往是在單機上運行,或者采用C/S技術(shù)開發(fā)出來的,對于今天因特網(wǎng)時代來說,這些系統(tǒng)很大程度上已經(jīng)不能滿足用戶隨時隨地獲取信息的需要。學(xué)校學(xué)生檔案管理最初是人工方式進行,顯然在信息化發(fā)展的今天,這遠遠不能滿足檔案管理的需要。后來,隨著單機板檔案管理系統(tǒng)的開發(fā),這在很大程度上解決了上述矛盾但是,這種系統(tǒng)如今也不能滿足檔案管理的要求了,這主要是由于高校的擴招,在校學(xué)生人數(shù)的增加。因此,開發(fā)B/S結(jié)構(gòu)的MIS是勢在必行。本文正是在這種背景下提出的,目的是為了開發(fā)出一套功能完善、操作便捷、及時性好、適用面廣學(xué)校學(xué)生檔案管理系統(tǒng),以提高學(xué)校學(xué)生檔案管理的效率。隨著計算機互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,計算機在各行各業(yè)的應(yīng)用越來越廣泛,而且網(wǎng)絡(luò)化是21世紀計算機技術(shù)發(fā)展的重要趨勢之一。目前,我國的計算機網(wǎng)絡(luò)發(fā)展己初具規(guī)模,大部分高校的校園網(wǎng)都已開通。因此,如何充分利用高校校園網(wǎng)絡(luò),發(fā)揮其巨大功能來為高校的教學(xué)和科研服務(wù)成為擺在我們面前的一個需要深入探討和解決的重大課題。隨著網(wǎng)絡(luò)技術(shù)的日益成熟,網(wǎng)頁技術(shù)的應(yīng)用已經(jīng)深入到了生活的每個角落。一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。1.2系統(tǒng)開發(fā)的目的及意義21世紀以來,人類經(jīng)濟高速發(fā)展,人們發(fā)生了日新月異的變化,特別是計算機的應(yīng)用及普及到經(jīng)濟和社會生活的各個領(lǐng)域。使原本的舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展。許多人還停留在以前的手工操作。這大大地阻礙了人類經(jīng)濟的發(fā)展。為了適應(yīng)現(xiàn)代社會人們高度強烈的時間觀念,學(xué)校學(xué)生檔案信息管理系統(tǒng)軟件為學(xué)校辦公室?guī)砹藰O大的方便。在各大中小學(xué)校,用計算機管理學(xué)校的信息已經(jīng)越來越普遍了。用計算機不但可以提高工作效率,而且還節(jié)省了許多人力物力,增強了學(xué)校資料的安全性。提高了學(xué)校的管理能力,為此,用計算機來管理學(xué)校的信息,是非常必要的。畢業(yè)生檔案管理系統(tǒng)是一個教育單位不可缺少的部分。一個功能齊全、簡單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負擔(dān),它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。所以畢業(yè)生檔案管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計和查詢數(shù)據(jù),這種管理方式存在著許多缺點,如:效率低、保密性差,人工的大量浪費;另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著來越重要的作用。畢業(yè)生檔案管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強,數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于后者則要求應(yīng)用程序功能完備,清晰明了又易操作等特點。本系統(tǒng)實現(xiàn)了查詢學(xué)生檔案管理系統(tǒng)的主要功能,以無紙化的管理及應(yīng)用不但可以提高工作效率、減少學(xué)校的投資成本,而且可以實現(xiàn)學(xué)?;蚱髽I(yè)高效率辦公的宗旨。作為計算機應(yīng)用的一部分,使用計算機對學(xué)校的各類信息進行管理,具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查詢方便、效率高、可靠性好、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學(xué)校信息管理的效率,也是一個單位科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。如今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。而學(xué)生檔案管理系統(tǒng)是一個學(xué)校不可缺少的重要部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生檔案管理系統(tǒng)應(yīng)該為用戶提供充足的信息和快捷的查詢手段。隨著計算機應(yīng)用的普及與深入,利用計算機能夠?qū)λ锌荚嚈n案進行統(tǒng)一管理,并進行分析,大大減少教務(wù)處的工作量,提高工作效率,為教學(xué)辦公帶來了極大的方便。本系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)學(xué)生檔案管理的系統(tǒng)化、規(guī)范化、自動化、達到提高學(xué)生檔案管理效率的目的,本系統(tǒng)本著實用性、通用、開放和安全的原則,使數(shù)據(jù)庫開發(fā)軟件開發(fā)制作,實現(xiàn)了學(xué)生信息管理、學(xué)生檔案管理、檔案查詢等功能。該設(shè)計方法易于推廣至其它信息化管理系統(tǒng)的設(shè)計,充分利用計算機作為輔助工具,對提高管理效率和節(jié)約大量的人力、物力有一定的推動作用。本系統(tǒng)一切從實際出發(fā),充分考慮了檔案的內(nèi)部管理、信息交流等方面的復(fù)雜需求,實現(xiàn)檔案的有效管理,真正為學(xué)生檔案管理提供一個電子平臺。1.3系統(tǒng)開發(fā)及運行環(huán)境操作系統(tǒng):WindowsXP/win7/win8;數(shù)據(jù)庫:mysql;服務(wù)器:Tomcat6.0開發(fā)工具包:JDK1.670以及MyEclipse8.5;2系統(tǒng)可行性分析及技術(shù)簡介可行性研究(FeasibilityStudy)是為了弄清所定義的項目是不是可能實現(xiàn)并值得進行??尚行匝芯康哪康氖怯幂^小的代價盡可能快的確定問題是否能夠解決,是否值得解決,并通過分析以避免冒太大的風(fēng)險。從技術(shù)、經(jīng)濟和操作三個方面分析本系統(tǒng)的可行性。2.1技術(shù)可行性畢業(yè)生檔案管理管理系統(tǒng),它采用了當前流行的B/S結(jié)構(gòu)和Internet網(wǎng)絡(luò)技術(shù)。技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,軟硬件配置能否滿足開發(fā)者需要等,這一特點非常適合計算機的特點,發(fā)揮計算機的數(shù)據(jù)處理速度快,準確率高的優(yōu)勢,現(xiàn)代計算機硬件和軟件技術(shù)的飛速發(fā)展,為系統(tǒng)的建設(shè)提供了技術(shù)條件。由于對企業(yè)工資管理系統(tǒng)這一類的企業(yè)財務(wù)系統(tǒng)進行開發(fā)已有一定的時期,有很多成功的實例,技術(shù)基礎(chǔ)也已經(jīng)非常雄厚,因而技術(shù)上的準備應(yīng)該不成問題。其相關(guān)技術(shù)簡介詳見2.4節(jié)。2.2經(jīng)濟可行性主要是對項目的經(jīng)濟效益進行評價,一方面是支出的費用,其中包括設(shè)備購置費,軟件開發(fā)費,管理和維護費,人員工資和培訓(xùn)費等。另一方面是取得的收益中可以用錢來衡量的那部分(收益的另一部分難以用錢來表示)。基于企業(yè)的現(xiàn)有計算機及配套設(shè)備,建設(shè)MIS系統(tǒng)。不但能大大減少重復(fù)性的書面報告,降低辦公費用,提高辦公室效率,而且能提高檢測數(shù)據(jù)效用,為企業(yè)提供很方便。由于企業(yè)工資管理系統(tǒng)是一個比較小型的系統(tǒng),是由我一個人進行開發(fā)的,所以從人力、物力、財力方面來說都是可行的。2.3操作可行性網(wǎng)絡(luò)化已經(jīng)成為社會的趨勢,本系統(tǒng)操作簡單方便,用戶可以通過閱讀操作手冊就能輕松使用該系統(tǒng)。采用本系統(tǒng),能夠使整個系統(tǒng)內(nèi)部所有信息的工作簡化,提高工作效益。由于采用統(tǒng)一的數(shù)據(jù)信息,使相關(guān)資料能夠快速地查詢所需的數(shù)據(jù)、資料及其它信息的,使信息快速高效運行。2.4相關(guān)技術(shù)簡介2.4.1JSP簡介JSP(JavaServerPages)是目前十分流行的一種技術(shù),主要用于發(fā)服務(wù)器端的腳本程序和動態(tài)生成網(wǎng)站。它與目前同樣流行的ASP技術(shù)、ASP.NET技術(shù)是相同性質(zhì)的、同一層次的,它們在網(wǎng)站的建設(shè)中所起的作用是一樣的,但是JSP技術(shù)與這兩種技術(shù)相比,有著十分突出的優(yōu)越性,因為JSP技術(shù)有J2EE平臺支持,發(fā)展前途不可限量。眾所周知,J2EE平臺提供了Java企業(yè)應(yīng)用編程接口(JavaEnterpriseAPIs),為企業(yè)計算以及電子商務(wù)應(yīng)用系統(tǒng)提供了相關(guān)的技術(shù)支持和強大的類庫支持。J2EE平臺包含十幾種技術(shù),JSP技術(shù)正是其中的一種核心技術(shù)。J2EE的發(fā)展勢頭十分迅猛,在可以預(yù)見的將來,Sun的J2EE平臺可能是惟一可以與微軟的.NET構(gòu)架相抗衡的平臺。從這個意義上來說,基于J2EE平臺的JSP技術(shù)與基于.NET平臺的ASP、ASP+技術(shù)之爭,不正好就是J2EE平臺與.NET平臺之爭的折射嗎?因此JSP技術(shù)以及它的基礎(chǔ)J2EE技術(shù)十分值得我們關(guān)注。2.4.2Struts2簡介Struts最早是作為ApacheJakarta項目的組成部分問世運做。項目的創(chuàng)立者希望通過對該項目的研究,改進和提高JSP、Servlet、標簽庫以及面向?qū)ο蟮募夹g(shù)水準。Struts的目的是為了幫助開發(fā)者減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。仍然需要學(xué)習(xí)和應(yīng)用該架構(gòu),不過它將可以完成其中一些繁重的工作。如果想混合使用Servlet和JSP的優(yōu)點來建立可擴展的應(yīng)用,Struts是一個不錯的選擇。Struts是MVC的一種實現(xiàn),它將Servlet和JSP標記(屬于J2EE規(guī)范)用作實現(xiàn)的一部分。Struts繼承了MVC的各項特性,并根據(jù)J2EE的特點,做了相應(yīng)的變化與擴展。Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml配置文件。2.4.3Hibernate簡介Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。2.4.4jqueryminiui簡介jQueryMiniUI-快速開發(fā)Web界面開發(fā)框架。它能縮短開發(fā)時間,減少代碼量,使開發(fā)者更專注于業(yè)務(wù)和服務(wù)端,輕松實現(xiàn)界面開發(fā),帶來絕佳的用戶體驗。使用MiniUI,開發(fā)者可以快速創(chuàng)建Ajax無刷新、B/S快速錄入數(shù)據(jù)、CRUD、Master-Detail、菜單工具欄、彈出面板、布局導(dǎo)航、數(shù)據(jù)驗證、分頁表格、樹、樹形表格等典型WEB應(yīng)用系統(tǒng)界面。易學(xué)易用:簡單的API設(shè)計,可以獨立、組合使用控件。性能優(yōu)化:內(nèi)置數(shù)據(jù)懶加載、低內(nèi)存開銷、快速界面布局等機制。豐富控件:包含表格、樹、數(shù)據(jù)驗證、布局導(dǎo)航等超過50個控件。行過濾、數(shù)據(jù)匯總、單元格編輯、詳細行、Excel導(dǎo)出等功能。第三方兼容:與ExtJS、jQuery、YUI、Dojo等任意第三方控件無縫集成。瀏覽器兼容:支持IE6+、FireFox、Chrome等。2.4.5poi簡介ApachePOI是Apache軟件基金會的開放源碼函式庫,POI提供API給Java程序?qū)icrosoftOffice格式檔案讀和寫的功能。結(jié)構(gòu):HSSF-提供讀寫MicrosoftExcel格式檔案的功能。XSSF-提供讀寫MicrosoftExcelOOXML格式檔案的功能。HWPF-提供讀寫MicrosoftWord格式檔案的功能。HSLF-提供讀寫MicrosoftPowerPoint格式檔案的功能。HDGF-提供讀寫MicrosoftVisio格式檔案的功能。微軟在桌面系統(tǒng)上的成功,令我們不得不大量使用它的辦公產(chǎn)品,如:Word,Excel。時至今日,它的源代碼仍然不公開已封鎖了我們的進一步應(yīng)用和開發(fā)。然而在要求更高的服務(wù)器領(lǐng)域,微軟本身的產(chǎn)品移植性不好,性能不佳。ApachePOI提供了很好地excel解析的解決方案,使開發(fā)者更加方便的操作excel文檔的數(shù)據(jù)內(nèi)容。3需求分析與設(shè)計軟件需求分析是軟件開發(fā)期的第一個階段,也是關(guān)系到軟件開發(fā)成敗的關(guān)鍵步驟。準確、完整和規(guī)范化的軟件需求是軟件開發(fā)成功的關(guān)鍵。它的重要性在于讓用戶完全清楚對軟件系統(tǒng)的確切要求,它不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作。也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。反復(fù)的調(diào)查和研究,了解數(shù)據(jù)庫的組織的詳細情況,了解管理的業(yè)務(wù)流程等系統(tǒng)需求,它對于設(shè)計好概念模型是至關(guān)重要的。而需求分析的好壞直接影響到系統(tǒng)設(shè)計的好壞。3.1需求規(guī)范本系統(tǒng)根據(jù)畢業(yè)生檔案管理手冊,將畢業(yè)生檔案管理整個過程分成若干環(huán)節(jié),采用B/S模式,通過網(wǎng)頁完成畢業(yè)生檔案各環(huán)節(jié)的信息采集工作,運用數(shù)據(jù)庫及網(wǎng)頁技術(shù),控制畢業(yè)論文各個環(huán)節(jié),動態(tài)統(tǒng)計各種數(shù)據(jù),完成對畢業(yè)論文各個環(huán)節(jié)的質(zhì)量監(jiān)控。3.1.1產(chǎn)品背景目前,我國的計算機網(wǎng)絡(luò)發(fā)展己初具規(guī)模,大部分高校的校園網(wǎng)都已開通。因此,如何充分利用高校校園網(wǎng)絡(luò),發(fā)揮其巨大功能來為高校的教學(xué)和科研服務(wù)成為擺在我們面前的一個需要深入探討和解決的重大課題。隨著網(wǎng)絡(luò)技術(shù)的日益成熟,網(wǎng)頁技術(shù)的應(yīng)用已經(jīng)深入到了生活的每個角落。3.1.2產(chǎn)品概述畢業(yè)生檔案管理系統(tǒng)根畢業(yè)生檔案管理手冊,將畢業(yè)生檔案整個過程分成若干環(huán)節(jié),采用B/S模式,通過網(wǎng)頁完成畢業(yè)論文各環(huán)節(jié)的信息采集工作,運用數(shù)據(jù)庫及網(wǎng)頁技術(shù),控制畢業(yè)生檔案管理各個環(huán)節(jié),動態(tài)統(tǒng)計各種數(shù)據(jù)。3.1.3性能需求本系統(tǒng)由Java語言所開發(fā),所以具有高度的可移植性。在軟件方面,響應(yīng)時間,更新處理時間都比較快且迅速,完全滿足用戶需求。當用戶需求,如操作方式,運行環(huán)境發(fā)生變化時,設(shè)計的軟件要做適當調(diào)整,靈活性非常大。3.2系統(tǒng)功能描述本系統(tǒng)主要包括學(xué)生用戶、普通管理員用戶、高級管理員用戶三種角色。其功能主要有:學(xué)生用戶:1、修改登錄賬號信息。2、查看畢業(yè)生基本信息,學(xué)院,班級,學(xué)號;查看畢業(yè)生詳細信息;3、查看留言,添加留言;4、修改基本信息,詳細信息的審核;查看審核的結(jié)果。高級管理員用戶:1、查詢檔案柜,綜合查詢學(xué)生的檔案信息,檔案在檔案柜中的編號。2、添加查詢信息,刪除信息。3、單個添加畢業(yè)生信息,批量導(dǎo)入畢業(yè)生信息。查詢,打印畢業(yè)生信息。4、修改個人信息。5、增刪改查普通管理員信息。6、查詢回復(fù)學(xué)生留言。7、審核待審核的學(xué)生檔案。普通管理員:1、查詢檔案柜,綜合查詢學(xué)生的檔案信息,檔案在檔案柜中的編號。2、修改個人信息。3、查詢學(xué)生檔案編號,打印畢業(yè)生信息。4、查詢回復(fù)學(xué)生留言。3.3系統(tǒng)主要功能模塊3.3.1管理員模塊系統(tǒng)管理員擁有最高的權(quán)限,可以對對系統(tǒng)進行任意操作,能夠?qū)ζ胀ü芾韱T進行管理,對學(xué)生檔案進行管理。經(jīng)分析,得出管理員具有的功能如下:查詢檔案柜,綜合查詢學(xué)生的檔案信息,檔案在檔案柜中的編號。添加查詢信息,刪除信息。單個添加畢業(yè)生信息,批量導(dǎo)入畢業(yè)生信息。查詢,打印畢業(yè)生信息。修改個人信息。增刪改查普通管理員信息。查詢回復(fù)學(xué)生留言。審核待審核的學(xué)生檔案。具體的功能模塊圖如圖3-1所示:系統(tǒng)管理員系統(tǒng)管理員檔案柜畢業(yè)生信息普通管理員信息管理留言管理審核檔案添加,刪除檔案柜信息查詢檔案信息查詢畢業(yè)生檔案批量導(dǎo)入刪除信息修改個人信息添加普通管理員信息修改普通管理員信息回復(fù)學(xué)生留言刪除學(xué)生留言審核學(xué)生基本信息圖3-1:系統(tǒng)管理員模塊圖3.3.2普通管理員模塊普通管理員只是非配出來減輕系統(tǒng)管理員的工作量,他的功能有限,不能像系統(tǒng)管理員一樣可以任意操作。經(jīng)分析,得出普通管理員具有的功能如下:查詢檔案柜,綜合查詢學(xué)生的檔案信息,檔案在檔案柜中的編號。2、修改個人信息。3、查詢學(xué)生檔案編號,打印畢業(yè)生信息。4、查詢回復(fù)學(xué)生留言。具體的功能模塊圖如圖3-2所示:普通管理員普通管理員檔案柜管理畢業(yè)生信息管理普通管理員信息管理留言管理查詢檔案信息查詢畢業(yè)生檔案管理個人信息回復(fù)學(xué)生留言刪除學(xué)生留言圖3-2:普通管理員模塊圖3.3.3學(xué)生模塊學(xué)生的功能可以進行個人登錄信息的修改,給管理人員留言,修改個人基本信息和檔案信息,提交審核,經(jīng)分析,得出學(xué)生具有的功能如下:修改登錄賬號信息。查看畢業(yè)生基本信息,學(xué)院,班級,學(xué)號;查看畢業(yè)生詳細信息;查看留言,添加留言;修改基本信息,詳細信息的審核;查看審核的結(jié)果。具體的功能模塊圖如圖3-3所示:學(xué)生用戶學(xué)生用戶修改檔案個人信息個人基本檔案個人信息管理查看個人基本檔案信息添加留言提交待審核的檔案刪除留言學(xué)生用戶留言管理修改檔案圖3-3:學(xué)生模塊圖3.4數(shù)據(jù)庫分析與設(shè)計畢業(yè)生檔案系統(tǒng)用于對學(xué)生檔案信息信息管理,系統(tǒng)管理員可以進行檔案柜的管理,學(xué)生信息的增刪改查,檔案編號的查詢。每個檔案柜里存放著許多份的學(xué)生檔案,每一份學(xué)生檔案對應(yīng)著一個學(xué)生和一個檔案編號。檔案記錄表,記錄下每個學(xué)生的身份證號和檔案編號,形成對應(yīng)關(guān)系。一個檔案柜對應(yīng)著多條檔案記錄,一條檔案記錄只對應(yīng)著一個學(xué)生。系統(tǒng)管理員可以管理普通管理員。學(xué)生用戶可以給管理員進行留言操作,每條留言記錄包含一個學(xué)生的登陸賬號和管理員的登陸賬號,一個學(xué)生可以對應(yīng)多條留言記錄,一個管理員也對應(yīng)多條留言記錄。學(xué)生有基本信息表和檔案信息表,一個學(xué)生只對應(yīng)一個基本信息和檔案信息。經(jīng)分析,得出畢業(yè)生檔案管理系統(tǒng)應(yīng)具有如下的實體對象:管理員;學(xué)生;檔案柜;檔案記錄;留言板;學(xué)生基本信息;學(xué)生檔案信息。1、管理員實體對象:具有賬號、姓名、登錄密碼、權(quán)限等屬性,具體如圖3-4所示。管理員用戶管理員用戶賬號密碼姓名權(quán)限圖3-4:管理員用戶經(jīng)分析轉(zhuǎn)換得到的關(guān)系表如表2-1所示。表2-1:管理員用戶表編號字段名稱字段類型字段寬度1admin_idVARCHAR182admin_nameVARCHAR203admin_passVARCHAR204typeINT2、學(xué)生實體對象:具有身份證號、姓名、登錄密碼等屬性;具體如圖3-5所示。姓名姓名學(xué)生用戶密碼身份證圖3-5學(xué)生用戶經(jīng)分析轉(zhuǎn)換得到的關(guān)系表如表2-2表2-2:管理員用戶表編號字段名稱字段類型字段寬度1user_nameCHAR182user_passCHAR203user_idVARCHAR18檔案柜實體對象:具有學(xué)院、班級、畢業(yè)年份、編號等屬性;具體如圖3-6所示。檔案柜檔案柜畢業(yè)年份班級編碼學(xué)院圖3-6:檔案柜經(jīng)分析轉(zhuǎn)換得到的關(guān)系表如表2-3表2-3:檔案柜表編號字段名稱字段類型字段寬度1dangangui_idINT2xueyuanCHAR103yearVARCHAR204school_classVARCHAR30學(xué)生基本信息:學(xué)院、班級、畢業(yè)年份、學(xué)號等屬性;具體如圖3-7所示。學(xué)生基本信息學(xué)生基本信息學(xué)院姓名身份證號班級學(xué)號類型圖3-7:學(xué)生基本信息經(jīng)分析轉(zhuǎn)換得到的關(guān)系表如表2-4表2-4:學(xué)生基本信息編號字段名稱字段類型字段寬度1school_idINT2user_idVARCHAR183xueyuanCHAR104yearVARCHAR205school_classVARCHAR306nameVARCHAR307xuehaoVARCHAR138typeINT留言實體對象:學(xué)院、班級、畢業(yè)年份、學(xué)號等屬性;具體如圖3-8所示。留言留言學(xué)生身份證管理員賬號留言內(nèi)容回復(fù)內(nèi)容圖3-8:留言信息經(jīng)分析轉(zhuǎn)換得到的關(guān)系表如表2-5表2-5留言信息編號字段名稱字段類型字段寬度1Word_idINT2user_idVARCHAR183admin_idVARCHAR184typeINT1Word_idINT4系統(tǒng)功能實現(xiàn)詳細設(shè)計是軟件開發(fā)時期的第三個階段,也是軟件設(shè)計的第二步??傮w設(shè)計階段已經(jīng)確定了軟件系統(tǒng)的總體結(jié)構(gòu),給出了系統(tǒng)中各個組成模塊的功能和模塊間的聯(lián)系。這一步的工作,就是要在上述結(jié)果的基礎(chǔ)上,考慮“怎樣實現(xiàn)”這個軟件系統(tǒng),直到對系統(tǒng)中的每個模塊給出足夠詳細的過程性描述。需要指出,這些描述應(yīng)該用詳細設(shè)計的表達工具來表示,但它們還不是程序,一般不能在計算機上運行。詳細設(shè)計是編碼的先導(dǎo)。這個階段所產(chǎn)生的設(shè)計文檔的質(zhì)量,將直接影響下一階段程序的質(zhì)量。為了提高文檔的質(zhì)量和可讀性,說明書除了說明詳細設(shè)計的目的、任務(wù)與表達工具外,還要介紹結(jié)構(gòu)程序設(shè)計的基本原理,以及如何用這些原理來指導(dǎo)模塊內(nèi)部的邏輯設(shè)計,提高模塊控制結(jié)構(gòu)的清晰度。1、根據(jù)原型化的開發(fā)原則,為系統(tǒng)的每個模塊功能進行界面設(shè)計,作為進一步優(yōu)化的基礎(chǔ)。2、進行系統(tǒng)的流程分析,為模塊的細化做好準備。3、對每個模塊進行詳細的算法設(shè)計。4.1系統(tǒng)運行流程圖畢業(yè)生檔案管理系統(tǒng)流程圖如圖4-1圖4-1:運行流程圖4.2系統(tǒng)登錄驗證管理員、教師以及學(xué)生使用各自賬號、密碼以及驗證碼登錄系統(tǒng),經(jīng)由系統(tǒng)對各自輸入的賬號和密碼進行JS驗證,如果驗證成功,則進入主頁面,從而進行相關(guān)操作。登錄功能的實現(xiàn)如圖4-2所示:圖4-2:登陸界面4.3系統(tǒng)管理員功能實現(xiàn)當管理員正確操作登錄系統(tǒng)后,可以進行學(xué)生檔案的查詢,增減,在此模塊,管理員可以根據(jù)信息的不同進行模糊匹配的查詢,方便人性化??梢赃M行新的普通管理員用戶的添加,修改,刪除。查看學(xué)生用戶的留言,以及審核學(xué)生提交修改基本的檔案信息的操作。由于系統(tǒng)管理員的功能最多,下面選取其中比較重要的三個功能進行詳細的描述。4.3.1學(xué)生檔案信息的綜合查詢系統(tǒng)管理員可以對學(xué)生檔案信息就行綜合查詢,其中綜合查詢采用了模糊信息,系統(tǒng)會根據(jù)管理員輸入的模糊信息進行最大程度的匹配,查詢出相應(yīng)的結(jié)果。綜合查詢的功能給系統(tǒng)管理員的操作提供了極大的方便。管理員可以輸入學(xué)院、畢業(yè)年份、班級、姓名、身份證號、學(xué)號等信息,選取其中的幾個組合信息進行查詢。系統(tǒng)在接受到查詢數(shù)據(jù)后,會自動進行數(shù)據(jù)的分析,如果數(shù)據(jù)為空則設(shè)置改參數(shù)的值為空字符串,避免對系統(tǒng)的數(shù)據(jù)查詢造成影響。查詢數(shù)據(jù)經(jīng)過處理后,利用hibernate的hql進行模糊查詢,同時進行分頁的實現(xiàn)。每次利用hibernate只查詢10條數(shù)據(jù)記錄返回給用戶顯示。雖然,綜合查詢提供了極大的方便性,同時,也出現(xiàn)了一個麻煩。那就是,在進行分頁處理的過程中,當要顯示下一頁的數(shù)據(jù),系統(tǒng)必須能夠記住前一次模糊查詢中的數(shù)據(jù)參數(shù)。例如:系統(tǒng)管理員需要查詢信息學(xué)院、2010年畢業(yè)的所有學(xué)生,請求下一頁數(shù)據(jù)的時候,系統(tǒng)必須能夠記住上次請求的數(shù)據(jù)還是信息學(xué)院、2010年畢業(yè)的學(xué)生。在此次的系統(tǒng)開發(fā)中,當請求下一頁數(shù)據(jù)時,同時將查詢關(guān)鍵字一同作為參數(shù)發(fā)送到程序中進行處理。學(xué)生檔案信息的綜合查詢功能界面如圖4-3所示:圖4-3:主功能界面4.3.2學(xué)生檔案信息的批量導(dǎo)入功能系統(tǒng)管理員可以對學(xué)生檔案信息進行添加,但是,在實際生活中,只能單個的添加學(xué)生檔案信息是根本不能滿足需求的。日常工作中,我們可能會經(jīng)常用到excel表格來處理數(shù)據(jù)。根據(jù)這一需求,本系統(tǒng)實現(xiàn)了批量導(dǎo)入excel數(shù)據(jù)的功能。只要數(shù)據(jù)按著excel表格中的特定格式進行輸入,就能夠?qū)⑾鄳?yīng)的學(xué)生檔案信息錄入到系統(tǒng)中去。錄入的過程中,系統(tǒng)會同時操作三個數(shù)據(jù)庫表。學(xué)生登錄信息表,學(xué)生基本信息表和學(xué)生檔案信息表。在功能實現(xiàn)的過程中,首先需要解決的問題是文件的上傳。系統(tǒng)管理員將excel表格上傳到服務(wù)器中,然后又程序?qū)xcel表格進行解析處理,最后插入到數(shù)據(jù)庫中去。關(guān)于文件上傳功能詳見4.5.3struts2的文件上傳;關(guān)于excel解析的操作詳見4.5.6中poi進行excel的解析操作。要求excel文件具有如圖4-4所示格式:圖4-4:excel數(shù)據(jù)格式4.3.3管理員對學(xué)生檔案信息審核系統(tǒng)管理員可以對學(xué)生的基本信息和檔案信息的修改進行審核操作。學(xué)生提交信息審核后,在管理員的系統(tǒng)中可以查看待審核的信息。審核學(xué)生信息的可靠性,做出相應(yīng)的判斷,若信息屬實,則批準學(xué)生用戶對信息的修改,否則拒絕用戶對信息的修改。4.3.4操作權(quán)限的攔截系統(tǒng)高級管理員具有著最高的權(quán)限,可以進行任意操作,所以必須對其進行合理的保護。除了判定用戶是否登陸之外,還必須對每個action的訪問實現(xiàn)權(quán)限控制,因為如果用戶登陸成功了,而且以前擁有某個權(quán)限的訪問,記錄下訪問的action,而現(xiàn)在沒有權(quán)限了,也能直接在地址欄輸入action路徑直接訪問,這將使權(quán)限這一模塊毫無用處。我們可以利用struts2的攔截器可以很方便實現(xiàn)對action的訪問攔截,先行判斷然后再決定是否能夠訪問。解決方法:在struts.xml中定義攔截器的package,定義一個攔截器,配置攔截器棧,其他需要使用到攔截器的package在配置是使用extends這個攔截器package<interceptors><!--自定義攔截器--><interceptorname="permission"class="erceptor.AdminInterceptorCheck"/><!--配制默許的攔截器到攔截器棧--><interceptor-stackname="permissionStack"><!--此處先后順序好像沒影響--><interceptor-refname="permission"/><interceptor-refname="defaultStack"/></interceptor-stack></interceptors><!--配置默認的攔截器--><default-interceptor-refname="permissionStack"/><!--定義全局結(jié)果,用于在攔截器中返回登錄頁面或者錯誤提示頁面--><global-results><resultname="logout">/logout.jsp</result><resultname="error">/error.jsp</result></global-results>同時,在用戶登陸后從數(shù)據(jù)庫查詢權(quán)限,轉(zhuǎn)為一個hashmap,權(quán)限id為鍵值為了查詢方便,放入session中,每次驗證只從session中取得響應(yīng)的數(shù)據(jù)驗證。 session.put("user",u);在攔截器中要對每一次管理員操作都進行權(quán)限的驗證,如果通過才能繼續(xù)進行操作,失敗則登錄界面。攔截器和過濾器的比較:比較一,filter基于回調(diào)函數(shù),我們需要實現(xiàn)的filter接口中doFilter方法就是回調(diào)函數(shù),而interceptor則基于java本身的反射機制,這是兩者最本質(zhì)的區(qū)別。
比較二,filter是依賴于servlet容器的,即只能在servlet容器中執(zhí)行,很顯然沒有servlet容器就無法來回調(diào)doFilter方法。而interceptor與servlet容器無關(guān)。
比較三,F(xiàn)ilter的過濾范圍比Interceptor大,Filter除了過濾請求外通過通配符可以保護頁面,圖片,文件等等,而Interceptor只能過濾請求。
比較四,F(xiàn)ilter的過濾例外一般是在加載的時候在init方法聲明,而Interceptor可以通過在xml聲明是guest請求還是user請求來辨別是否過濾。4.4學(xué)生用戶功能實現(xiàn)學(xué)生用戶可以登錄系統(tǒng)對自己的個人信息進行管理操作。4.4.1學(xué)生留言功能實現(xiàn)畢業(yè)生檔案管理系統(tǒng)在實際的運行過程中,可能會存在一些問題,或者操作不當。這時候,可能會需要學(xué)生和管理員取得聯(lián)系。在此系統(tǒng)中,特定添加了留言的功能。方便學(xué)生和管理員之間取得聯(lián)系。具體的留言操作界面如圖4-5、4-6所示:圖4-5:留言管理界面圖4-6:留言添加界面4.4.2學(xué)生提交檔案的審核系統(tǒng)管理員可以對學(xué)生的基本信息和檔案信息的修改進行審核操作。學(xué)生提交信息審核后,在管理員的系統(tǒng)中可以查看待審核的信息。審核學(xué)生信息的可靠性,做出相應(yīng)的判斷,若信息屬實,則批準學(xué)生用戶對信息的修改,否則拒絕用戶對信息的修改。4.5系統(tǒng)其他相關(guān)功能實現(xiàn)4.5.1struts2的action對表單數(shù)據(jù)的封裝傳統(tǒng)的開發(fā)模式中,采用javaBean對form數(shù)據(jù)進行封裝。在這里,struts2利用反射機制,更加便捷的對請求的數(shù)據(jù)進行了完美的封裝。只要form表單中的數(shù)據(jù)字段的name屬性和Action實現(xiàn)類中的屬性字段名稱相同,則,struts2可以繼續(xù)擰自動數(shù)據(jù)填充,為每一個字段進行復(fù)制,大大減輕的代碼的工作量。4.5.2struts2的action進行業(yè)務(wù)邏輯的操作Struts2的Action只是一個非常普通的Java對象,并不具備任何Web容器的特質(zhì),但是我們需要把Action放到一個更加大的環(huán)境中來看。事實上,Struts2為Action的執(zhí)行,準備了完整的數(shù)據(jù)環(huán)境和執(zhí)行環(huán)境。而這個執(zhí)行環(huán)境,就保證了Action在Web容器中的順利運行。
在Struts2中,每個Http的請求,會被發(fā)送到一個Filter。而這個Filter,就會針對每個請求,創(chuàng)建出一個代碼的執(zhí)行環(huán)境,并在這個基礎(chǔ)上,為每個執(zhí)行環(huán)境配備與之對應(yīng)的數(shù)據(jù)環(huán)境,這個數(shù)據(jù)環(huán)境中的內(nèi)容,就來自于Web容器中的一個又一個對象。這樣,就能夠順利調(diào)用Action執(zhí)行代碼而無需擔(dān)心它是否運行在Web容器中了。Action是一個普通的Java類,而不是一個Servlet類,完全脫離于Web容器,所以我們就能夠更加方便地對Control層進行合理的層次設(shè)計,從而抽象出許多公共的邏輯,并將這些邏輯脫離出Action對象本身。事實上,Struts2也正是這么做的,無論是Interceptor,還是Result,其實都是抽象出了Action中公共的邏輯部分,將他們放到了Action的外面,從而更加簡化了Action的開發(fā)。實例代碼:在action中可以方便的進行業(yè)務(wù)處理,大大降低了程序的耦合度。publicStringexecute()throwsException{ Maprequest=(Map)ActionContext.getContext().get("request"); Mapsession=(Map)ActionContext.getContext().get("session"); StringsessionCode=(String)session.get("certCode"); code=person.getCheckcode(); if(!code.equals(sessionCode)){ request.put("info","驗證碼輸入錯誤"); return"result"; } if(type.equals("student")&&person!=null){ StudentDaosd=newStudentDao(); if(sd.checkStudent(person)){ Studentst=sd.getStudent(person.getUsername()); session.put("student",st); return"student"; } }elseif(type.equals("teacher")&&person!=null){ UserDaoud=newUserDao(); if(ud.checkUser(person)){ Useru=ud.getUser(person.getUsername()); session.put("user",u); if(u.getType()==1){ return"teacher"; }else return"admin"; } }elseif(type.equals("manager")&&person!=null){ UserDaoud=newUserDao(); if(ud.checkUser(person)){ Useru=ud.getUser(person.getUsername()); session.put("user",u); if(u.getType()==1){ return"teacher"; }else return"admin"; } } request.put("info","請檢查登錄賬號,密碼,身份"); return"result"; }4.5.3struts2的文件上傳Struts2本身并沒提供上傳的組件,我們可以通過調(diào)用上傳框架來實現(xiàn)文件的上傳。一、配置上傳解析器首先要配置項目的框架,也就是倒導(dǎo)入"struts2-core-2.2.1.jar"庫文件,找到org.apache.struts2包下的default.porperties資源文件。如下圖;資源文件中給出了不同的strus2的默認配置,我們可看到struts2默認是jakarta作為其文件上傳的解析器。jakarta是Commo-FileUpload的框架。如果要使用Commo-FileUpload框架來上傳文件,只需將"commons-fileupload-1.2.1.jar"和"commons-io-1.3.2.jar"兩個jar復(fù)制到項目中的WEB-INF/lib目錄下就可。如果想要使用COS框架來上傳文件,只需將“cos.jar”復(fù)制到項目中就可以,然后在修改struts.multipart.parser常量值。修改常量值有兩種方法,一是在"struts.xml"中修改,代碼如下:<constantname="struts.multipart.paeser"value="cos"></constant>二是在perties中修改,代碼如下:sruts.multipart.parser=cos創(chuàng)建一個文件夾讓系統(tǒng)默認指象C:\upload文件夾,如果不設(shè)置的話系統(tǒng)會去指向服務(wù)器的指定目錄,比如TOMCAT里的\Tomcat6.0\work\Catalina\localhost\Struts2,我們來創(chuàng)建這個指向,來臨時存儲上傳文件,在src下創(chuàng)建perties文件perties:里面輸入以下內(nèi)容保存程序中的配置是:<constantname="struts.multipart.saveDir"value="/tmp"/><constantname="struts.devMode"value="true"/>Action實現(xiàn)的上傳功能同時將excel文件進行解析,然后保存到數(shù)據(jù)庫中:Filesavefile=newFile(newFile(realpath),fileFileName); if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs(); FileUtils.copyFile(file,savefile); ExcelPausepoi=newExcelPause(); if(poi.pauseExcel(savefile)){ request.put("info","成功導(dǎo)入數(shù)據(jù)!"); }elserequest.put("info","導(dǎo)入數(shù)據(jù)失敗!");4.5.4hibernate完成數(shù)據(jù)對象的映射Hibernate幫助基于普通的Java對象模型的持久對象的創(chuàng)建,從而允許持久對象擁有復(fù)雜的結(jié)構(gòu)如混合類型、集合和屬性,還可以擁有用戶自定義的類型?,F(xiàn)在這些持久對象可以有效的反映出底層數(shù)據(jù)庫模式的復(fù)雜結(jié)構(gòu)。Hibernate依賴于“運行期反射”?!斑\行期反射”在運行期收集關(guān)于對象和它們相應(yīng)的數(shù)據(jù)庫映射的信息,這就廢除了持久層內(nèi)對象數(shù)據(jù)庫映射的硬編碼。這樣,Hibernate使得持久層以持久層代碼的最小修改就能夠適應(yīng)底層數(shù)據(jù)庫模式的任何未知變化。反射是核心Java的一個特征,它促使Java代碼發(fā)現(xiàn)關(guān)于所裝載的類的域、方法和構(gòu)造器。反射允許使用反射的域、方法和構(gòu)造器,在安全限制內(nèi),運行對象上的底層配對物。要了解更多信息請看鏈接。數(shù)據(jù)庫關(guān)系表示為面向?qū)ο笾械年P(guān)系:1、關(guān)聯(lián):將數(shù)據(jù)庫表之間的關(guān)系轉(zhuǎn)化為對象之間的關(guān)系;在Hibernate中總指實體之間的關(guān)系。2、映射:完成java對象到數(shù)據(jù)庫表的雙向轉(zhuǎn)換。3、級聯(lián)(可選):將數(shù)據(jù)庫中的級聯(lián)轉(zhuǎn)化為對象中的級聯(lián)(兩者(對象和數(shù)據(jù)庫表)沒關(guān)系)。4、Hibernate的表和對象的映射:1、實體類型映射:4.1.1、主鍵之間的映射4.1.2、類屬性與表字段的映射4.1.3、組件映射4.1.4、集合映射2、實體關(guān)聯(lián)關(guān)系映射:4.2.1、關(guān)聯(lián)關(guān)系映射publicclassUserimplementsjava.io.Serializable{ privateStringadmin_name; privateStringadmin_pass; privateStringadmin_id; privateinttype; publicStringgetAdmin_name(){ returnadmin_name; } publicvoidsetAdmin_name(StringadminName){ admin_name=adminName; } publicStringgetAdmin_pass(){ returnadmin_pass; } publicvoidsetAdmin_pass(StringadminPass){ admin_pass=adminPass; } publicStringgetAdmin_id(){ returnadmin_id; } publicvoidsetAdmin_id(StringadminId){ admin_id=adminId; } publicintgetType(){ returntype; } publicvoidsetType(inttype){ this.type=type; }}<hibernate-mapping><classname="com.ypf.model.User"table="user"catalog="graduate"lazy="false"><idname="admin_id"type="java.lang.String"><columnname="admin_id"/></id><propertyname="admin_name"type="java.lang.String"><columnname="admin_name"length="18"/></property><propertyname="admin_pass"type="java.lang.String"><columnname="admin_pass"length="20"/></property><propertyname="type"type="java.lang.Integer"><columnname="type"/></property></class></hibernate-mapping>4.5.5hibernate完成數(shù)據(jù)增刪改查操作Hibernate中的增刪改查操作都是通過session里的方法來進行的。一查詢session中用于查詢的有兩種方法:get和load。這兩種方法都是返回實體對象,不同的是,如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。load()方法可返回實體的代理類實例,而get方法永遠直接返回實體類。load方法可以充分利用內(nèi)部緩存和二級緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進行數(shù)據(jù)查找,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù),將越過二級緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。二保存session中的save方法可以保存,如果你查出一個對象,修改它,再用save保存,那這就是修改,所以save具有保存、修改的作用。Hibernate中還有update()和saveOrUpdate(),他們的作用又是什么。先說一說VO和PO的概念,在Hibernate中,VO是指普通的數(shù)據(jù)Bean,一個和Hibernate沒有關(guān)系的數(shù)據(jù)Bean,PO也是一個數(shù)據(jù)Bean,PO是被持久化的數(shù)據(jù)Bean,并且在Session生命周期內(nèi)。其實VO也是PO的一種,在Hibernate中PO總共有三種狀態(tài),1.未被持久化的VO。2.已被持久化的PO,并且在Session生命周期內(nèi)。3.被持久化過,但現(xiàn)在不在Session的生命周期內(nèi),以VO的身份在運行。update()和saveOrUpdate()是用來對跨Session的PO進行狀態(tài)管理的。假設(shè)你的PO不需要跨Session的話,那么就不需要用到,例如你打開一個Session,對PO進行操作,然后關(guān)閉,之后這個PO你也不會再用到了,那么就不需要用update()。看看下面的代碼:Foofoo=sess.load(Foo.class,id);foo.setXXX(xxx);mit();PO對象foo的操作都在一個Session生命周期內(nèi)完成,因此不需要顯式的進行sess.update(foo)這樣的操作。Hibernate會自動監(jiān)測到foo對象已經(jīng)被修改過,因此就向數(shù)據(jù)庫發(fā)送一個update的sql。當然如果你非要加上sess.update(foo)也不會錯,只不過這樣做沒有任何必要。而跨Session的意思就是說這個PO對象在Session關(guān)閉之后,你還把它當做一個VO來用,后來你在Session外面又修改了它的屬性,然后你又想打開一個Session,把VO的屬性修改保存到數(shù)據(jù)庫里面,那么你就需要用update了。Catcat=(Cat)firstSession.load(Cat.class,catId);firstSession.save(cat);//inahighertieroftheapplicationcat.setMate("Mate");//later,inanewsessionsecondSession.update(cat);//updatecatcat對象是在第一個session中取得的,在第一個session關(guān)閉之后,它就成了PO的第三種狀態(tài),和Session已經(jīng)分離的PO,此時他們的狀態(tài)信息仍然被保留下來了。當他們進入第二個session之后,立刻就可以進行狀態(tài)的更新。但是由于對cat的修改操作:cat.setMate(“Mate”);是在Session外面進行的,Hibernate不可能知道cat對象已經(jīng)被改過了,第二個Session并不知道這種修改,因此一定要顯式的調(diào)用secondSession.update(cat);通知Hibernate,cat對象已經(jīng)修改了,你必須發(fā)送update的sql了。所以update的作用就在于此,它只會被用于當一個PO對象跨Session進行狀態(tài)同步的時候才需要寫。而一個PO對象當它不需要跨Session進行狀態(tài)管理的時候,是不需要寫update的。再談?wù)剆aveOrUpdate的用場:當一個數(shù)據(jù)Bean,你不知道它是VO還是被持久化的VO,那么就不知道到底是該調(diào)用save還是該調(diào)用update,這時,調(diào)用saveOrUpdate會幫你解決這個問題,如果這個數(shù)據(jù)Bean是一個新對象,那么Hibernate會保存這個對象,如果是被持久化過的對象,Hibernate會在數(shù)據(jù)庫中修改這個對象。三刪除單個刪除直接用session.delete(object),如果是批量刪除,使用session.createQuery(hql).executeUpdate()。如:Stringhql="deleteUserwherename='wangning'";Queryquery=session.createQuery(hql);intcount=query.executeUpdate();也可使用session.createSQLQuery(sql).executeUpdate()。4.5.6poi進行ecxel的解析操作Poi可以很好地對excel文檔進行解析操作,方便了人們的日常工作。下面的實例是poi解析excel并輸出excel的每行每列的數(shù)據(jù)。下面是poi解析excel的核心代碼; ExcelPausepoi=newExcelPause();//List<List<String>>list=poi.read("d:/1002.xls");List<List<String>>list=poi.read("d:/1002.xls");if(list!=null){for(inti=0;i<list.size();i++){//System.out.print("第"+(i)+"行");List<String>cellList=list.get(i);5畢業(yè)生檔案系統(tǒng)軟件測試1、集成測試集成測試將測試每一個部件之間的工作是否正常。在這個階段,我們假設(shè)所有的單元已通過開發(fā)人員個人在單元測試階段測試全部通過,沒有任何錯誤。集成測試包括以下內(nèi)容:連續(xù)集成測試數(shù)據(jù)庫測試數(shù)據(jù)整合測試2、功能測試功能測試環(huán)境操作系統(tǒng):windows98內(nèi)存:128M網(wǎng)絡(luò)環(huán)境:校園網(wǎng)本功能測試共分為:系統(tǒng)功能測試測試是否可以正常添加用戶和修改密碼,系統(tǒng)正常退出測試是否可以正常對班級進行管理,學(xué)生的單個或成批添加,刪除以及新生信息的導(dǎo)入和學(xué)生信息備份測試成績管理中是否可以進行分數(shù)錄入,匯總及排名和成績備份等操作測試課程信息模塊中針對課程管理,老師和課程的關(guān)系之間操作是否正常測試是否可以正常查詢學(xué)生,老師和成績3、鏈接測試這一部分將測試系統(tǒng)各模塊之間的超鏈接跳轉(zhuǎn)是否正確4、文檔測試本章主要內(nèi)容為:測試文檔是否包括全部內(nèi)容測試軟件功能描述與其他功能有沒有沖突查看軟件功能描述是否是原來系統(tǒng)分析和需求查看文檔內(nèi)容在特定的情況和進度下,以現(xiàn)有人力,物力和資源能否實現(xiàn)5、負載測試這一部分將測試正常情況下系統(tǒng)性能和用戶數(shù)目之間的關(guān)系本章主要內(nèi)容為:查看在多個用戶同時使用本系統(tǒng)時是否正常6、極限測試這一部分將測試所有極端的情況,如速度非??斓那闆r下和速度非常慢的情況下,以及所有其它的極端情況。本章主要內(nèi)容為:網(wǎng)絡(luò)資源極限測試綜合極限測試6結(jié)束語畢業(yè)生檔案管理系統(tǒng)(課程設(shè)置和打印統(tǒng)計)的完成,它在審核這一功能中能夠?qū)Σ煌闆r的資料進行設(shè)置和打印,針對需要的信息進行設(shè)置和打印。在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識、經(jīng)驗方面都存在著不足。另外,在整個開發(fā)的過程中,時間也比較倉促。因此,該系統(tǒng)必然會存在一些缺陷和不足。因為對學(xué)生管理的整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。雖然網(wǎng)絡(luò)在學(xué)生管理系統(tǒng)中的應(yīng)用不是很多,但是未來的發(fā)展方向,在本次開發(fā)過程由于硬件的限制,未能實現(xiàn)網(wǎng)絡(luò)功能,因此在以后的系統(tǒng)更新過程中可能會造成一些不必要的數(shù)據(jù)損失。盡管本管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點是本管理系統(tǒng)所必需的。相信本學(xué)生管理系統(tǒng)是一套學(xué)校在日常管理中必不可少的管理軟件,通過開發(fā)這個系統(tǒng),我掌握了的項本過程,了解了的基本知識鞏固了我對javaweb的學(xué)習(xí),但在這次畢業(yè)設(shè)計中的最大收獲并不是掌握這幾門開發(fā)工具的應(yīng)用,而是學(xué)會了設(shè)計系統(tǒng)的思維方法,和整個開發(fā)流程的掌握。致謝在論文即將完成之際,回顧緊張但又充實的學(xué)習(xí)班和開發(fā)過程,本人在此向所有關(guān)心我的及幫助我的老師和同學(xué)們致以最真誠的感謝。在本次畢業(yè)設(shè)計中,我從指導(dǎo)老師常淑惠老師,身上學(xué)到了很多東西。他認真負責(zé)的工作態(tài)度,嚴謹?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到很大的提高,這對于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,在此感謝他耐心的輔導(dǎo)。在撰寫論文階段,鄒老師幾次審閱我們的論文,提出了許多寶貴意見,沒有他的指導(dǎo),我們就不能較好的完成課題設(shè)計的任務(wù)。另外,我還要感謝在這幾年來對我有所教導(dǎo)的老師,他們孜孜不倦的教誨不但讓我學(xué)到了很多知識,而且讓我掌握了學(xué)習(xí)的方法,更教會了我做人處事的道理,在此表示感謝。同時,在系統(tǒng)開發(fā)過程中還有同組的同學(xué)也給了我不少幫助,這里一并表示感謝。參考文獻[1]孫衛(wèi)琴、李洪成.Tomcat與JavaWeb開發(fā)技術(shù)相機[M].北京電子工業(yè)出版社,2004年[2](美)BruceEckel,Java2編程思想2002-9[3]劉永華,于春花.Java網(wǎng)絡(luò)編程.清華大學(xué)出版社.2008[4]印雯Java語言與面向?qū)ο蟪绦蛟O(shè)計(清華大學(xué)出版)[5]殷沈琴電子教學(xué)參考資料系統(tǒng)的研究及其基于JSP技術(shù)的設(shè)計2007大學(xué)圖書[6]薩師煊、王珊.《數(shù)據(jù)庫系統(tǒng)概述》.高等教育出版社,2002年2月[7]陳剛.MyEclipse從入門到精通[M].北京:清華大學(xué)出版社,2005年[8]賀松平.基于MVC模式的B/S架構(gòu)的研究與應(yīng)用[D].武漢:華中科技大學(xué)[9]朱紅,司光亞.《JSPWeb編程指南》.電子工業(yè)出版社,2001年9月[10]任永功王政軍基于JSP和MySQL的動態(tài)表結(jié)構(gòu)的設(shè)計與實現(xiàn)計算機工程2006/05[11]林寒超,張南平.Hibernate技術(shù)的研究[J].計算機技術(shù)與發(fā)展,2006/16[12]孫衛(wèi)琴精通struts[M]電子工業(yè)出版社2004/8目錄TOC\o"1-2"\h\z\u第一章總論 1第二章項目提出的背景和必要性 4第一節(jié)項目建設(shè)背景 4第二節(jié)項目建設(shè)的必要性 4第三節(jié)項目
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇一體化裝配式施工方案
- 以工代教合同范例
- 加工機器租賃合同范本
- 2025湖南省建筑安全員《C證》考試題庫及答案
- 工傷認定申請書申請事項范文
- 個人購買苗木合同范本
- 加裝電梯合同范本
- 南寧貓咪合同范例
- 2025遼寧省建筑安全員B證考試題庫及答案
- 單位購買月餅合同范本
- 中央2025年全國婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 2025年人教版英語五年級下冊教學(xué)進度安排表
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 部編四下語文《口語交際:轉(zhuǎn)述》公開課教案教學(xué)設(shè)計【一等獎】
- 醫(yī)院檢驗科實驗室生物安全程序文件SOP
- 2023靜脈治療護理技術(shù)操作標準解讀
- 唐納森焊煙除塵器(共22頁)
- 機電一體化畢業(yè)設(shè)計(論文)基于PLC的玻璃搬運機械手系統(tǒng)設(shè)計
- 抗滑樁施工專項方案9
- 生理案例分析
- 人教版小學(xué)數(shù)學(xué)四年級上冊期末質(zhì)量分析
評論
0/150
提交評論