国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SSH框架的高校餐費(fèi)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2015-05-30 02:07:34翟高粵
計(jì)算機(jī)時(shí)代 2015年5期

摘 要: 為提高高校餐費(fèi)管理的效率,實(shí)現(xiàn)智能化管理,提出一種基于SSH框架的餐費(fèi)管理解決方案。介紹了系統(tǒng)的總體框架、業(yè)務(wù)流程和主要功能模塊的設(shè)計(jì),對(duì)系統(tǒng)開(kāi)發(fā)中的關(guān)鍵技術(shù)SSH框架進(jìn)行了研究,并實(shí)現(xiàn)了軟件的研制。實(shí)踐證明,采用SSH框架設(shè)計(jì)模式,可以將系統(tǒng)進(jìn)行很好的分工,使系統(tǒng)層次結(jié)構(gòu)更加清晰,降低模塊之間耦合性,簡(jiǎn)化編程,提高軟件開(kāi)發(fā)效率,同時(shí)提高系統(tǒng)的性能和可維護(hù)性。

關(guān)鍵詞: Struts; 餐費(fèi)管理; Hibernate; Spring; SSH; MVC

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)05-47-03

Abstract: In order to improve the efficiency of the catering management, this paper puts forward a solution for college catering management based on SSH framework. The overall framework of the system, business processes, and the design of the main functional modules are introduced, the key technology of SSH framework in the development of the system is studied. Practice has proved that using the SSH framework design mode, can be a good division of the system, make the hierarchical structure of the system more clear, reduce the coupling between modules, simplify programming, improve the efficiency of software development, improve the performance of the system and maintainability at the same time.

Key words: Struts; catering expense management; Hibernate; Spring; SSH; MVC

0 引言

近年來(lái)高校大力擴(kuò)招,這給高校的管理帶來(lái)了很大考驗(yàn),學(xué)生的就餐就是一個(gè)不小的問(wèn)題。傳統(tǒng)的餐費(fèi)管理大多采用人工管理,效率低,已經(jīng)不能滿足當(dāng)前的需求。針對(duì)這個(gè)問(wèn)題,本文通過(guò)SSH(Struts+Hibernate+Spring)框架技術(shù),開(kāi)發(fā)一個(gè)基于MVC的高校餐費(fèi)管理系統(tǒng),使餐費(fèi)管理實(shí)現(xiàn)智能化管理。實(shí)踐證明,該系統(tǒng)的投入使用,大大提高了管理水平和效率。

1 SSH框架介紹

1.1 Struts

Struts是一個(gè)基于Java的MVC(Model-View-Controller)框架,主要是采用Servlet和JSP技術(shù)來(lái)實(shí)現(xiàn)[1],該框架主要由三部分組成。

模型(Model):是一個(gè)Action類,通過(guò)它來(lái)實(shí)現(xiàn)商業(yè)邏輯,用戶請(qǐng)求通過(guò)struts-config.xml文件描述的配置信息實(shí)現(xiàn)控制器(Controller)向Action的轉(zhuǎn)發(fā)。

視圖(View):View是由與控制器Servlet配合工作的一整套JSP定制標(biāo)簽庫(kù)構(gòu)成,利用它們可以快速建立應(yīng)用系統(tǒng)的界面。

控制器(Controller):本質(zhì)是Servlet,主要功能是將客戶端請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的Action類。

1.2 Spring

Spring是輕量級(jí)的Java EE應(yīng)用程序框架。Spring的核心是實(shí)現(xiàn)了IoC(控制反轉(zhuǎn))模式和AOP(面向切面編程)的容器,Spring的目標(biāo)是實(shí)現(xiàn)一個(gè)全方位的整合框架,實(shí)現(xiàn)多個(gè)子框架的組合,提供一站式的框架整合方案[2]。

1.3 Hibernate

Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使得Java程序員可以使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù),完成數(shù)據(jù)的持久化[3]。

總的來(lái)說(shuō),傳統(tǒng)的Java EE采用EJB(企業(yè)Java Bean)為核心,以應(yīng)用服務(wù)器為運(yùn)行環(huán)境,開(kāi)發(fā)和運(yùn)行的成本較高。由Struts+Spring+Hibernate構(gòu)成的SSH框架是Java EE的一個(gè)輕量級(jí)框架,它具備Java EE規(guī)范的種種特征,具有良好的面向?qū)ο蠼5乃季S方式、優(yōu)秀的應(yīng)用分層及良好的可擴(kuò)展性和可維護(hù)性,目前已經(jīng)成為Java EE的一種更廣泛的開(kāi)發(fā)規(guī)范。SSH集成框架與技術(shù)結(jié)構(gòu)如圖1所示[4]。

2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2.1 系統(tǒng)功能

系統(tǒng)主要實(shí)現(xiàn)用戶信息導(dǎo)入、在線刷卡、賬戶查詢、賬戶充值和賬戶管理等相關(guān)功能。功能模塊構(gòu)成如圖2所示。

⑴ 用戶信息導(dǎo)入:通過(guò)后臺(tái)管理批量導(dǎo)入學(xué)生基本信息,如學(xué)號(hào)、姓名、初始密碼等信息。

⑵ 在線刷卡:用戶在就餐消費(fèi)時(shí)刷卡,系統(tǒng)讀出用戶的賬戶余額,如果余額充足,將從賬戶余額中減去本次就餐的費(fèi)用,并顯示本次就餐發(fā)生費(fèi)用和用戶賬戶余額。

⑶ 賬戶查詢:查詢用戶就餐費(fèi)用的歷史記錄以及余額的情況。

⑷ 賬戶充值:管理員收到學(xué)生的餐費(fèi)后對(duì)用戶的賬戶進(jìn)行充值,即把收到的餐費(fèi)與學(xué)生賬戶的余額進(jìn)行累加。

⑸ 用戶賬戶管理:可以對(duì)學(xué)生賬戶進(jìn)行刪除和修改。

2.2 系統(tǒng)架構(gòu)設(shè)計(jì)

本系統(tǒng)采用的是四層B/S結(jié)構(gòu),包括表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層和數(shù)據(jù)層。

表示層主要采用Struts構(gòu)架,實(shí)現(xiàn)MVC模型中的視圖和控制部分。

業(yè)務(wù)邏輯層主要使用Spring框架實(shí)現(xiàn)。Spring框架使用依賴注入的方式,使業(yè)務(wù)邏輯組件在運(yùn)行期被注入到容器中,利用Spring框架的AOP功能,從面向方面更好地降低系統(tǒng)中各個(gè)組件之間的耦合性[5]。另外,Spring的事務(wù)管理功能在在線刷卡模塊也得到很好的應(yīng)用。

數(shù)據(jù)訪問(wèn)層使用Hibernate框架實(shí)現(xiàn)。在該層主要完成實(shí)體“對(duì)象-關(guān)系”映射的建立,通過(guò)這個(gè)映射訪問(wèn)業(yè)務(wù)對(duì)象,即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),使得開(kāi)發(fā)中不必再用SQL語(yǔ)句編寫復(fù)雜的數(shù)據(jù)庫(kù)訪問(wèn)程序,簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),提高了開(kāi)發(fā)效率[6]。

數(shù)據(jù)層主要是數(shù)據(jù)庫(kù),本系統(tǒng)中使用MySql數(shù)據(jù)庫(kù)。

2.3 具體實(shí)現(xiàn)分析

因篇幅限制,以下僅從眾多模塊中選擇賬戶充值模塊來(lái)說(shuō)明SSH架構(gòu)開(kāi)發(fā)的具體流程。

2.3.1 利用Struts框架建立視圖和控制器

⑴ 建立視圖

在MVC模式中,視圖負(fù)責(zé)顯示從模型中采集的數(shù)據(jù),也負(fù)責(zé)用戶輸入的數(shù)據(jù)和請(qǐng)求的傳遞,并將這些數(shù)據(jù)和請(qǐng)求傳遞給控制器和模型,在Struts框架中,視圖部分主要包括JSP頁(yè)面和ActionForm[7]。JSP頁(yè)面用來(lái)顯示模型中的數(shù)據(jù),收集用戶輸入的數(shù)據(jù)以及提交用戶的請(qǐng)求。ActionForm的實(shí)質(zhì)是實(shí)體JavaBean,在Struts中專門用來(lái)傳遞表單數(shù)據(jù)。

下面是賬戶充值JSP頁(yè)面、ActionForm和控制器的部分關(guān)鍵代碼:

<!—賬戶充值JSP代碼-->

AccountFunding” method=”post”>

<!—賬戶充值A(chǔ)ctionForm代碼-->

⑵ 建立控制器

控制器的功能是將客戶端請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的Action類[8],控制部分包括配置文件web.xml、struts-config.xml和相應(yīng)的Action類。下面是控制器的部分關(guān)鍵代碼:

<!—web.xml Struts應(yīng)用配置部分代碼-->

action

org.apache.struts.action.ActionServlet

action

*.do

<!—struts-config.xml 配置部分代碼-->

name=”accountFundingForm”

type =”com.szjm.action.accountFundingAction”

parameter=”method”>

上述代碼顯示,在struts-config.xml文件中定義了一個(gè)元素,用來(lái)處理賬戶充值的請(qǐng)求,通過(guò)賬戶充值的JSP頁(yè)面的“accountFunding.do?method=AccountFunding”這樣的請(qǐng)求,就可以由AccountFundingAction來(lái)處理該請(qǐng)求,并將處理結(jié)果返回。

2.3.2 建立模型

SSH中的模型包括可重復(fù)利用的實(shí)體JavaBean、系統(tǒng)的業(yè)務(wù)邏輯以及對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)方法。建立的模型最終通過(guò)Spring依賴注入的方式,在運(yùn)行期被注入到容器中等待調(diào)用。

⑴ 實(shí)體JavaBean類

本系統(tǒng)實(shí)體主要由學(xué)生賬戶類(Account.java)、學(xué)生類(Student.java)和管理員類(Manager.java)構(gòu)成。

Account類:表示業(yè)務(wù)中的學(xué)生賬戶。

Student類:表示業(yè)務(wù)中的學(xué)生。

Manager類:表示業(yè)務(wù)中的管理員。

以上實(shí)體類均可以通過(guò)Hibernate DAO(數(shù)據(jù)訪問(wèn)對(duì)象)對(duì)它們的操作來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中相應(yīng)表的操作。

⑵ 建立業(yè)務(wù)邏輯類

業(yè)務(wù)邏輯類主要完成應(yīng)用中所需要的一些業(yè)務(wù)方法,有業(yè)務(wù)邏輯接口和相應(yīng)的實(shí)現(xiàn)類構(gòu)成。本系統(tǒng)的業(yè)務(wù)邏輯接口有兩個(gè),即IStudentService和IManagerService,分別對(duì)應(yīng)了與學(xué)生相關(guān)的業(yè)務(wù)邏輯以及餐費(fèi)管理員相關(guān)的業(yè)務(wù)邏輯。與業(yè)務(wù)邏輯接口對(duì)應(yīng),系統(tǒng)中定義了實(shí)現(xiàn)這兩個(gè)業(yè)務(wù)邏輯接口的實(shí)現(xiàn)類,即StudentServiceImpl和ManagerServiceImpl類。

⑶ 建立DAO類

DAO類主要完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),可以借助Hibernate來(lái)實(shí)現(xiàn)。傳統(tǒng)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)是通過(guò)JDBC來(lái)完成,但是,使用JDBC訪問(wèn)數(shù)據(jù),SQL語(yǔ)句比較復(fù)雜且難以理解,重復(fù)代碼較多,而使用Hibernate可以解決這些問(wèn)題。Hibernate通過(guò)訪問(wèn)對(duì)象的方法來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),在訪問(wèn)中使用HQL語(yǔ)句來(lái)訪問(wèn)對(duì)象,使程序和開(kāi)發(fā)變得簡(jiǎn)單。下面簡(jiǎn)單介紹建立DAO類的步驟。

① 建立“對(duì)象-關(guān)系”映射文件

在餐費(fèi)管理系統(tǒng)中,根據(jù)業(yè)務(wù)實(shí)體和數(shù)據(jù)庫(kù)中的表,需要建立如下三個(gè)“對(duì)象-關(guān)系”映射文件。

Account.hbm.xml:表示Account對(duì)象和account表之間的對(duì)象-關(guān)系映射文件。

Student.hbm.xml:表示Student對(duì)象和student表之間的對(duì)象-關(guān)系映射文件。

Manager.hbm.xml:表示Manager對(duì)象和manager表之間的對(duì)象-關(guān)系映射文件。

對(duì)象-關(guān)系映射文件建立后,在進(jìn)行數(shù)據(jù)訪問(wèn)時(shí)就可通過(guò)訪問(wèn)業(yè)務(wù)實(shí)體對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。

② 建立DAO類

系統(tǒng)中DAO類可通過(guò)Hibernate Synchronizer工具自動(dòng)生成,包括StudentDAO、AccountDAO和ManagerDAO類,這三個(gè)類都分別實(shí)現(xiàn)了接口IStudentDAO、IAccountDAO和IManagerDAO。這些DAO類主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)查找、保存、更新和刪除等功能。

2.3.3 使用Spring裝配組件

前面介紹的Action類、Service類和DAO類,這些類在傳統(tǒng)的做法中,通常是在代碼中通過(guò)互相調(diào)用組織在一起,這樣做導(dǎo)致類之間的耦合度較高,一旦某些代碼發(fā)生了改變,就需要對(duì)各個(gè)耦合的程序進(jìn)行重新編譯,維護(hù)的工作量很大。使用Spring來(lái)對(duì)它們進(jìn)行管理,可以很好地解決這些問(wèn)題。

⑴ Struts和Spring集成

通過(guò)Struts和Spring的集成,Struts中Action就可以被Spring進(jìn)行管理,從而實(shí)現(xiàn)了在運(yùn)行期對(duì)Action的依賴注入。Struts和Spring的集成可通過(guò)在Struts-config.xml中加入以下代碼實(shí)現(xiàn)。

<!—配置Spring插件-- >

.ContextLoaderPlugIn”>

/WEB-INF/applicationContext.xml”>

⑵ 建立applicationContext.xml文件

applicationContext.xml是Spring的配置文件,該文件的主要功能是將Action類、Service類和DAO類進(jìn)行裝配,實(shí)現(xiàn)數(shù)據(jù)源的配置、SessionFactory的創(chuàng)建(主要用來(lái)實(shí)現(xiàn)Hibernate的初始化)、事務(wù)管理和業(yè)務(wù)邏輯事務(wù)代理的配置等功能。

3 結(jié)論

本文通過(guò)一個(gè)具體實(shí)例的實(shí)現(xiàn)過(guò)程介紹了使用SSH框架進(jìn)行開(kāi)發(fā)的步驟和方法。實(shí)踐證明,采用SSH框架設(shè)計(jì)模式,可以將系統(tǒng)的設(shè)計(jì)進(jìn)行很好的分工,使系統(tǒng)的層次結(jié)構(gòu)更加清晰,降低模塊之間耦合性,簡(jiǎn)化編程,提高軟件開(kāi)發(fā)效率,同時(shí)提高系統(tǒng)的性能和維護(hù)性,在開(kāi)發(fā)大型可復(fù)用、可擴(kuò)展和可維護(hù)的Web應(yīng)用系統(tǒng)開(kāi)發(fā)中體現(xiàn)出了它的優(yōu)勢(shì)。希望該方法可為剛開(kāi)始學(xué)習(xí)SSH架構(gòu)的軟件開(kāi)發(fā)人員提供一定的參考。

參考文獻(xiàn):

[1] 王美琴.基于J2EE的輕量級(jí)SSH架構(gòu)整合研究[J].電腦知識(shí)與技術(shù),2009.21:5718-5720

[2] 于湛麟,李仲秋,任永昌.SSH框架實(shí)現(xiàn)MVC架構(gòu)的電子商務(wù)軟件平臺(tái)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012.10:169-172

[3] 王希望,孟祥書,王福順.基于SSH架構(gòu)的Web系統(tǒng)的開(kāi)發(fā)方法[J].河北農(nóng)業(yè)大學(xué)學(xué)報(bào):農(nóng)林教育版,2010.4:538-541

[4] 翟高粵.SSH框架擴(kuò)展與集成的研究[J].煤炭技術(shù),2011.8:194-195

[5] 翟高粵.基于J2EE技術(shù)的SSH框架的改進(jìn)及應(yīng)用[J].計(jì)算機(jī)時(shí)代,2012.10:24-26

[6] 陶維.基于SSH多架構(gòu)Web系統(tǒng)設(shè)計(jì)及其應(yīng)用[J].科技和產(chǎn)業(yè),2009.3:101-104

[7] 郭廣軍,朱昭君,王劍波.基于SSH架構(gòu)的課程作業(yè)與成績(jī)管理系統(tǒng)[J].微電子學(xué)與計(jì)算機(jī),2010.8:157-160

[8] 王斯瓊,牟永敏.Spring在SSH架構(gòu)中的作用和不足[J].北京機(jī)械工業(yè)學(xué)院學(xué)報(bào),2008.1:54-57

那曲县| 灵石县| 当阳市| 大悟县| 乌兰浩特市| 韩城市| 桐柏县| 义乌市| 尼玛县| 江城| 榆树市| 郴州市| 荥经县| 夏河县| 密山市| 新化县| 忻城县| 得荣县| 湘西| 闽侯县| 东莞市| 庆城县| 原阳县| 金门县| 德清县| 嘉义市| 布拖县| 恩施市| 衡山县| 柏乡县| 博白县| 丹东市| 澄迈县| 晋中市| 佛冈县| 洛浦县| 富锦市| 屯昌县| 固始县| 乐清市| 南通市|