李涵,顏楷城
(北京信息科技大學(xué) 理學(xué)院,北京100192)
基于SSH框架的超市商品管理軟件
李涵,顏楷城
(北京信息科技大學(xué) 理學(xué)院,北京100192)
課題依賴SSH(Struts2+Spring+Hibernate)框架,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)超市商品管理系統(tǒng),提高超市的日常管理效率。Struts進(jìn)行流程控制,Spring進(jìn)行業(yè)務(wù)流轉(zhuǎn),Hibernate進(jìn)行數(shù)據(jù)庫(kù)操作的封裝。軟件系統(tǒng)分為基礎(chǔ)管理、商品管理、訂單管理三大模塊,基礎(chǔ)管理實(shí)現(xiàn)對(duì)人員、部門、角色、資源的增刪改查操作;商品管理實(shí)現(xiàn)對(duì)商品信息、供應(yīng)商信息的增刪改查。訂單管理基于商品管理和基礎(chǔ)管理,實(shí)現(xiàn)訂單采購(gòu)的下單、審核流程,且可查看訂單詳情、可對(duì)歷史訂單進(jìn)行管理。
MySQL;SSH;B-S模式;MVC模式;超市管理系統(tǒng)
計(jì)算機(jī)的出現(xiàn)給人類的生活帶來(lái)了極大的便利,一家超市在其日常運(yùn)營(yíng)中會(huì)有多種工作需求,如:庫(kù)管員能實(shí)時(shí)地獲知各類商品的庫(kù)存信息、采購(gòu)員發(fā)現(xiàn)庫(kù)存量不足時(shí)能發(fā)出采購(gòu)單、主管能審核采購(gòu)員發(fā)的采購(gòu)單是否合理以決定是否同意此單采購(gòu)、管理員能維護(hù)著各類商品的相關(guān)信息 (進(jìn)貨日期、生產(chǎn)廠家、進(jìn)貨價(jià)等)、主管能維護(hù)供應(yīng)商的聯(lián)系信息,等等。本課題使用Java語(yǔ)言開(kāi)發(fā)設(shè)計(jì)一個(gè)“超市商品管理軟件”,該管理系統(tǒng)基于B-S模式,分為基礎(chǔ)管理、商品管理、訂單采購(gòu)3大模塊?;A(chǔ)管理實(shí)現(xiàn)對(duì)人員、部門、角色、資源的增、刪、改、查操作;商品管理實(shí)現(xiàn)對(duì)商品信息、供應(yīng)商信息的增刪改查。訂單管理基于商品管理和基礎(chǔ)管理,實(shí)現(xiàn)訂單采購(gòu)的下單、審核流程,且可查看訂單詳情、可對(duì)歷史訂單進(jìn)行管理。
本系統(tǒng)的設(shè)計(jì)思路為:基于各大實(shí)體類的增、刪、改、查操作的高度相似,抽取各大實(shí)體的共性,形成通用類(接口),各個(gè)子模塊的類均繼承相應(yīng)通用類(接口)[1]。絕大部分的增、刪、改、查代碼在通用類內(nèi)實(shí)現(xiàn),而少部分的特有代碼則在本實(shí)體的相應(yīng)類文件(Service實(shí)現(xiàn)類、Dao實(shí)現(xiàn)類)內(nèi)補(bǔ)充。系統(tǒng)的全局設(shè)計(jì)圖如圖1所示。
圖1 系統(tǒng)全局設(shè)計(jì)圖
本系統(tǒng)所依賴的數(shù)據(jù)庫(kù)包含十一張表,其中八張表與系統(tǒng)內(nèi)八個(gè)實(shí)體子模塊一一對(duì)應(yīng),有兩張表為實(shí)體類多對(duì)多關(guān)聯(lián)時(shí)所依賴的中間表,最后一張表是字典表。八張實(shí)體表分別為資源表T_Res、角色表T_Rol、部門表T_Dep、員工表T_Emp、供應(yīng)商表 T_Supplier、商品表T_Goods、訂單商品表T_OrderGoods、訂單表T_Order。兩張中間表分別為角色-資源_中間表T_M_Rol_Res、員工-角色_中間表T_M_Emp_Rol,字典表為T_Dict。
SSH整合開(kāi)發(fā)有3種整合模式,一種是xm l配置開(kāi)發(fā),一種是注解開(kāi)發(fā),還有一種是xm l混合注解開(kāi)發(fā)[2-3]。xm l配置開(kāi)發(fā)的好處在于結(jié)構(gòu)清晰,缺點(diǎn)在于配置冗余麻煩,注解開(kāi)發(fā)好處在于快捷,缺點(diǎn)在于結(jié)構(gòu)邏輯不清晰[4],對(duì)全項(xiàng)目的把控不好。本課題采用xml配置開(kāi)發(fā)。
Struts2有一個(gè)配置文件,即Struts.xm l。而Hibernate有兩種配置文件,全局的hibernate.cfg.xm l,及各實(shí)體類映射配置文件xxx.hbm.xm l[5]。Spring有一個(gè)全局的配置文件 applicationConfiguration.xml,以及配置各類注入關(guān)系的application-Configuration_***.xm l[6]。由Spring的配置文件整合進(jìn)Struts2和Hibernate的配置文件[7]。
用戶登陸流程如圖2所示。用戶在登陸界面輸入用戶名、密碼,點(diǎn)擊登陸按鈕后,表單頁(yè)將用戶名、密碼提交到后臺(tái),對(duì)密碼做MD5加密后,從員工表內(nèi)查詢與用戶名、密碼精確匹配的員工。查詢時(shí)調(diào)用HQL版通用單表查詢方法[8-9],要按精確查詢格式構(gòu)造傳入?yún)?shù),獲取查詢結(jié)果,如果查詢結(jié)果非空則將List集合的第一個(gè)元素返回(由于用戶名加了唯一值約束,不可能存在重名用戶,所以如果查詢結(jié)果非空,則List集合內(nèi)有且只有一個(gè)元素),否則返回null。
圖2 用戶登陸流程圖
權(quán)限校驗(yàn)流程如圖3所示。自定義監(jiān)聽(tīng)器用于加載系統(tǒng)全資源,在web.xm l配置文件中配置上本監(jiān)聽(tīng)器,以便服務(wù)器一啟動(dòng)時(shí)就加載系統(tǒng)的全資源[10]。系統(tǒng)全資源是指,本項(xiàng)目被納入權(quán)限控制的全部資源的集合,是指T_Res資源表中全部記錄的url。
圖3 權(quán)限校驗(yàn)流程圖
4.1 角色管理子模塊
點(diǎn)擊“角色管理”菜單,列表展示本系統(tǒng)全部角色,以做增、刪、改、查操作,如圖4所示。
圖4 列表展示
點(diǎn)擊“新建”按鈕,進(jìn)入添加角色的編輯頁(yè)。本編輯頁(yè)共有3個(gè)功能按鈕,分別為保存、重置、取消。點(diǎn)擊“重置”則清空當(dāng)前舊值,點(diǎn)擊取消則返回列表展示頁(yè)。如圖5所示。
圖5 添加角色
4.2 部門管理子模塊
由于部門表內(nèi)包含超過(guò)10條的記錄,而分頁(yè)組件設(shè)置為10條/頁(yè),所以出現(xiàn)分頁(yè)按鈕,可進(jìn)行跳頁(yè)操作。部門查詢有兩個(gè)查詢條件,一是部門名,二是電話,二者都是進(jìn)行模糊查詢??梢灾付▎蝹€(gè)條件,也可兩個(gè)條件都指定。
4.3 員工管理子模塊
可以實(shí)現(xiàn)員工管理的增刪改功能,如圖6所示。
4.4 登陸功能模塊
登陸頁(yè)對(duì)表單項(xiàng)做多種校驗(yàn),依順序分別為:用戶名非空校驗(yàn)、密碼非空校驗(yàn)、驗(yàn)證碼非空校驗(yàn)、驗(yàn)證碼正確性校驗(yàn)。只有四種校驗(yàn)全部通過(guò)才向后臺(tái)提交登陸請(qǐng)求,查詢是否存在本帳戶。若用戶名和密碼輸入正確,則成功登陸商品管理系統(tǒng)。
圖6 列表展示
4.5 采購(gòu)下單模塊
點(diǎn)擊“采購(gòu)下單”菜單項(xiàng),進(jìn)入采購(gòu)訂列表管理頁(yè)。對(duì)訂單的管理有新建、查詢、查看詳情。采購(gòu)訂單查詢條件有3類5種,分別為:
1)精確查詢類:訂單狀態(tài)、供應(yīng)商
2)模糊查詢類:下單人
3)范圍查詢類:下單時(shí)間、訂單總額
提交訂單成功,返回訂單列表頁(yè)后,此時(shí)列表頁(yè)內(nèi)將會(huì)添加一份新訂單,新建的訂單顯示為未審核狀態(tài)。
5.6 訂單審核模塊
點(diǎn)擊“訂單審核”菜單項(xiàng),進(jìn)入訂單審核列表展示頁(yè)。待審核訂單的列表管理功能有查詢、查看訂單詳情、審核3種。已被審核過(guò)的訂單只用文字域顯示訂單的審核結(jié)果,而未被審核的訂單則提供超鏈接入口,供用戶跳入訂單審核頁(yè)做審核。如圖7所示。
圖7 待審核訂單列表展示頁(yè)
待審核訂單的查詢條件有3種,分別為下單時(shí)間、下單人、訂單總額。
訂單審核是對(duì)未審核的訂單做審批,可予以“通過(guò)”或是“駁回”。點(diǎn)擊通過(guò)或駁回按鈕后,都后臺(tái)提交更新訂單狀態(tài)的請(qǐng)求,更新訂單狀態(tài)成功后,前臺(tái)返回訂單列表展示頁(yè)。
本課題設(shè)計(jì)實(shí)現(xiàn)一個(gè)超市商品管理系統(tǒng),課題的開(kāi)發(fā)依賴于SSH(Struts2+Spring+Hibernate)框架整合開(kāi)發(fā),基于B-S模式,分為基礎(chǔ)管理、商品管理、訂單采購(gòu)3大模塊?;A(chǔ)管理實(shí)現(xiàn)對(duì)人員、部門、角色、資源的增刪改查操作;商品管理實(shí)現(xiàn)對(duì)商品信息、供應(yīng)商信息的增刪改查。訂單管理基于商品管理和基礎(chǔ)管理,實(shí)現(xiàn)訂單采購(gòu)的下單、審核流程,且可查看訂單詳情、可對(duì)歷史訂單進(jìn)行管理。
[1]龍馬工作室.精通HTML+CSS:100%網(wǎng)頁(yè)設(shè)計(jì)與布局密碼[M].北京:人民郵電出版社,2014.
[2]季國(guó)飛.jQuery開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.
[3]LaCrone.B.HTML5 and CSS3 Responsive Web Design Cookbook[M].北京:機(jī)械工業(yè)出版社,2014.
[4]Flanagan.D.JavaScript:The Definitive Guide[M].北京:機(jī)械工業(yè)出版社,2007.
[5]孫衛(wèi)琴.精通Hibernate:Java對(duì)象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社,2005.
[6]Oppel.A.,Sheldon.R.SQL:A Beginner's Guide.Third Edition[M].北京:清華大學(xué)出版社,2009.
[7]李剛.輕量級(jí)J2EE企業(yè)應(yīng)用實(shí)戰(zhàn):Struts+Spring+Hibernate整合開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2007.
[8]DuBois.P.MySQL:The definitive guide to using,programming,and administering MySQL4.Second Edition[M].北京:機(jī)械工業(yè)出版社,2004.
[9]梁棟.Java加密與解密的藝術(shù)[M].北京:機(jī)械工業(yè)出版社,2010.
[10]孔德生.Java組件設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
A supermarketmanagement software based on SSH framework
LIHan,YAN Kai-cheng
(School of Applied Science,Beijing Information Science&Technology University,Beijing 100192,China)
This project is to implementa supermarket commoditymanagementsystem which can improve the efficiency of the supermarketmanagement.The projectdepend on SSH (Struts2+Spring+Hibernate)framework.The system is divided into three parts:foundationalmanagement,commoditymanagement,ordermanagement.The foundationalmanagement realizes the CRUD (Create+Retrieve+Update+Delete)for employee,department,role and resource.Commodity management can implement the CRUD operation for goods information and supplier information.Order management processes the whole procedure includesplacean order,verify order,check the detailof theorderandmanage thehistoric order.
MySQL;SSH;B-SMode;MVCMode;supermarketmanage system
TN915.09
A
1674-6236(2016)20-0024-03
2015-10-26 稿件編號(hào):201510181
北京市教委科研計(jì)劃面上項(xiàng)目(KM201511232019)
李 涵(1978—),女,山東淄博人,工學(xué)碩士,副教授。研究方向:網(wǎng)絡(luò)安全,移動(dòng)通信,大數(shù)據(jù)應(yīng)用等。