學(xué)生學(xué)籍管理系統(tǒng)_第1頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)_第2頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)_第3頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)_第4頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

滁州職業(yè)技術(shù)學(xué)院信息工程系姓名:班級(jí):設(shè)計(jì)課題:學(xué)生學(xué)籍管理系統(tǒng)指導(dǎo)教師:目錄PAGEii目錄引言 i摘要 1第一章系統(tǒng)概述 11.1課題的背景與意義 11.1.1課題開(kāi)發(fā)背景 11.1.2課題開(kāi)發(fā)意義 11.2課題開(kāi)發(fā)工具與環(huán)境 11.2.1MyEclipse簡(jiǎn)介 11.2.2J2EE概述 21.2.3mysql概述 21.2.4Tomcat6.0服務(wù)器架構(gòu) 31.2.5總體開(kāi)發(fā) 3第二章系統(tǒng)分析 52.1系統(tǒng)概述 52.1.1系統(tǒng)分析原則與方針 52.1.2系統(tǒng)需求 52.2系統(tǒng)功能分析 52.2.1可能性分析 52.2.2具體功能分析 6第三章系統(tǒng)設(shè)計(jì) 83.1數(shù)據(jù)庫(kù)設(shè)計(jì) 83.1.1數(shù)據(jù)庫(kù)總體設(shè)計(jì) 83.1.2數(shù)據(jù)庫(kù)概念設(shè)計(jì) 83.1.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì) 103.2系統(tǒng)總體設(shè)計(jì) 113.2.1系統(tǒng)邏輯設(shè)計(jì) 113.3功能設(shè)計(jì) 113.3.1前臺(tái)用戶功能模塊設(shè)計(jì) 123.3.2后臺(tái)管理員功能模塊設(shè)計(jì) 12第四章系統(tǒng)實(shí)現(xiàn)與調(diào)試 134.1系統(tǒng)功能實(shí)現(xiàn) 134.1.1文件結(jié)構(gòu)圖 134.2.2文件詳細(xì)結(jié)構(gòu)圖 134.3關(guān)鍵技術(shù)實(shí)現(xiàn) 144.3.1struts+Hibernate 144.3.2處理中文問(wèn)題 144.4調(diào)試過(guò)程中的常見(jiàn)錯(cuò)誤 164.4.1404錯(cuò)誤 164.4.2空指針異常 164.4.3數(shù)據(jù)庫(kù)連接錯(cuò)誤 17第五章系統(tǒng)運(yùn)行結(jié)果截圖 195.1系統(tǒng)主界面 195.2查詢界面 195.3學(xué)生學(xué)籍成績(jī)界面 205.4管理員個(gè)人界面 205.5添加管理員 215.6管理員回收站列表 21結(jié)論 22致謝 23參考文獻(xiàn) 24引言引言學(xué)生信息檔案的管理對(duì)于學(xué)校的管理者來(lái)說(shuō)至關(guān)重要,學(xué)生學(xué)籍是高等學(xué)校非常重要的一項(xiàng)數(shù)據(jù)資源,是一個(gè)教育單位不可缺少一部分。特別是近幾年來(lái),國(guó)家政策的調(diào)整,我國(guó)高等院校大規(guī)模的擴(kuò)招,給高等院校的教學(xué)管理、學(xué)生管理、后勤管理等方面都帶來(lái)不少的沖擊。其包含的數(shù)據(jù)量大,涉及的人員面廣,而且需要及時(shí)更新,故較為復(fù)雜,難以單純地依靠人工管理,而且傳統(tǒng)的人工管理方式既不易于規(guī)范化,管理效率也不高,目前我國(guó)各類(lèi)高等院校中還有相當(dāng)一部分學(xué)生檔案管理還停留在紙介質(zhì)的基礎(chǔ)上,尤其是中、小學(xué)對(duì)學(xué)生檔案的管理更是落后,這樣的管理機(jī)制已經(jīng)不能適應(yīng)時(shí)代發(fā)展的要求,其管理方法將浪費(fèi)許多人力和物力。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)與技術(shù)日漸成熟,計(jì)算機(jī)應(yīng)用的普及已進(jìn)入人類(lèi)社會(huì)生活的各個(gè)領(lǐng)域,并發(fā)揮著越來(lái)越重要的作用。這種傳統(tǒng)的手工管理模式必然被以計(jì)算機(jī)為物質(zhì)基礎(chǔ)的信息管理方法所取代。然而,信息時(shí)代的到來(lái),給傳統(tǒng)的手工管理模式致以致命的打擊,也給我們這些學(xué)軟件開(kāi)發(fā)的莘莘學(xué)子指明了一條光明路。本小組此次開(kāi)發(fā)主要是以學(xué)校學(xué)籍的管理員以及學(xué)生為主要使用人群,并且開(kāi)發(fā)環(huán)境也是使用目前市場(chǎng)上較為流行的JSP+struts+hibernate3作為開(kāi)發(fā)模式,既融合了方便,快捷,高效的辦公理念,也體現(xiàn)了時(shí)代趨勢(shì)。摘要PAGE1摘要學(xué)生信息管理系統(tǒng)是針對(duì)學(xué)校人事處的大量業(yè)務(wù)處理工作而開(kāi)發(fā)的管理軟件,主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、科學(xué)化、規(guī)范化和自動(dòng)化,其主要任務(wù)是用計(jì)算機(jī)對(duì)學(xué)生各種信息進(jìn)行日常管理,如查詢、修改、增加、刪除學(xué)生基本信息,另外還考慮到學(xué)生的成績(jī),所以針對(duì)成績(jī)也進(jìn)行了一系列錄入,刪除,以及修改等操作。本課題設(shè)計(jì)的目標(biāo)是實(shí)現(xiàn)一個(gè)基于Jsp+struts2+hibernate3模式的學(xué)生學(xué)籍管理系統(tǒng)。論文先介紹了開(kāi)發(fā)項(xiàng)目所用到的關(guān)鍵技術(shù),接著從用戶需求、經(jīng)濟(jì)和技術(shù)等三個(gè)方面對(duì)系統(tǒng)進(jìn)行分析。在概要設(shè)計(jì)中,根據(jù)系統(tǒng)分析的結(jié)果,把系統(tǒng)分為前臺(tái)和后臺(tái)兩大模塊。根據(jù)前臺(tái)和后臺(tái)用戶的不同需求,把前臺(tái)細(xì)分為學(xué)生查詢信息(成績(jī)以及學(xué)籍信息),學(xué)生修改登錄密碼等模塊,把后臺(tái)細(xì)分為管理員登錄,密碼修改,添加學(xué)生信息以及成績(jī),查詢學(xué)生信息等模塊。詳細(xì)介紹了在基于Jsp+struts+hibernate模式下各個(gè)模塊的實(shí)現(xiàn)過(guò)程,且以開(kāi)發(fā)過(guò)程為基礎(chǔ)實(shí)現(xiàn)系統(tǒng)所具有的可重用性、可維護(hù)性和可擴(kuò)展性等優(yōu)勢(shì)進(jìn)行了分析。關(guān)鍵詞:myeclipsemysql數(shù)據(jù)庫(kù)struts2hibernate3Jsp滁州職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)畢業(yè)論文PAGE17第一章系統(tǒng)概述1.1課題的背景與意義1.1.1課題開(kāi)發(fā)背景信息時(shí)代主要的體現(xiàn)便是方便,快捷與高效的綜合理念。此次在學(xué)生學(xué)籍管理系統(tǒng)開(kāi)發(fā)中,由于學(xué)校需要從大量的日常教學(xué)活動(dòng)中提取相關(guān)信息,從而來(lái)反應(yīng)教學(xué)的情況。傳統(tǒng)的手工操作方式,易發(fā)生數(shù)據(jù)丟失,統(tǒng)計(jì)錯(cuò)誤,勞動(dòng)強(qiáng)度高,且速度慢。這里使用計(jì)算機(jī)便可以高速,快捷地完成以上工作。在計(jì)算機(jī)聯(lián)網(wǎng)后,數(shù)據(jù)在網(wǎng)上傳遞,可以實(shí)現(xiàn)數(shù)據(jù)共享,避免重復(fù)勞動(dòng),規(guī)范教學(xué)管理行為,從而提高了管理效率和水平。學(xué)生學(xué)籍管理信息系統(tǒng)主要是以計(jì)算機(jī)為操作平臺(tái),通過(guò)對(duì)教務(wù)管理所需的信息管理,使管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來(lái),使其有更多的精力從事教務(wù)管理政策的研究實(shí)施,教學(xué)計(jì)劃的制定執(zhí)行和教學(xué)質(zhì)量的監(jiān)督檢查,從而全面提高教學(xué)質(zhì)量。1.1.2課題開(kāi)發(fā)意義隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已被人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。學(xué)校作為社會(huì)構(gòu)成不可或缺的一部分,它的發(fā)展可以明確顯現(xiàn)出社會(huì)發(fā)展的步伐。而學(xué)生學(xué)籍管理系統(tǒng)又是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生學(xué)籍管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。1.2課題開(kāi)發(fā)工具與環(huán)境1.2.1MyEclipse簡(jiǎn)介MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。MyEclipse是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)源產(chǎn)品的支持十分不錯(cuò)。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能??梢哉f(shuō)MyEclipse幾乎囊括了目前所有主流開(kāi)源產(chǎn)品的專屬eclipse開(kāi)發(fā)工具。1.2.2J2EE概述J2EE是一種利用Java2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫(xiě)一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開(kāi)發(fā)平臺(tái),J2EE降低了開(kāi)發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。1.2.3mysql概述(1)MySQL數(shù)據(jù)平臺(tái)MySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。(2)MySQL應(yīng)用環(huán)境與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP和LNMP,即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(qián)(除開(kāi)人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。1.2.4Tomcat6.0服務(wù)器架構(gòu)Tomcat6.0由Apache組織開(kāi)發(fā)的一種常用Web服務(wù)器,提供Web服務(wù)。一種JSP引擎,本身具有Web功能,可以作為獨(dú)立的Web服務(wù)器使用。但是,在作為Web服務(wù)器方面,Tomcat處理靜態(tài)HTML頁(yè)面時(shí)不如Apache迅速,也沒(méi)有Apache健壯,一般選用Tomcat與Apache結(jié)合的方式,讓后者對(duì)網(wǎng)站的靜態(tài)頁(yè)面的請(qǐng)求提供服務(wù),而Tomcat作為專用的JSP引擎,提供JSP解析,得以更好的性能。1.JDK的安裝與配置(1)找到path變量后單擊[編輯]按鈕;彈出[編輯系統(tǒng)變量]對(duì)話框。在[變量值]文本框中輸入“c:\jdk\bin”,然后單擊[確定]按鈕。同時(shí)新建CLASSPATH變量;(2)在[系統(tǒng)變量]選項(xiàng)組中單擊[新建]按鈕,在[變量名]文本框中輸入“CLASSPATH”,在[變量值]文本框中輸入“c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar;”然后單擊[確定]按鈕;(3)用同樣的方法把c:\jdk添加到JAVA_HOME環(huán)境變量中;2.TOMCAT的安裝與配置在這里我們?cè)O(shè)默認(rèn)安裝目錄為c:\Tomcat安裝完畢,更改環(huán)境變量,用同樣的方法把c:\Tomcat添加到TOMCAT_HOME環(huán)境變量中。啟動(dòng)Tomcat,在瀏覽器的[地址]下拉列表框中輸入“http://localhost:8080/”,如果看到的是在左上方有一只可愛(ài)的小貓,則表示Tomcat安裝成功。1.2.5總體開(kāi)發(fā)1.J2EE的Struts2+Hibernate3MVC模式架構(gòu):界面表示層:JSP+JavaScript+HTML(XML);業(yè)務(wù)邏輯層: JavaBeans;數(shù)據(jù)存儲(chǔ)層:mysql;2.開(kāi)發(fā)工具采用MyEclipse10.0,數(shù)據(jù)庫(kù)采用mysql5.0,服務(wù)器:ApacheTomcat6.0,Java中連接數(shù)據(jù)庫(kù)的技術(shù)是JDBC。3.系統(tǒng)總體架構(gòu)(見(jiàn)圖1-1)圖1-1系統(tǒng)總體架構(gòu)

第二章系統(tǒng)分析2.1系統(tǒng)概述2.1.1系統(tǒng)分析原則與方針本系統(tǒng)采用結(jié)構(gòu)化系統(tǒng)分析的方法,并且盡量避免使用計(jì)算機(jī)的專業(yè)術(shù)語(yǔ),以便于企業(yè)人員與系統(tǒng)開(kāi)發(fā)人員的溝通。此系統(tǒng)的結(jié)構(gòu)是層次化的暗盒模塊結(jié)構(gòu)。對(duì)高層模塊,將采用以事物為中心的設(shè)計(jì)策略,把一個(gè)大的復(fù)雜的系統(tǒng)逐步分解成小的相對(duì)簡(jiǎn)單的暗盒模塊,對(duì)低層模塊,采用以變換為中心的設(shè)計(jì)策略。因此,為了提高模塊的內(nèi)聚性,降低模塊的耦合程度,數(shù)據(jù)庫(kù)的設(shè)計(jì)原則是把它作為模塊間的郵政信箱,從而為實(shí)現(xiàn)數(shù)據(jù)共享由提高了模塊的獨(dú)立性,使系統(tǒng)具有很高的可修改性。2.1.2系統(tǒng)需求學(xué)生需求分析,學(xué)生除了可以查詢自己的所有基本信息(如學(xué)生的學(xué)籍信息及有關(guān)課程的成績(jī))外,還能修改個(gè)人的查詢密碼。超級(jí)管理員需求分析,超級(jí)管理員擁有普通管理員以及學(xué)生最大的權(quán)限,他需要對(duì)學(xué)生以及普通管理員進(jìn)行設(shè)置包括查看、刪除、添加、修改等操作。還有就是修改超級(jí)管理員自己的登錄密碼。普通管理員需求分析,他需要對(duì)學(xué)生進(jìn)行設(shè)置包括查看、刪除、添加、修改等操作。還有就是修改普通管理員自己的登錄密碼。以上所有的操作都要求數(shù)據(jù)的安全性,完整性。要有安全保密、上下級(jí)數(shù)據(jù)一致性功能,要采用嚴(yán)格的用戶權(quán)限管理。各單位只能擁有自己相應(yīng)的操作權(quán)限,不可越權(quán)操作。各單位只可操作本單位的數(shù)據(jù),不可修改甚至瀏覽其他單位的數(shù)據(jù)。2.2系統(tǒng)功能分析2.2.1可能性分析1.技術(shù)可行性:本系統(tǒng)的配置(Tomcat6.0以及Mysql5.0)在這種中小規(guī)模的情況下能夠提供較快的數(shù)據(jù)訪問(wèn),技術(shù)上可行。2.經(jīng)濟(jì)可行性:所有的軟件都是免費(fèi)開(kāi)放的,開(kāi)發(fā)成本低。3.操作可行性:訪問(wèn)系統(tǒng)的主要有三種:學(xué)生,超級(jí)管理員,普通管理員。目前資源的利用情況和可操作性,只需少量的對(duì)數(shù)據(jù)庫(kù)中的表的直接操作就可以實(shí)現(xiàn)系統(tǒng)的完整、穩(wěn)定的運(yùn)行,不會(huì)造成系統(tǒng)的巨大壓力。2.2.2具體功能分析表2-1功能分析表功能類(lèi)別功能名稱、標(biāo)識(shí)符描述學(xué)籍管理功能學(xué)籍信息添加添加學(xué)生詳細(xì)信息學(xué)生查詢密碼修改進(jìn)入查詢界面后,可修改自己的原密碼學(xué)生的查詢學(xué)生根據(jù)自己的學(xué)號(hào)和密碼可以查詢自己的學(xué)籍信息以及成績(jī)管理員管理功能管理員信息添加添加管理員信息管理員登陸管理員根據(jù)自己的賬號(hào)以及密碼進(jìn)入系統(tǒng)的事務(wù)管理管理員修改登錄密碼管理員進(jìn)入管理員列表頁(yè)面后點(diǎn)擊操作中的修改密碼即可1.學(xué)生系統(tǒng):查詢:學(xué)生用學(xué)號(hào)和密碼可實(shí)現(xiàn)查詢自己的個(gè)人信息和成績(jī);修改密碼:學(xué)生通過(guò)登錄進(jìn)入查詢信息界面后,點(diǎn)擊修改密碼,可以修改密碼;2.普通管理員系統(tǒng):普通管理員登錄:管理員用賬號(hào)和密碼進(jìn)入系統(tǒng)管理界面;添加學(xué)生信息:學(xué)號(hào)、身份證號(hào)、姓名、性別、專業(yè)、班級(jí)、入學(xué)年月、出生日期以及四門(mén)課的成績(jī)等學(xué)生學(xué)籍信息;修改密碼:學(xué)生通過(guò)登錄進(jìn)入查詢信息界面,點(diǎn)擊修改密碼,即可以修改密碼;退出功能;3.超級(jí)管理員系統(tǒng):(1)超級(jí)管理員登錄:管理員用賬號(hào)和密碼進(jìn)入系統(tǒng)管理界面;(2)添加學(xué)生或者管理員信息: ①學(xué)生:學(xué)號(hào)、身份證號(hào)、姓名、性別、專業(yè)、班級(jí)、入學(xué)年月、出生日期以及四門(mén)課的成績(jī)等學(xué)生學(xué)籍信息; ②管理員:真實(shí)姓名、聯(lián)系方式以及密碼;(3)修改密碼:管理員通過(guò)登錄進(jìn)入查詢信息界面后,點(diǎn)擊修改密碼,可以修改密碼;(4)退出功能;注:系統(tǒng)的前臺(tái)界面編輯于與美化工作也在其中。

第三章系統(tǒng)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)設(shè)計(jì)3.1.1數(shù)據(jù)庫(kù)總體設(shè)計(jì)因?yàn)楸鞠到y(tǒng)需要采用一種關(guān)系型的數(shù)據(jù)庫(kù)模式,此數(shù)據(jù)庫(kù)是由若干個(gè)二維表組成。據(jù)市場(chǎng)調(diào)查,數(shù)據(jù)庫(kù)保存的方法有很多種,但是最常用的卻是DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))?,F(xiàn)如今活躍在市場(chǎng)的幾大主流數(shù)據(jù)庫(kù)是Oracle、SYBASE、MSSQLServer、DB2、Informix、Mysql等,而Mysql作為中小型數(shù)據(jù)管理系統(tǒng)的首選,所以,根據(jù)以上分析,本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)決定采用Mysql5.0作為后臺(tái)數(shù)據(jù)庫(kù)。3.1.2數(shù)據(jù)庫(kù)概念設(shè)計(jì)管理員管理員超級(jí)管理員ID密碼狀態(tài)聯(lián)系方式真實(shí)姓名賬號(hào)圖3-1管理員E-R圖學(xué)生學(xué)生學(xué)制ID政治面貌狀態(tài)聯(lián)系方式民族行政班級(jí)專業(yè)院系入學(xué)年份學(xué)號(hào)家庭住址籍貫身份證號(hào)碼出生日期英語(yǔ)真實(shí)姓名性別軟件測(cè)試Uml密碼總成績(jī)Java新密碼昵稱英語(yǔ)密碼圖3-2學(xué)生E-R圖3.1.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)表3-1學(xué)生數(shù)據(jù)表表序號(hào)1表名Student含義學(xué)生的基本信息序號(hào)屬性名稱含義數(shù)據(jù)類(lèi)型長(zhǎng)度說(shuō)明約束1status狀態(tài)int11主鍵2schoolLength學(xué)制int11notnull3administrativeClass行政班級(jí)varchar50notnull4professional專業(yè)varchar50notnull5department院系varchar50notnull6telephoneNumber聯(lián)系方式bigint207schoolYear入學(xué)年份int11notnull8politicalAffiliation政治面貌varchar209nation民族varchar5010studentId學(xué)號(hào)bigint20notnull11homeAddress家庭住址varchar5012nativePlace籍貫varchar5013idcardNumber身份證號(hào)碼varchar5014birthDate出生日期date015sex性別varchar50notnull16name昵稱varchar5017realName真實(shí)姓名varchar50notnull18password密碼varchar5019id學(xué)生idint11notnull主鍵20english英語(yǔ)decimal521j2eeJavadecimal522softTest軟件測(cè)試decimal523totalScore總成績(jī)decimal524umlUmldecimal5表3-2管理員數(shù)據(jù)表表序號(hào)2表名admin含義管理員基本信息序號(hào)屬性名稱含義數(shù)據(jù)類(lèi)型長(zhǎng)度說(shuō)明約束1superManager超級(jí)管理員int11notnull2status管理員名int11notnull3phone_number管理員密碼bigint204real_name真實(shí)姓名varchar50notnull5password密碼varchar50notnull6idIdint11notnull主鍵7name登錄名varchar50notnull3.2系統(tǒng)總體設(shè)計(jì)3.2.1系統(tǒng)邏輯設(shè)計(jì)系統(tǒng)采用MVC結(jié)構(gòu),在客戶端用戶通過(guò)瀏覽器完成數(shù)據(jù)下載與模擬操作,瀏覽器端的表現(xiàn)邏輯通過(guò)JSP網(wǎng)頁(yè)完成。而系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯主要通過(guò)controller實(shí)現(xiàn),通過(guò)jsp返回到客戶瀏覽器。通過(guò)表現(xiàn)邏輯與業(yè)務(wù)邏輯的分離,使網(wǎng)頁(yè)內(nèi)容簡(jiǎn)潔,系統(tǒng)的可維護(hù)性和可擴(kuò)充性增強(qiáng)。在服務(wù)器端,系統(tǒng)使用hibernate中間件訪問(wèn)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)服務(wù)器定義了本系統(tǒng)所需要的事務(wù)邏輯和數(shù)據(jù)邏輯。本系統(tǒng)使用JSP技術(shù)作為表現(xiàn)手段,服務(wù)器采用Tomcat6.0作為JSP引擎,系統(tǒng)業(yè)務(wù)邏輯由controller層完成,使用hibernate驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)。由于系統(tǒng)測(cè)試需要成熟的數(shù)據(jù)庫(kù)支持,因此系統(tǒng)采用mysql數(shù)據(jù)庫(kù)作為數(shù)據(jù)庫(kù)服務(wù)器。3.3功能設(shè)計(jì)根據(jù)需求分析得出本系統(tǒng)整體分前臺(tái)和后臺(tái)兩大模塊。前臺(tái)用戶主要功能模塊包括:學(xué)生的查詢,修改密碼,退出前臺(tái);后臺(tái)管理員(普通和超級(jí)管理員)主要功能模塊包括:管理員登陸,添加學(xué)生(管理員)信息和成績(jī),修改學(xué)生(管理員)信息和成績(jī),刪除學(xué)生(管理員)信息和成績(jī),查詢學(xué)生(管理員)信息和成績(jī),修改管理員本人密碼等。下面分別從前臺(tái)和后臺(tái)進(jìn)行詳細(xì)功能設(shè)計(jì)。3.3.1前臺(tái)用戶功能模塊設(shè)計(jì)根據(jù)概要設(shè)計(jì)對(duì)前臺(tái)模塊進(jìn)行細(xì)化,經(jīng)過(guò)對(duì)用戶需求和業(yè)務(wù)邏輯的分析,前臺(tái)各個(gè)模塊的詳細(xì)設(shè)計(jì)如下:(1)查詢模塊:學(xué)生查詢模塊主要有查詢成績(jī)功能。查詢功能主要用于學(xué)生對(duì)自己的學(xué)籍以及成績(jī)的查詢,學(xué)生只需輸入“學(xué)號(hào)”和“密碼”即可進(jìn)行進(jìn)入系統(tǒng)的事務(wù),對(duì)自己的學(xué)籍以及成績(jī)進(jìn)行查看。(2)修改密碼模塊:如果想要修改自己的查詢密碼的話,直接在學(xué)生信息界面的右下角點(diǎn)擊“改密”,即可進(jìn)入修改密碼,隨后系統(tǒng)會(huì)根據(jù)要求顯示修改密碼界面,在輸入框中分別輸入原密碼和修改后的密碼,如果你的原密碼輸入有誤的話,系統(tǒng)會(huì)自動(dòng)提醒,是的注意的是:在輸入修改后的密碼時(shí)需要進(jìn)行二次輸入,倘若兩次密碼不一樣也會(huì)有紅色字體的提示。3.3.2后臺(tái)管理員功能模塊設(shè)計(jì)根據(jù)管理員對(duì)系統(tǒng)的需求和對(duì)管理員權(quán)限的限制,后臺(tái)模塊功能詳細(xì)設(shè)計(jì)如下:(1)管理員修改密碼模塊:管理員登入列表界面后,在列表中找到自己的所屬位置,即可點(diǎn)擊“操作”中的“修改密碼”,即可同學(xué)生一樣進(jìn)入修改頁(yè)面;(2)退出模塊:當(dāng)管理員進(jìn)入列表后,如果想切換賬戶,即可直接點(diǎn)擊左下角的退出按鈕,即可退出主頁(yè)面進(jìn)入登陸頁(yè)面; (3)添加模塊:管理員進(jìn)入主頁(yè)面后,點(diǎn)擊新增,即可添加學(xué)生。如果是超級(jí)管理員的話,在管理員界面點(diǎn)擊新增不僅可以添加學(xué)生信息還可以添加管理員信息;

第四章系統(tǒng)實(shí)現(xiàn)與調(diào)試4.1系統(tǒng)功能實(shí)現(xiàn)4.1.1文件結(jié)構(gòu)圖文件結(jié)構(gòu)的良好設(shè)計(jì),對(duì)自己的開(kāi)發(fā)過(guò)程有很大的好處,在設(shè)計(jì)的最初,應(yīng)該想到自己要用的文件資源,一般來(lái)說(shuō):把項(xiàng)目shoppingsales放到新建目錄的workspace下,里面的主要存src和WebRoot文件,src主要存放com包,WebRoot主要存放jsp網(wǎng)頁(yè)、css代碼和images圖片文件。這樣在自己改進(jìn)系統(tǒng)或書(shū)寫(xiě)文檔以及書(shū)寫(xiě)使用說(shuō)明時(shí)都可以簡(jiǎn)明扼要的寫(xiě)出自己的程序結(jié)構(gòu)。4.2.2文件詳細(xì)結(jié)構(gòu)圖圖4-1文檔結(jié)構(gòu)關(guān)系圖4.3關(guān)鍵技術(shù)實(shí)現(xiàn)4.3.1struts+Hibernate①域?qū)ο髮樱壕唧w的實(shí)體類(lèi),如管理員,學(xué)生等等這些具體的類(lèi)(需要與數(shù)據(jù)庫(kù)中的表對(duì)應(yīng)),由持久層類(lèi)完成。②數(shù)據(jù)持久層:主要負(fù)責(zé)與底層的數(shù)據(jù)庫(kù)打交道。這里采用Spring封裝的Hibernate操作來(lái)簡(jiǎn)化實(shí)際的編碼。主要的操作為CRUD(create,read,update,delete),由DAO完成。③業(yè)務(wù)邏輯層:主要負(fù)責(zé)具體的業(yè)務(wù)處理。通過(guò)Spring的IOC以及AOP實(shí)現(xiàn)各個(gè)功能的耦合相連,業(yè)務(wù)邏輯由service來(lái)完成,service通過(guò)調(diào)用DAO操作數(shù)據(jù)庫(kù),實(shí)現(xiàn)業(yè)務(wù)邏輯。service由Struts的Action類(lèi)來(lái)調(diào)用。④UI層:負(fù)責(zé)與用戶交互,包括:接受用戶的請(qǐng)求,把處理結(jié)果返回給用戶。目前主要采用struts來(lái)做UI層,雖然比起Tapestry以及JSF這些事件驅(qū)動(dòng)的表現(xiàn)層技術(shù)而言,Struts的設(shè)計(jì)顯得有些老土,但它目前仍是表現(xiàn)層事實(shí)上的標(biāo)準(zhǔn),所以我們還是選用它。4.3.2處理中文問(wèn)題創(chuàng)建一個(gè)com.sms.filter包在包里創(chuàng)建一個(gè)SetCharaterEncodingFilter.java類(lèi)的代碼如下。Packagecom.sms.filter;Importjava.io.IOException;Importjavax.servlet.Filter;Importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;Importjavax.servlet.ServletResponse;PublicclassSetCharacterEncodingFilterimplementsFilter{ProtectedStringencoding=null;ProtectedFilterConfigfilterConfig=null;ProtectedBooleanignore=true;Publicvoiddestroy(){This.Encoding=null;this.filterConfig=null;}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain) throwsIOException,ServletException{if(ignore||(request.getCharacterEncoding()==null)){Stringencoding=selectEncoding(request);if(encoding!=null)request.setCharacterEncoding(encoding);}chain.doFilter(request,response);}publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");if(value==null)this.ignore=true;elseif(value.equalsIgnoreCase("true"))this.ignore=true;elseif(value.equalsIgnoreCase("yes"))this.ignore=true;elsethis.ignore=false;}protectedStringselectEncoding(ServletRequestrequest){return(this.encoding);}}4.4調(diào)試過(guò)程中的常見(jiàn)錯(cuò)誤4.4.1空指針異常圖4-2空指針異常解決方法:為了確保進(jìn)行操作或引用的對(duì)象非空,假若我們要對(duì)某對(duì)象進(jìn)行操作或引用,我們首先去檢查該對(duì)象是否已經(jīng)實(shí)例化且不為空;并且在系統(tǒng)中加入針對(duì)對(duì)象為空時(shí)情況的處理。如:采用String對(duì)象保存用戶提交的結(jié)果;在如果涉及對(duì)象的操作時(shí),先檢測(cè)其是否為空后,檢查到對(duì)象為空后,可再選擇進(jìn)行以下任一種處理方式:

處理方式1:檢查到對(duì)象為空時(shí),設(shè)置對(duì)象值為空字符串或一個(gè)默認(rèn)值;

處理方式2:檢測(cè)到對(duì)象為空時(shí),根本不執(zhí)行某操作,直接跳轉(zhuǎn)到其他處理中。

處理方式3:檢查到對(duì)象為空時(shí),提示用戶操作有錯(cuò)誤。4.圖4-3404錯(cuò)誤解決方法:表示的是這個(gè)頁(yè)面不存在也就是說(shuō),你訪問(wèn)網(wǎng)站是沒(méi)有問(wèn)題的,問(wèn)題是你訪問(wèn)的這個(gè)頁(yè)面網(wǎng)站上不存在有可能是被站長(zhǎng)刪除了,當(dāng)然也有可能是你的網(wǎng)址輸入錯(cuò)誤,所以你可以:1.檢查網(wǎng)址有沒(méi)有輸入錯(cuò)誤;2.這個(gè)頁(yè)面內(nèi)容確實(shí)對(duì)你很重要的話,想辦法聯(lián)系站長(zhǎng);4.4.3數(shù)據(jù)庫(kù)連接錯(cuò)誤圖4-4數(shù)據(jù)庫(kù)連接錯(cuò)誤解決方法:選擇的順序和數(shù)據(jù)庫(kù)順序不一致,獲得結(jié)果集中的次序不對(duì),避免的方法是SQL語(yǔ)句時(shí)就按數(shù)據(jù)庫(kù)中的順序?qū)?,取值時(shí)亦按照順序嚴(yán)格取值。還有你的版本太低,需要升級(jí),你檢查看看你的版本是sp3還是sp4,因?yàn)楹枚鄷r(shí)候版本低的話,不支持。還有一種可能就是你的MSSQL連接的用戶和密碼和DataBase中設(shè)置連接的用戶和密碼是否一致。代碼如下:url="jdbc:microsoft:sqlserver://:1433;DataName=pubs";driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";uid="sa";(必須和數(shù)據(jù)庫(kù)連接所用的用戶名,保持一致)pwd="";(必須和數(shù)據(jù)庫(kù)連接所用的密碼,保持一致)Class.forName(driver);

第五章系統(tǒng)運(yùn)行結(jié)果截圖5.1系統(tǒng)主界面圖5-1系統(tǒng)主界面5.2查詢界面圖5-2查詢界面5.3學(xué)生學(xué)籍成績(jī)界面圖5-3學(xué)生學(xué)籍成績(jī)管理界面5.4管理員個(gè)人界面圖5-4管理員個(gè)人信息界面5.5添加管理員圖5-5添加管理員5.6管理員回收站列表圖5-6管理員回收站列表結(jié)論結(jié)論本次項(xiàng)目的完成給予我一個(gè)極大的鼓舞。大學(xué)三年以來(lái),說(shuō)實(shí)話我沒(méi)有好好學(xué),對(duì)于之前的C、java、jsp等沒(méi)有一個(gè)是精通的,但是,就是畢業(yè)設(shè)計(jì)的到來(lái),讓我深刻意識(shí)到幾種語(yǔ)言之間的關(guān)系。就拿今年的J2EE來(lái)說(shuō),他所用的架構(gòu)跟JSP的架構(gòu)是差不多的,區(qū)別就是在于數(shù)據(jù)庫(kù)連接的處理和Action層的處理方式不一樣就我而言。所以我不得不重新拿起書(shū)本,從基礎(chǔ)開(kāi)始學(xué)。經(jīng)過(guò)一個(gè)星期的強(qiáng)化訓(xùn)練,我才清楚的了解J2EE的作用,以及從項(xiàng)目伊始到項(xiàng)目結(jié)束的層層架構(gòu)關(guān)聯(lián)。學(xué)生學(xué)籍管理系統(tǒng)——如果是按照以往的架構(gòu)模式,那他的代碼量會(huì)很大,而且較現(xiàn)在的J2EE而言沒(méi)有什么優(yōu)勢(shì)。我認(rèn)真學(xué)這個(gè)也有一段時(shí)間,最大的感受就是在數(shù)據(jù)庫(kù)連接處理上面非常的簡(jiǎn)單,數(shù)據(jù)庫(kù)不像JDBC還要敲好多的連接代碼,看著就頭疼,重點(diǎn)是幾乎每個(gè)servlet層都得敲一遍,費(fèi)時(shí)費(fèi)力。還有就是以前的基類(lèi)都是需要一個(gè)代碼一個(gè)代碼

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論