田文濤,張 釗,張笑冰
(1. 黑龍江省哈爾濱市職工醫(yī)學(xué)院,黑龍江 哈爾濱 150000;2. 黑龍江省伊春市第一醫(yī)院,黑龍江 伊春 153000)
基于SSH的學(xué)生成績(jī)信息管理系統(tǒng)的設(shè)計(jì)與分析
田文濤1,張 釗1,張笑冰2
(1. 黑龍江省哈爾濱市職工醫(yī)學(xué)院,黑龍江 哈爾濱 150000;2. 黑龍江省伊春市第一醫(yī)院,黑龍江 伊春 153000)
本系統(tǒng)是Browser/Server的結(jié)構(gòu),能夠統(tǒng)一客戶端,將主要功能實(shí)現(xiàn)的核心部分集中在了服務(wù)器上。在技術(shù)上是以Java、Hibernate、Spring、Struts和MYSQL數(shù)據(jù)庫(kù)來(lái)開(kāi)發(fā)和實(shí)現(xiàn)的。不但注重系統(tǒng)的實(shí)際操作,系統(tǒng)的布局簡(jiǎn)潔,功能清晰,也能夠讓使用者清楚明了的進(jìn)行操作,符合了學(xué)生和老師的需要。本文主要介紹了該系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)思想及軟件的需求分析。
學(xué)生成績(jī)信息管理;Browser/Server結(jié)構(gòu);MYSQL數(shù)據(jù)庫(kù);設(shè)計(jì)與分析
1.1 系統(tǒng)開(kāi)發(fā)的目標(biāo)
采用學(xué)生成績(jī)信息管理系統(tǒng)能夠使學(xué)校建立一種先進(jìn)的學(xué)生管理模式提高學(xué)校的管理效率,提高工作的準(zhǔn)確性和操作的簡(jiǎn)潔、快速。學(xué)校的管理者能夠通過(guò)學(xué)生成績(jī)信息管理系統(tǒng)高效、快速的對(duì)學(xué)生進(jìn)行日常的管理,既能幫助學(xué)校提高管理效率,又能降低管理的成本,并且維護(hù)簡(jiǎn)單,查看方便,管理高效。
1. 教師端:
(1)對(duì)學(xué)生信息進(jìn)行管理
(2)對(duì)班級(jí)信息進(jìn)行管理
(3)對(duì)學(xué)生選課信息進(jìn)行管理
(4)對(duì)課程信息進(jìn)行管理
(5)對(duì)學(xué)生成績(jī)信息進(jìn)行管理
2. 學(xué)生端:
(1)查詢和修改個(gè)人信息
(2)查詢課程信息
(3)查詢個(gè)人成績(jī)
(4)選課
本系統(tǒng)主要是提供給在校的教師和學(xué)生使用。
1.2 系統(tǒng)開(kāi)發(fā)的設(shè)計(jì)思想
本系統(tǒng)是以SHH框架來(lái)進(jìn)行開(kāi)發(fā)。在系統(tǒng)中,Hibernate主要是處理對(duì)象數(shù)據(jù)表的增、刪、改、查;Spring框架通過(guò)依賴注入(IOC)的關(guān)系將持久化作為控制器的業(yè)務(wù);Struts框架是為了實(shí)現(xiàn)功能與 JSP頁(yè)面的交互操作[1]。
Struts發(fā)展到現(xiàn)在已經(jīng)具備了相當(dāng)成熟穩(wěn)定的技術(shù),并且在 Struts的技術(shù)社區(qū)支持下,攜帶著開(kāi)源技術(shù)的優(yōu)勢(shì),讓大部分企業(yè)都作為自己穩(wěn)固戰(zhàn)略的首選。同時(shí) Struts技術(shù)也憑借著它的強(qiáng)大的性能和較高的知名度,對(duì)項(xiàng)目的開(kāi)發(fā)也提供了很大的支持和幫助[2]。
Spring是一個(gè)很強(qiáng)大的輕量級(jí)框架,它的出現(xiàn)解決了許多J2EE開(kāi)發(fā)中常見(jiàn)問(wèn)題。Spring本身的基礎(chǔ)結(jié)構(gòu)和對(duì)其他工具的支持上都是極為強(qiáng)大的。它不僅僅能用于輕量級(jí)的應(yīng)用開(kāi)發(fā)。還能讓程序研發(fā)人員可以通過(guò)Spring來(lái)把不同技術(shù)之間的風(fēng)險(xiǎn)降低[3]。
2.1 系統(tǒng)的可行性分析
2.1.1 經(jīng)濟(jì)可行性
本系統(tǒng)所采用的技術(shù)主要中 MYSQL和 JAVA都是免費(fèi)的、開(kāi)源的技術(shù),所需要的開(kāi)發(fā)人員不多,電腦也不需要多高的配置,所以本系統(tǒng)的開(kāi)發(fā)成本低廉,在經(jīng)濟(jì)方面完全是可行的,符合經(jīng)濟(jì)可行性。
2.1.2 技術(shù)可行性
技術(shù)可行性主要體現(xiàn)在開(kāi)發(fā)人員所掌握的技術(shù)能否完整的開(kāi)發(fā)出本系統(tǒng)以及軟、硬件的配置能否滿足開(kāi)發(fā)人員的需求。本系統(tǒng)是由Spring、Struts、Hibernate三大框架構(gòu)建,由Java編譯,由MYSQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)來(lái)進(jìn)行項(xiàng)目的開(kāi)發(fā),所以該系統(tǒng)的開(kāi)發(fā)是具有一定的難度的。為了保證系統(tǒng)開(kāi)發(fā)的順利,在考慮問(wèn)題的時(shí)候一定要全面,同時(shí)采用工程化的開(kāi)發(fā)方法,讓開(kāi)發(fā)者有一個(gè)清晰的思路,從而能夠讓系統(tǒng)又快又好的開(kāi)發(fā)出來(lái)。
2.2 系統(tǒng)的需求分析
系統(tǒng)在設(shè)計(jì)到后期往往會(huì)發(fā)生一些功能不足,需要添加功能的情況。所以在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候要盡量的把數(shù)據(jù)庫(kù)設(shè)計(jì)的容易更改和擴(kuò)建。能夠做到當(dāng)需求發(fā)生改變或者需要添加功能的時(shí)候,只需要修改或添加部分代碼即可實(shí)現(xiàn),并且數(shù)據(jù)庫(kù)不會(huì)在結(jié)構(gòu)上發(fā)生任何變化。
2.2.1 系統(tǒng)的功能結(jié)構(gòu)圖
通過(guò)對(duì)學(xué)生成績(jī)管理的大量實(shí)踐調(diào)查,大體上確定了系統(tǒng)的主要需求,通過(guò)Microsoft Visio軟件制作出學(xué)生成績(jī)信息管理系統(tǒng)的功能結(jié)構(gòu)圖,以清晰的展現(xiàn)出其中的各個(gè)功能模塊。具體內(nèi)容如圖 1所示:
圖1 系統(tǒng)的功能結(jié)構(gòu)圖Fig.1 Functional structure diagram of the system
2.2.2 系統(tǒng)的功能介紹
本系統(tǒng)主要是對(duì)學(xué)生的個(gè)人信息、班級(jí)信息、課程信息、課程成績(jī)進(jìn)行操作,所以根據(jù)這個(gè)中心思想,確立各種功能模塊。學(xué)生成績(jī)信息管理主要有兩種用戶:教師和學(xué)生。根據(jù)系統(tǒng)的需求分析,結(jié)合兩種用戶模式所擁有的權(quán)利不同,兩種用戶的具體功能如下
教師端功能
1. 學(xué)生個(gè)人信息:教師能夠添加、刪除、查看某個(gè)學(xué)生的個(gè)人信息,能夠?qū)θ我鈱W(xué)生的個(gè)人信息進(jìn)行刪改;
2. 班級(jí)信息管理:教師能夠?qū)Π嗉?jí)的信息進(jìn)行管理;
3. 課程信息管理:教師能夠添加、刪除、修改任意一門(mén)課程信息;能夠查看選擇課程的學(xué)生名單
4. 學(xué)生成績(jī)管理:教師能夠添加、刪除、修改學(xué)生的成績(jī)信息;
5. 總成績(jī)管理:教師能夠?qū)W(xué)生的總成績(jī)進(jìn)行管理;
學(xué)生只有部分權(quán)限,具體功能如下:
1. 學(xué)生能對(duì)自己的個(gè)人信息查詢及修改2. 學(xué)生能夠查詢自己的成績(jī)
3. 學(xué)生能夠查詢自己的課程信息
4 學(xué)生的能夠?yàn)樽约哼x課
2.3 系統(tǒng)技術(shù)架構(gòu)
2.3.1 MVC技術(shù)
MVC是一個(gè)框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)[4]。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。MVC 分層有助于管理復(fù)雜的應(yīng)用程序,因?yàn)槟梢栽谝粋€(gè)時(shí)間內(nèi)專(zhuān)門(mén)關(guān)注一個(gè)方面。例如,可以在不依賴業(yè)務(wù)邏輯的情況下專(zhuān)注于視圖設(shè)計(jì)。同時(shí)也讓?xiě)?yīng)用程序的測(cè)試更加容易。
MVC分層同時(shí)也簡(jiǎn)化了分組開(kāi)發(fā)。不同的開(kāi)發(fā)人員可同時(shí)開(kāi)發(fā)視圖、控制器邏輯和業(yè)務(wù)邏輯。
2.3.2 Struts技術(shù)
Struts技術(shù)的一個(gè)最大的優(yōu)點(diǎn)就是它是一個(gè)開(kāi)源的軟件,這個(gè)優(yōu)點(diǎn)可以讓開(kāi)發(fā)人員更直接、更進(jìn)一步的了解其內(nèi)部實(shí)現(xiàn)的構(gòu)造機(jī)制。除此之外,Struts還有兩個(gè)很大的優(yōu)點(diǎn),就是頁(yè)面導(dǎo)航和Taglib。
配置使用Struts框架,主要就是配置struts-config.xml文件,其地址一般為WEB-INFstruts-config.xml。配置完成后,Struts通過(guò)攔截器來(lái)處理用戶的請(qǐng)求,Action負(fù)責(zé)前后臺(tái)交互,控制整個(gè)應(yīng)用流程,從而接收頁(yè)面請(qǐng)求,實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)[5]。
2.3.3 Spring技術(shù)
因?yàn)镾pring框架的體系結(jié)構(gòu)是分層架構(gòu)的,所以開(kāi)發(fā)人員可以獨(dú)立的使用其任意部分,此時(shí)它仍是穩(wěn)定的,因此對(duì)于學(xué)習(xí)和使用是很有價(jià)值的。當(dāng)系統(tǒng)使用Spring框架技術(shù)進(jìn)行開(kāi)發(fā),將大大提高編碼的可重用性。
Spring框架是一個(gè)以依賴注入(inversion of control IOC)原則和面向方面編程思想(aspect-oriented programming,AOP)為基礎(chǔ)的輕量級(jí)框架。其中使用IOC容器可以建立一個(gè)應(yīng)用上下文來(lái)幫助生成對(duì)象,在對(duì)象與對(duì)象之間建立聯(lián)系。使用IOC容器可以輕松的通過(guò)使用JavaBean屬性來(lái)實(shí)現(xiàn)業(yè)務(wù)對(duì)象之間的替換[6]。
Spring框架技術(shù)的核心就是Bean工廠。它的主要作用是建立一個(gè) Model供開(kāi)發(fā)人員使用。Spring正是在這個(gè)基礎(chǔ)上提供了AOP的實(shí)現(xiàn)。通過(guò)Spring框架,讓開(kāi)發(fā)人員更方便的對(duì)J2EE進(jìn)行使用。Spring框架技術(shù)真正的實(shí)現(xiàn)了邏輯層和Web層的分離,使開(kāi)發(fā)人員更輕松、更清晰的對(duì)系統(tǒng)完成開(kāi)發(fā)[7]。
2.3.4 Hibernate技術(shù)
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它通過(guò)對(duì)JDBC方法進(jìn)行輕量級(jí)的對(duì)象封裝來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。開(kāi)發(fā)人員通過(guò)使用Hibernate可以隨時(shí)隨地的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,方便了項(xiàng)目的開(kāi)發(fā)。只要應(yīng)用了JDBC方法,就可以使用Hibernate框架進(jìn)行開(kāi)發(fā)。Hibernate可以通過(guò) Java客戶端的Servlet/JSP的web應(yīng)用中使用[8]。
在JDBC的編程開(kāi)發(fā)使用中,開(kāi)發(fā)人員通過(guò)DAO曾編寫(xiě)SQL語(yǔ)句中的INSERT(添加)語(yǔ)句插入數(shù)據(jù),通過(guò)編寫(xiě) SELECT(查詢)語(yǔ)句進(jìn)行查詢,通過(guò)編寫(xiě)UPDATE(更新)語(yǔ)句來(lái)保存和更新數(shù)據(jù),編寫(xiě)DELETE(刪除)語(yǔ)句進(jìn)行數(shù)據(jù)刪除。
Hibernate和 JDBC的開(kāi)發(fā)院里類(lèi)似,只不過(guò)Hibernate充當(dāng)了JDBC中的DAO層,根據(jù)關(guān)系映射配置來(lái)自動(dòng)生成相應(yīng)的SQL語(yǔ)句,即HQL語(yǔ)句。從控制臺(tái)中可以看到通過(guò)Hibernate生成的HQL語(yǔ)句[9]。
Hibernate生成的HQL語(yǔ)句是動(dòng)態(tài)生成的,而JBDC中的SQL語(yǔ)句是需要人工編寫(xiě)的,所以HQL語(yǔ)句更加方便。因此當(dāng)系統(tǒng)的實(shí)體類(lèi)發(fā)生改變時(shí),JDBC需要根據(jù)實(shí)體類(lèi)的變化來(lái)修改相對(duì)應(yīng)的 SQL語(yǔ)句,工作量很大且極其復(fù)雜,而在使用了Hibernate的系統(tǒng)中只需要修改對(duì)應(yīng)的實(shí)體類(lèi)的配置即可實(shí)現(xiàn)。因此,Hibernate框架是方便快捷的,使用它進(jìn)行開(kāi)發(fā)可以提高開(kāi)發(fā)的效率[10]。
2.3.5 JavaScript技術(shù)
JavaScript是一種經(jīng)典的網(wǎng)絡(luò)腳本語(yǔ)言,是動(dòng)態(tài)的語(yǔ)言。早起在HTML網(wǎng)頁(yè)上進(jìn)行使用以增加網(wǎng)頁(yè)的動(dòng)態(tài)功能,是目前廣泛的應(yīng)用于客戶端的一種腳本語(yǔ)言[11]。
JavaScript語(yǔ)言是一種解釋型的腳本語(yǔ)言,不需要像 C語(yǔ)言或者 C++語(yǔ)言那樣先進(jìn)行編譯才能執(zhí)行,而是在程序的運(yùn)行中逐漸的進(jìn)行解釋。JavaScript還能使用現(xiàn)有的對(duì)象,同時(shí)又能創(chuàng)建新的對(duì)象,使用起來(lái)簡(jiǎn)單緊湊[12]。同時(shí)它還是動(dòng)態(tài)的,可以根據(jù)用戶的輸入做出相應(yīng)的反應(yīng),比如用戶對(duì)一個(gè)網(wǎng)頁(yè)頁(yè)面進(jìn)行鼠標(biāo)移動(dòng)、點(diǎn)擊等操作時(shí),JavaScript不需要經(jīng)過(guò) Web服務(wù)器就可以對(duì)事物做出與之相對(duì)應(yīng)的反應(yīng),節(jié)省了時(shí)間,提高了互動(dòng)性[13-15]。因此,JavaScript的特點(diǎn)是無(wú)窮無(wú)盡的,只要有創(chuàng)意,通過(guò)JavaScript都可以實(shí)現(xiàn)。
[1] 張洪偉. Tomcat Web開(kāi)發(fā)及整合應(yīng)用[M].北京.清華大學(xué)出版社, 2006: 10-230.Zhang Hongwei. Tomcat Web Development and Integration Application[M]. Beijing. Tsinghua University Press, 2006:10-230.
[2] 李剛. Struts2權(quán)威指南:基于WebWork核心的MVC開(kāi)發(fā)[M].電子工業(yè)出版社, 2007: 93-332.Li Gang. Struts2 Authoritative Guide: MVC Development Based on WebWork Core[M]. Electronic Industry Press,2007: 93-332.
[3] 陳天河. Struts. Hibernate. Spring集成開(kāi)發(fā)寶典[M. 電子工業(yè)出版社, 2007: 246-249.Chen Tianhe. Integrated Development Book of Struts-Hibernate-Spring[M]. Electronic Industry Press, 2007: 246-249.
[4] 梁立新.基于SSH的Java應(yīng)用開(kāi)發(fā)[M]. 北京. 電子工業(yè)出版社. 2006: 10-300.Liang Lixin. Java Application Development Based on SSH[M]. Beijing Electronic Industry Press. 2006: 10-300.
[5] 石志國(guó), 薛為民, 董潔. JSP高等學(xué)校計(jì)算機(jī)語(yǔ)言應(yīng)用教程[M]. 清華大學(xué)出版社, 2004: 190-196.Shi Zhiguo, Xue Weimin, Dong Jie.JSP Computer Language Application Course of Universities and Colleges.[M]. Tsinghua University Press, 2004:190-196.
[6] 張國(guó)平, 鄭均輝, 張琳. 基于SSH2和Ajax的物聯(lián)網(wǎng)社區(qū)信息化管理系統(tǒng)[J]. 現(xiàn)代電子技術(shù), 2015(14): 79-81+85.Zhang Guoping, Zheng Junhui, Zhang Lin. Internet of Things Community Information Management System Based on SSH2 and Ajax[J]. Modern Electronic Technology, 2015(14):79-81+85.
[7] 孫衛(wèi)琴. Java網(wǎng)絡(luò)編程精解[M]. 電子工業(yè)出版社, 2007:66-70.Sun Weiqin. Explanations of Java Network Programming[M]. 2007: 66-70. Electronic Industries Press.
[8] Manheim. M. L. An architecture for active DSS[J]. 21st International Conference on System Science. Hawaii: IEEE Computer Society Press, 1988: 356-365.
[9] Bruce Eckel. Theoretical Artificial Intelligence[J]. 1998, 10(4): 393-402.
[10] 廖義奎. Java Web 開(kāi)發(fā)之Srtuts編程基礎(chǔ)與實(shí)例精講[M].中國(guó)電力出版社, 2006: 133-137.Liao Yikui. Srtuts Programming Basis and Examples Explanation of Java Web Development[M]. China Electric Power Press, 2006: 133-137.
[11] 孫衛(wèi)琴, 李洪成. Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解[M]. 電子工業(yè)出版社, 2004: 56-61.Sun Weiqin, Li Hongcheng.Tomcat and Java Web Development Technology Explanation [M].Electronics Industry Press,2004:56-61.
[12] Marty Hall. Servlet與JSP權(quán)威指南[M]. 北京. 機(jī)械工業(yè)出版社, 2002: 30-350.Marty Hall. Authoritative Guide on Servlet and JSP[M]. Beijing. Mechanical Industry Press, 2002: 30-350.
[13] 邱哲, 王俊標(biāo), 馬斗. Java開(kāi)發(fā)利器: Struts Web設(shè)計(jì)與開(kāi)發(fā)大全[M]. 清華大學(xué)出版社, 2006: 67-72.Qiu Zhe, Wang Junbiao, Ma Dou.Java development tool:Struts Web Design and Development Encyclopedia [M].Tsinghua University Press, 2006: 67-72.
[14] 韓存武, 張鳳梅, 孫德輝, 吳力普, 梁宇. 基于RFID技術(shù)的高校設(shè)備管理系統(tǒng)設(shè)計(jì)[J]. 新型工業(yè)化, 2016, 6(2): 1-6.Han Cunwu, Zhang Fengmei, Sun Dehui, Wu Lipu, Liang Yu.Design of University Equipment Management System Based on RFID Technology [J]. New Industrialization, 2016, 6(2): 1-6.
[15] 鄭業(yè)芬, 梁孫祥. 自考辦信息管理系統(tǒng)設(shè)計(jì)[J]. 軟件,2017, 38(8): 176-179.Zheng Yefen, Liang Sunxiang. Information Management System Design of Self-taught Examination Office[J]. Software,2017, 38 (8): 176-179.
Design and Analysis of Information Management System of Student’s Achievements Based on SSH
TIAN Wen-tao1, ZHANG Zhao1, ZHANG Xiao-bing2
(1. Harbin Staff Medical College of Heilongjiang, Harbin, Heilongjiang, 150000;2. Yichun City the First Hospital of Heilongjiang, Yichun, Heilongjiang, 153000)
With structure of Browser/Server, the system unifies client, integrates core part of main function on the server, which is developed and realized through Java, Hibernate, Spring, Struts and MYSQL database technically.The system not only pays attention to actual operation of system, concise layout, clear function, but allows users to operate clearly, meeting needs of students and teachers. The article mainly introduces development and design thoughts of system and requirement analysis of the software.
Information management of student’s achievements; Browser/Server structure; MYSQL database;Design and analysis
G434
A
10.3969/j.issn.1003-6970.2017.11.040
本文著錄格式:田文濤,張釗,張笑冰. 基于SSH的學(xué)生成績(jī)信息管理系統(tǒng)的設(shè)計(jì)與分析[J]. 軟件,2017,38(11):212-215
黑龍江省青年專(zhuān)項(xiàng)課題(ZJD1316013)
田文濤,男,黑龍江省巴彥縣,哈爾濱市職工醫(yī)學(xué)院,中級(jí)職稱(chēng)(實(shí)驗(yàn)師),本科學(xué)歷,研究方向:計(jì)算機(jī)及輔助教學(xué)。