版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Structs框架的甘記訂單管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著社會(huì)經(jīng)濟(jì)的發(fā)展,各行各業(yè)在進(jìn)行商品交易過(guò)程中會(huì)產(chǎn)生大量的訂單信息,科學(xué)有效地管理訂單信息對(duì)企業(yè)經(jīng)營(yíng)至關(guān)重要,基于計(jì)算機(jī)技術(shù)的軟件系統(tǒng)可以有效地應(yīng)用于訂單管理業(yè)務(wù)中。因此,本文是基于Structs框架設(shè)計(jì)并實(shí)現(xiàn)了一款甘記訂單管理系統(tǒng),開發(fā)工具:MyEclipse,開發(fā)語(yǔ)言:java,數(shù)據(jù)庫(kù):MySQL,采用B/S結(jié)構(gòu)的web應(yīng)用程序(Browser/server)實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能。設(shè)計(jì)過(guò)程采用MVC設(shè)計(jì)模式,struts框架實(shí)現(xiàn)表示層,hibernate實(shí)現(xiàn)持久層,spring向上集成struts的MVC框架,向下集成ORM框架,IOC(inversionofcontrol)容器用于管理各個(gè)組件之間的依賴關(guān)系。最終實(shí)現(xiàn)了訂單管理系統(tǒng)的登錄模塊、前臺(tái)客戶端模塊和后臺(tái)管理端模型的各項(xiàng)功能,并能過(guò)系統(tǒng)測(cè)試驗(yàn)證了系統(tǒng)可以穩(wěn)定運(yùn)行,系統(tǒng)各項(xiàng)功能均可正常執(zhí)行,本文設(shè)計(jì)的訂單管理系統(tǒng)具有一定的實(shí)用價(jià)值。關(guān)鍵詞:訂單管理系統(tǒng),Structs框架,MVC設(shè)計(jì)模式,JAVA開發(fā)
DesignandImplementationofaStrutsFrame-BasedGanjiordermanagementSystemAbstract:\o"清空"Scientificandefficientmanagementoforderinformationisveryimportantforbusinessactivities.procurement.Therefore,thispaperdesignsandimplementsastructuredprocurementmanagementsystem,MyEclipseisusedasadevelopmenttool,Javaisusedasadevelopmentlanguage,MySQLisusedasadatabase,andvarioussystemfunctionsareimplementedbyaWWWapplicationprogrambasedonthestructureB/S(browser/server).Inthedesignprocess,theMVCmodelisadopted,inwhichthestructuralframesareusedtoimplementthepresentationlayer,thehibernationisusedtoimplementthesustainabilitylayer,thespringintegratestheMVCsupportframeupandtheORMframedown,andusestheIOC(InversionOfControl)containertomanagetheinterdependencebetweenthedifferentcomponents.Finally,thefunctionsoftheloginmodule,thefrontclientmoduleandtheordermanagementbackgroundmoduleareimplemented.目錄TOC\o"1-3"\h\u第1章緒論 第1章緒論1.1系統(tǒng)開發(fā)背景隨著經(jīng)濟(jì)全球化的飛速發(fā)展,公司的業(yè)務(wù)量的提升,尤其是電商行業(yè),每天都會(huì)產(chǎn)生大量的訂單信息,通過(guò)人工地管理訂單信息,顯得十分繁瑣,而且容易出錯(cuò),因此基于計(jì)算技術(shù)、信息技術(shù)開發(fā)一款智能化,自動(dòng)化的訂單管理系統(tǒng),提高企業(yè)訂單管理的科學(xué)化、高效化,具有十分重要的意義??蛻粲唵喂芾硐到y(tǒng)的主要功能包括了訂單信息、商品信息、用戶信息以及對(duì)業(yè)務(wù)的規(guī)范管理,通過(guò)構(gòu)建系統(tǒng),可以獲得更加標(biāo)準(zhǔn)化和系統(tǒng)的客戶訂單管理和管理以及更便捷的查詢方法。同時(shí),客戶訂單管理系統(tǒng)對(duì)于客戶訂單管理的現(xiàn)代化和信息化必不可少[1]。近年來(lái),隨著客戶訂單的大小逐漸增加和客戶訂單的數(shù)量增加,程序員手動(dòng)寫入數(shù)據(jù)無(wú)法處理如此龐大的訂單交易數(shù)據(jù),然而通過(guò)訂單管理系統(tǒng)可以解決這一問題。由此可以發(fā)現(xiàn),客戶訂單管理系統(tǒng)旨在管理客戶訂單管理,以便可以在最短的時(shí)間內(nèi)有效,準(zhǔn)確地完成客戶訂單管理過(guò)程[2]?;谏鲜鲋R(shí),我收集了相關(guān)的材料和數(shù)據(jù),參考了相關(guān)的文獻(xiàn)和技術(shù)參數(shù),調(diào)查了客戶訂單管理的實(shí)際需求,發(fā)現(xiàn)目前正在使用以下管理方法存在很多弊端:(1)類型很多,很難存儲(chǔ)數(shù)據(jù)。填充數(shù)據(jù)和填充內(nèi)容非常復(fù)雜,并且會(huì)迭代大量數(shù)據(jù)。(2)歸檔并不容易,并且有很多信息和文檔。這需要很多文書工作。由于上述原因,客戶訂單管理迫切需要軟件來(lái)代替手動(dòng)任務(wù)來(lái)管理數(shù)據(jù)[3]。隨著計(jì)算機(jī)計(jì)算機(jī)技術(shù)、應(yīng)用軟件的開發(fā)越來(lái)越成熟,通過(guò)訂單管理系統(tǒng),不僅為企業(yè)和其用戶建立一個(gè)良好的下單平臺(tái),而且管理員可以在需要解決特定問題時(shí)查詢信息材料,了解整個(gè)客戶訂單管理系統(tǒng)的動(dòng)態(tài),能夠更加有效地完成任務(wù)。1.2系統(tǒng)開發(fā)意義利用先進(jìn)的計(jì)算機(jī)技術(shù)和軟件技術(shù)的手段進(jìn)行客戶對(duì)訂單設(shè)計(jì)和管理信息系統(tǒng)的設(shè)計(jì)和開發(fā),其目的主要是為了使得客戶對(duì)訂單的管理模式從我們?nèi)斯さ挠涗涋D(zhuǎn)變成我們電子信息系統(tǒng)的管理,為客戶對(duì)訂單設(shè)計(jì)和管理人員培訓(xùn)提供方便的條件。在結(jié)合客戶對(duì)訂單設(shè)計(jì)和管理的實(shí)際工作情況進(jìn)行了調(diào)研之后,結(jié)合手上的材料,進(jìn)行了詳細(xì)的客戶需求設(shè)計(jì)和分析,然后目標(biāo)任務(wù)就是進(jìn)一步開發(fā)和設(shè)計(jì)出一套新型的客戶訂單設(shè)計(jì)和管理信息系統(tǒng),并且從中進(jìn)一步領(lǐng)悟訂單管理系統(tǒng)設(shè)計(jì)和開發(fā)的基本思想,還有進(jìn)一步掌握訂單管理系統(tǒng)設(shè)計(jì)和開發(fā)的基本流程和操作方法。隨著客戶對(duì)訂單管理信息系統(tǒng)的不斷完善,手工的記錄已經(jīng)不能幫助客戶解決大量的訂單信息量,并且其效率非常低。由此可見,客戶對(duì)訂單的實(shí)際管理將越來(lái)越多地依賴于客戶訂單信息化的設(shè)計(jì)和管理。所以電子信息系統(tǒng)的開發(fā)將主要圍繞著了解客戶對(duì)訂單設(shè)計(jì)和管理工作的實(shí)際和情況,使之能迅速準(zhǔn)確適應(yīng)我們管理客戶訂單的實(shí)際需要??蛻粲唵喂芾硐到y(tǒng)的實(shí)施的現(xiàn)實(shí)意義:(1)減少客戶訂單管理的工作人員;開發(fā)出一套方便快捷的訂單管理系統(tǒng),可以使所需要工作人員的數(shù)量減少。管理人員可以隨時(shí)更加直觀地瀏覽查看,操作方便。系統(tǒng)改變了以前管理工資需要手工自動(dòng)記錄的那種傳統(tǒng)電腦操作管理方式,電腦操作人員進(jìn)行工資自動(dòng)錄入更加方便快捷。實(shí)現(xiàn)了客戶訂單管理的計(jì)算機(jī)化。1.3本文內(nèi)容介紹本文著重研究了Java編程技術(shù),Structs開發(fā)框架,Web應(yīng)用程序開發(fā)和數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)等相關(guān)理論,提出并設(shè)計(jì)了基于structs框架的甘記訂單管理系統(tǒng),論文分別為六個(gè)章節(jié),分別如下:第一章為緒論,介紹了本文訂單管理系統(tǒng)項(xiàng)目開發(fā)的背景、重要性和內(nèi)容結(jié)構(gòu)。第二章是基本的開發(fā)環(huán)境和相關(guān)技術(shù),MVC設(shè)計(jì)模式,Structs開發(fā)框架,Spring開發(fā)框架,Hibernate開發(fā)框架和MySQL數(shù)據(jù)庫(kù),它們?yōu)楸疚牡捻?xiàng)目開發(fā)提供了原理和技術(shù)支持。第三章為系統(tǒng)設(shè)計(jì),主要包括了功能結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和WEB應(yīng)用程序開發(fā)框架設(shè)計(jì),為本文項(xiàng)目開發(fā)實(shí)現(xiàn)提供了設(shè)計(jì)思路。第四章為系統(tǒng)實(shí)現(xiàn),主要介紹了本文設(shè)計(jì)的甘記訂單管理系統(tǒng)的工程目錄、登錄模塊實(shí)現(xiàn)、后臺(tái)管理端模塊實(shí)現(xiàn)和前臺(tái)客戶端模塊的實(shí)現(xiàn),展示了本文系統(tǒng)各項(xiàng)功能的實(shí)現(xiàn)效果。第五章通過(guò)遵循使用黑匣子測(cè)試方法進(jìn)行的系統(tǒng)測(cè)試,測(cè)試用例設(shè)計(jì)和測(cè)試用例的步驟來(lái)驗(yàn)證本白皮書中開發(fā)的漢字訂單管理系統(tǒng)的模塊和功能。第六章為結(jié)束語(yǔ),對(duì)本文項(xiàng)目的開發(fā)過(guò)程進(jìn)和地總結(jié),以及對(duì)項(xiàng)目的不中和功能完善進(jìn)行了展望。
第2章基本開發(fā)環(huán)境和相關(guān)技術(shù)2.1MVC設(shè)計(jì)模式MVC框架是軟件工程中的軟件結(jié)構(gòu)模式的一種。它把系統(tǒng)分成了三個(gè)部分,第一部分是模型層,第二部分是視圖層,第三部分是控制器層[4]。視圖層是用戶可以看到并直接與之交互的操作界面,它是程序的外殼。不同的視圖通過(guò)不同的顯示反映模型數(shù)據(jù)和狀態(tài)信息,MVC設(shè)計(jì)模式的結(jié)構(gòu)如圖2-1所示。圖2-1MVC設(shè)計(jì)模式結(jié)構(gòu)模型層負(fù)責(zé)需要操作的數(shù)據(jù)或信息。它由應(yīng)用程序的核心數(shù)據(jù),邏輯關(guān)系和計(jì)算功能組成。并封裝數(shù)據(jù),提供處理問題的操作過(guò)程??刂破鲗佑糜诮邮沼脩糨斎氩⑼ㄟ^(guò)調(diào)用模型和視圖來(lái)完成用戶需求。它是由時(shí)間觸發(fā)的。控制器使用操作平臺(tái)的界面來(lái)獲取事件??刂破魍ㄟ^(guò)事件處理程序處理輸入事件,并為每個(gè)輸入事件提供操作服務(wù)。2.2Structs開發(fā)框架Struts這個(gè)開發(fā)的框架很容易地實(shí)現(xiàn)了視圖、模型和控制器的MVC設(shè)計(jì)模式。這個(gè)開發(fā)的框架也被認(rèn)為是最早和實(shí)際上使用最廣泛的一個(gè)MVC開發(fā)框架[5]。Struts開發(fā)框架的其中一個(gè)核心處理技術(shù)是基于靈活的視圖和控制層,如視圖的Javaservlet和表示層的Javabeans。Struts由一組類(視圖組件)、Servlet和一組帶有jsp標(biāo)記的數(shù)據(jù)庫(kù)組成。Struts這個(gè)開發(fā)框架的訪問處理機(jī)制主要分為視圖、控制器和視圖模型三個(gè)組成部分。Struts有自己的視圖和控制器,并在視圖上集成了其他的技術(shù)來(lái)很容易地實(shí)現(xiàn)自己的模型控制層和自己的視圖數(shù)據(jù)層。在模型層,Struts開發(fā)框架可以很容易地與視圖和數(shù)據(jù)層的訪問處理技術(shù)(其中包括視圖層的jdbc和wevejb)和視圖對(duì)象的關(guān)系框架橋相結(jié)合。在視圖和數(shù)據(jù)層,Struts開發(fā)框架結(jié)合了層的webejb和表示層的xsl和層的jsp數(shù)據(jù)訪問技術(shù)。Structs開發(fā)框架的結(jié)構(gòu):圖2-2Structs開發(fā)框架結(jié)構(gòu)在Structs開發(fā)框架中,視圖層由一系列JSP文檔組成,這些文檔沒有業(yè)務(wù)邏輯代碼。我們可以從標(biāo)簽訪問模型信息。Struts框架中的ActionFormBean是視圖的一部分,封裝表單信息并在視圖和控制器之間發(fā)送。在Structs開發(fā)框架中,控制器是由ActionServlet(Struts框架中的中央控制器)和Action類實(shí)現(xiàn)。ActionServlet根據(jù)配置文件struts-config.xml處理請(qǐng)求并傳輸?shù)较鄳?yīng)的Action組件。動(dòng)作是用戶請(qǐng)求和業(yè)務(wù)邏輯之間的適配器,負(fù)責(zé)方法,調(diào)用模型和更新模型狀態(tài)之間的明顯指示,并幫助控制應(yīng)用程序過(guò)程。在Structs開發(fā)框架里面,這個(gè)模型表示應(yīng)用程序的業(yè)務(wù)邏輯和狀態(tài),負(fù)責(zé)更新和數(shù)據(jù)訪問。不過(guò),Struts框架中沒有用于設(shè)計(jì)的方法或者組件。在現(xiàn)實(shí)的應(yīng)用程序當(dāng)中,這些模型是通過(guò)JavaBean,EJB或Web服務(wù)實(shí)現(xiàn)的。2.3Spring開發(fā)框架Spring是一個(gè)輕量級(jí)的框架,旨在通過(guò)使用分層結(jié)構(gòu)來(lái)解決復(fù)雜的企業(yè)應(yīng)用程序[6]。它是一個(gè)完整的Java企業(yè)應(yīng)用程序平臺(tái),其中包含七個(gè)專門定義的模塊,如圖2-3所示??傮w而言,這些模塊為開發(fā)企業(yè)Web應(yīng)用程序提供了一切。但是開發(fā)人員可以根據(jù)需要選擇將其中一些模塊與其他適當(dāng)?shù)目蚣芤黄鹗褂?,因?yàn)檫@些模塊并不完全相關(guān)。圖2-3Spring開發(fā)框架結(jié)構(gòu)SpringCore模塊是BeanFactory作為其核心組件的Spring框架的最基本部分。BeanFactory基于控制反轉(zhuǎn)(IoC)的特性。它使用依賴注入來(lái)管理組件之間的關(guān)系,而該關(guān)系不再由復(fù)雜的代碼執(zhí)行,從而改善了系統(tǒng)的松散耦合。此外,Spring還支持面向方面的編程(AOP),它將業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(如日志記錄和事務(wù)管理)分開。允許開發(fā)人員關(guān)注業(yè)務(wù)邏輯本身。在Spring框架中,可以輕松地在XML文件中配置組件以形成復(fù)雜的應(yīng)用程序。2.4Hibernate開發(fā)框架Hibernate是一種完全具有基于dao編程語(yǔ)言設(shè)計(jì)模式的輕量級(jí)開源數(shù)據(jù)庫(kù)框架,有利于保留關(guān)系數(shù)據(jù)持久性的基本特點(diǎn),用于在關(guān)系數(shù)據(jù)庫(kù)與對(duì)象之間直接實(shí)現(xiàn)數(shù)據(jù)映射。它以輕量級(jí)的方式封裝了現(xiàn)有的jdbc,從而可以使得Java程序員和用戶可以直接使用面向?qū)ο蟮某志脤泳幊陶Z(yǔ)言設(shè)計(jì)思想模式來(lái)構(gòu)建和操作關(guān)系數(shù)據(jù)庫(kù)。它也是持久層編程語(yǔ)言中的一種有利于實(shí)現(xiàn)映射的技術(shù),與jdbc,ejb,jdo等其他持久層編程語(yǔ)言技術(shù)設(shè)計(jì)思想相比,Hinbernate是一種易于理解和掌握并且更好地符合面向?qū)ο蟮某志脤泳幊陶Z(yǔ)言設(shè)計(jì)思想。Hibernate擁有一種完全面向?qū)ο蟮牟樵冋Z(yǔ)言(HQL)[7]。如圖2-4所示:圖2-4Hibernate開發(fā)框架結(jié)構(gòu)Hibernate通常被廣泛地認(rèn)為應(yīng)用程序是連接Java應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)之間的一個(gè)重要橋梁,由于一個(gè)應(yīng)用程序可以提供持久的關(guān)系數(shù)據(jù)服務(wù),并且它允許應(yīng)用程序開發(fā)者可以使用面向?qū)ο蟮臄?shù)據(jù)庫(kù)方法和工具來(lái)進(jìn)行管理和分析如何處理關(guān)系數(shù)據(jù)庫(kù)。Hibernate不僅很好地支持從處理Java數(shù)據(jù)類型表到關(guān)系數(shù)據(jù)庫(kù)表的查詢和映射(其中包括從處理Java數(shù)據(jù)類型表的映射到處理sql數(shù)據(jù)類型的映射),而且還很好地提供了面向?qū)ο蟮臄?shù)據(jù)庫(kù)進(jìn)行查詢和檢索的機(jī)制,從而大大縮短了用于處理對(duì)象的sql和處理jdbc的應(yīng)用程序開發(fā)時(shí)間。Hibernate需要?jiǎng)?chuàng)建和處理三種類型的文件,以提供Java的主要文件類別和關(guān)系數(shù)據(jù)庫(kù)之間的連接和映射。配置文件hibernate.cfg.xml配置文件用于創(chuàng)建和配置關(guān)系數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,數(shù)據(jù)庫(kù)表之間的連接,數(shù)據(jù)庫(kù)表之間的方言和Hibernate的其他文件屬性。從一個(gè)實(shí)體對(duì)象文件到類別和關(guān)系數(shù)據(jù)庫(kù)表的配置映射由一個(gè)作為Hiorm配置文件的pojo.hbm.xml配置文件執(zhí)行。最后一個(gè)配置文件是為了提供實(shí)體類別和對(duì)象表示的持久類。2.5MySQL數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),在云服務(wù)系統(tǒng)中又被用作軟件即服務(wù)(Software-as-a-Service,SaaS)。MySQL于1995年發(fā)布,現(xiàn)在由OracleCorporation公司提供技術(shù)支持。MySQL是用于托管服務(wù)提供商(例如Rackspace,GoDaddy,Bluehost和WHM等)的最流行的數(shù)據(jù)庫(kù)管理系統(tǒng)。此外,F(xiàn)acebook,Twitter,Yahoo,Wikipedia,YouTube都在使用MySQL。同樣,亞馬遜網(wǎng)站通過(guò)在MySQL的云服務(wù)系統(tǒng)中托管數(shù)據(jù)庫(kù)來(lái)為其客戶提供服務(wù)。MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)在安全性,可靠性,性能和可用性方面具有優(yōu)勢(shì)。市場(chǎng)上有許多由云中的服務(wù)器支持的數(shù)據(jù)庫(kù)管理系統(tǒng),其中某些只能用于特定目的的私有組織中使用。根據(jù)一項(xiàng)調(diào)查,在云上最受歡迎的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL,它具有超過(guò)一千萬(wàn)的安裝,其中最重要的原因就是它具有完全的開源功能,并且可以基于其他軟件進(jìn)行開發(fā),大大降低了開發(fā)成本,MySQL以其優(yōu)越的性能和開源和特點(diǎn)從其他的數(shù)據(jù)庫(kù)管理系統(tǒng)中脫穎而出,越來(lái)越成為許多網(wǎng)站用戶的首選[8]。
第3章系統(tǒng)設(shè)計(jì)3.1系統(tǒng)功能設(shè)計(jì)根據(jù)這個(gè)項(xiàng)目的設(shè)計(jì)目標(biāo)以及開發(fā)需要,設(shè)計(jì)系統(tǒng)是各個(gè)模塊的功能。是系統(tǒng)開發(fā)過(guò)程中一個(gè)重要的流程,本文基于structs框架的甘記訂單管理系統(tǒng)的功能主要包括兩個(gè)方面,一個(gè)是客戶訂單管理系統(tǒng)的前臺(tái)用戶端的功能,一個(gè)是訂單管理系統(tǒng)的后臺(tái)管理端的功能,其中前臺(tái)客戶端的功能結(jié)構(gòu)如圖3-1所示,主要包括了商品信息瀏覽模塊、我要在線下單模塊、我的訂單列表模塊。圖3-1前臺(tái)客戶端功能結(jié)構(gòu)甘記訂單管理系統(tǒng)的后臺(tái)管理端的功能結(jié)構(gòu)如圖3-2所示,主要包括個(gè)人密碼修改功能模塊,注冊(cè)客戶管理功能模塊,產(chǎn)品類別管理功能模塊,產(chǎn)品類別添加功能模塊,產(chǎn)品信息管理功能模塊,產(chǎn)品信息添加功能模塊和訂單信息管理功能模塊。圖3-2后臺(tái)管理端功能結(jié)構(gòu)3.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)是本文開發(fā)的甘記管理系統(tǒng)的主要核心和基本組成部分,數(shù)據(jù)庫(kù)設(shè)計(jì)的質(zhì)量會(huì)直接影響系統(tǒng)的功能實(shí)現(xiàn)和用戶體驗(yàn),數(shù)據(jù)庫(kù)基本上就是一個(gè)系統(tǒng)的主心骨,沒有數(shù)據(jù)庫(kù),就沒有應(yīng)用系統(tǒng)。在系統(tǒng)的開發(fā)過(guò)程中,數(shù)據(jù)庫(kù)是一個(gè)非常重要的部分。本文主要根據(jù)項(xiàng)目開發(fā)需求設(shè)計(jì)了數(shù)據(jù)庫(kù),包括設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)和設(shè)計(jì)數(shù)據(jù)庫(kù)表。3.2.1概念結(jié)構(gòu)的設(shè)計(jì)根據(jù)數(shù)據(jù)需求分析,數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)主要包括了實(shí)體屬性圖,實(shí)體-聯(lián)系圖模型。其中實(shí)體屬性圖主要包括了管理員實(shí)體屬性圖,客戶實(shí)體屬性圖,訂單實(shí)體屬性圖,商品實(shí)體屬性圖,商品類別實(shí)體屬性圖。以下是具體圖例:圖3-3管理員實(shí)體屬性圖圖3-4客戶實(shí)體屬性圖圖3-5訂單實(shí)體屬性圖圖3-6商品實(shí)體屬性圖圖3-7商品類別實(shí)體屬性圖實(shí)體連接圖由三個(gè)組成部分:屬性,實(shí)體和連接。實(shí)體是系統(tǒng)運(yùn)行中所涉及的具體對(duì)象,屬性是對(duì)對(duì)象屬性的具體描述,聯(lián)系是對(duì)象之間的相關(guān)操作。本文甘記訂單管理系統(tǒng)的E-R模型圖的設(shè)計(jì)如圖3-8所示。圖3-8E-R模型圖3.2.2數(shù)據(jù)庫(kù)表設(shè)計(jì)根據(jù)本文甘記訂單管理系統(tǒng)的業(yè)務(wù)需求,對(duì)于數(shù)據(jù)庫(kù)中的表進(jìn)行了設(shè)計(jì)。管理信息表,用于存放管理員的相關(guān)信息;商品類別信息表,用于描述商品類別的基本信息;商品信息表,用于描述商品的基本信息;訂單信息表,用來(lái)描述訂單的基本信息;客戶信息表,用來(lái)描述客戶的基本信息。表3-1管理信息表字段名類型長(zhǎng)度說(shuō)明idInt4管理員編號(hào)(主鍵)namevarchar30用戶名pwdvarchar20用戶密碼表3-2商品類別信息表字段名類型長(zhǎng)度說(shuō)明idInt4編號(hào)(主鍵)namevarchar20名稱jieshaovarchar1000介紹Beizhuvarchar50備注表3-3商品信息表字段名類型長(zhǎng)度說(shuō)明idInt4編號(hào)(主鍵)leib_idInt4類別編號(hào)(外鍵)Mingchengvarchar20名稱Chandivarchar20產(chǎn)地Danweivarchar20單位Guigevarchar20規(guī)格Beizhuvarchar50備注表3-4訂單信息表字段名數(shù)據(jù)類型長(zhǎng)度功能描述idInt4編號(hào)(主鍵)kehu-idInt4客戶編號(hào)(外鍵)Good-idInt4商品編號(hào)(外鍵)PriceMoney8價(jià)錢TimeDatetime8時(shí)間表3-5客戶信息表字段名數(shù)據(jù)類型長(zhǎng)度功能描述idInt4編號(hào)(主鍵)namevarchar20登錄名AgeInt4年齡truenamevarchar8姓名sexvarchar2性別Liveint4居住地Passwordvarchar30密碼Addvarchar20出生地Telvarchar20電話Leixingvarchar20類型3.3WEB應(yīng)用程序開發(fā)框架設(shè)計(jì)本文設(shè)計(jì)的甘記訂單管理系統(tǒng)開發(fā)工具采用的是MyEclipse,開發(fā)語(yǔ)言采用的是JAVA,系統(tǒng)各項(xiàng)功能通過(guò)基于B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器)的WEB應(yīng)用程序?qū)崿F(xiàn)[9],其中Struts框架用于實(shí)現(xiàn)表示層,Hibernate用于持久層,而Spring是系統(tǒng)的核心。Spring向上集成了Struts的MVC框架,向下集成了ORM框架,并使用IOC(InversionofControl,控制反轉(zhuǎn))容器管理各個(gè)組件之間的依賴關(guān)系。這三種技術(shù)的組合開發(fā)模式實(shí)現(xiàn)了應(yīng)用系統(tǒng)的五層結(jié)構(gòu),并構(gòu)建了Web應(yīng)用開發(fā)框架,如圖4-9所示。圖4-9WEB應(yīng)用程序框架結(jié)構(gòu)Struts設(shè)計(jì)框架在本次的微控制器系統(tǒng)開發(fā)測(cè)試過(guò)程設(shè)計(jì)中的主要功能作用在一個(gè)設(shè)計(jì)表示層中它實(shí)現(xiàn)了MVC的兩種設(shè)計(jì)模式。在這個(gè)設(shè)計(jì)表示層,控制器的所有設(shè)計(jì)功能和控制操作都可以是由兩個(gè)控制客戶端使用actionmapping和控制客戶端使用actionservlet來(lái)進(jìn)行設(shè)計(jì)和控制實(shí)現(xiàn)的。例如當(dāng)一個(gè)面對(duì)客戶端向一個(gè)控制器中的actionservlet用戶發(fā)出請(qǐng)求時(shí),actionservlet而當(dāng)請(qǐng)求被用戶接受之后,每個(gè)面向客戶端中的actionmapping將被配置用來(lái)自動(dòng)實(shí)現(xiàn)面向控制器收發(fā)請(qǐng)求與特定面向控制器請(qǐng)求操作之間的相互映射。然后視圖層的轉(zhuǎn)換是由顯示在jsp頁(yè)面的actaglib和視圖來(lái)實(shí)現(xiàn)。組件模型由視圖actionform和視圖由action來(lái)分別實(shí)現(xiàn)。action組件對(duì)象調(diào)用視圖業(yè)務(wù)層提供了邏輯的視圖和模塊接口并將業(yè)務(wù)響應(yīng)信息提交給正確的業(yè)務(wù)視圖和組件。actionform視圖組件和對(duì)象業(yè)務(wù)層實(shí)現(xiàn)了對(duì)于客戶端和表單的良好處理和數(shù)據(jù)庫(kù)的封裝,并在業(yè)務(wù)視圖和組件模型之間相互支持。業(yè)務(wù)層由基于javabean類的業(yè)務(wù)層實(shí)現(xiàn),包括了用于客戶端和操作系統(tǒng)調(diào)用的業(yè)務(wù)層接口。這些業(yè)務(wù)層和javabean還分別封裝了業(yè)務(wù)層和Hibernate的關(guān)系。視圖和業(yè)務(wù)層轉(zhuǎn)換通過(guò)關(guān)系數(shù)據(jù)庫(kù)業(yè)務(wù)層轉(zhuǎn)換和持久層轉(zhuǎn)換實(shí)現(xiàn)與關(guān)系數(shù)據(jù)庫(kù)和資源的交互。持久層由Hibernate關(guān)系實(shí)現(xiàn)。Hibernate將業(yè)務(wù)層的javabean類視圖中的hql視圖和語(yǔ)句轉(zhuǎn)換成業(yè)務(wù)層的sql語(yǔ)句,并通過(guò)使用業(yè)務(wù)層的jdbc驅(qū)動(dòng)程序操作業(yè)務(wù)層的數(shù)據(jù)源,從而使業(yè)務(wù)層完成了添加、刪除、修改等的數(shù)據(jù)轉(zhuǎn)換操作,底層是關(guān)系數(shù)據(jù)庫(kù)。
第4章甘記訂單管理系統(tǒng)實(shí)現(xiàn)本文設(shè)計(jì)的甘記訂單管理系統(tǒng)的工程目錄如圖4-1所示,其中src目錄下是系統(tǒng)相關(guān)業(yè)務(wù)邏輯的代碼實(shí)現(xiàn),WebRoot目錄下是系統(tǒng)相關(guān)功能界面的代碼實(shí)現(xiàn)。圖4-1甘記訂單管理系統(tǒng)工程目錄4.1登錄模塊實(shí)現(xiàn)甘記訂單管理系統(tǒng)的登錄模塊實(shí)現(xiàn)界面如圖4-2所示,通過(guò)登錄身份的下接列表可以選擇是管理員登陸或者用戶登錄,然后正確輸入用戶名和密碼就可以登錄到系統(tǒng)。系統(tǒng)登錄模塊相關(guān)代碼在下面(代碼4-1)圖4-2系統(tǒng)登錄模塊界面代碼4-1系統(tǒng)登錄模塊代碼publicclassloginService{ publicStringlogin(StringuserName,StringuserPw,intuserType) { System.out.println("userType"+userType); try { Thread.sleep(700); }catch(InterruptedExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringresult="no"; if(userType==0)//系統(tǒng)管理員登陸 { Stringsql="select*fromt_adminwhereuserName=?anduserPw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); try { ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdminadmin=newTAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",0); session.setAttribute("admin",admin); } rs.close(); } catch(SQLExceptione) { System.out.println("登錄失??!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==1) { Stringsql="select*fromt_userwheredel='no'andloginname=?andloginpw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } if(mark==true) { Tuseruser=newTuser(); user.setId(rs.getString("id")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setLoginpw(rs.getString("loginpw")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAge(rs.getString("age")); user.setAddress(rs.getString("address")); user.setTel(rs.getString("tel")); user.setEmail(rs.getString("email")); user.setQq(rs.getString("qq")); result="yes"; WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",1); session.setAttribute("user",user); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); } if(userType==2) { } returnresult; }如果是新用戶,可以點(diǎn)擊客戶注冊(cè)進(jìn)行注冊(cè)一個(gè)用戶賬戶,注冊(cè)界面如圖4-3所示,在用戶注冊(cè)界面中填入用戶名,密碼,真實(shí)姓名,性別,年齡,住址,聯(lián)系方式,E-mail和QQ相關(guān)信息后,點(diǎn)擊確定就可以成功注冊(cè)一個(gè)用戶賬戶。用戶注冊(cè)功能主要代碼實(shí)現(xiàn)在下面(代碼4-2)。圖4-3用戶注冊(cè)界面代碼4-2用戶注冊(cè)代碼publicvoiduserReg(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringaddress=req.getParameter("address"); Stringtel=req.getParameter("tel"); Stringemail=req.getParameter("email"); Stringqq=req.getParameter("qq"); Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?,?,?,?,?,?,?)"; Object[]params={id,loginname,loginpw,name,sex,age,address,tel,email,qq,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","注冊(cè)成功");StringtargetURL="/common/add_success.jsp"; dispatch(targetURL,req,res); }4.2后臺(tái)管理端模塊實(shí)現(xiàn)管理員登錄系統(tǒng)后會(huì)進(jìn)入到后臺(tái)管理模塊,如圖4-4所示,功能菜單具有7個(gè)功能模塊:(1)修改個(gè)人密碼功能模塊管理注冊(cè)客戶功能模塊商品類別管理功能模塊商品類別添加功能模塊商品信息管理功能模塊商品信息添加功能模塊訂單信息管理功能模塊PS:另外還顯示當(dāng)前系統(tǒng)時(shí)間,通過(guò)點(diǎn)擊注銷系統(tǒng)按鈕可以退出系統(tǒng)。圖4-4后臺(tái)管理端模塊主界面點(diǎn)擊功能菜單欄中的修改個(gè)人密碼,進(jìn)入修改個(gè)人密碼的界面,管理員可以修改自己的密碼,這里會(huì)顯示當(dāng)前登錄的管理員賬戶名,然后輸入原密碼和新密碼點(diǎn)擊修改按鈕,就可以成功修改管理員賬戶密碼。管理員修改密碼功能實(shí)現(xiàn)代碼在下面(代碼4-3)圖4-5修改個(gè)人密碼界面代碼4-3管理員修改密碼代碼publicStringadminPwEdit(StringuserPwNew){ System.out.println("DDDD"); try { Thread.sleep(700); } catch(InterruptedExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)session.getAttribute("admin"); Stringsql="updatet_adminsetuserPw=?whereuserId=?"; Object[]params={userPwNew,admin.getUserId()}; DBmydb=newDB(); mydb.doPstm(sql,params); return"yes";}我們點(diǎn)擊功能菜單欄里面的客戶注冊(cè)按鈕,就可以進(jìn)入到客戶管理界面,如圖4-6所示,在這里顯示了已經(jīng)成功在該系統(tǒng)中注冊(cè)客戶的信息,包括登錄賬號(hào)、密碼、姓名、性別、年齡、住址、聯(lián)系方式、E-mail和QQ。在操作欄中,管理員可以點(diǎn)擊刪除按鈕來(lái)刪除該注冊(cè)客戶的賬號(hào)(不要亂刪除別人..)。注冊(cè)用戶管理功能相關(guān)代碼在下面.(代碼4-4)圖4-6注冊(cè)客戶管理界面代碼4-4注冊(cè)客戶管理功能代碼publicvoiduserMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListuserList=newArrayList(); Stringsql="select*fromt_userwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tuseruser=newTuser(); user.setId(rs.getString("id")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setLoginpw(rs.getString("loginpw")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAge(rs.getString("age")); user.setAddress(rs.getString("address")); user.setTel(rs.getString("tel")); user.setEmail(rs.getString("email")); user.setQq(rs.getString("qq")); userList.add(user); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("userList",userList); req.getRequestDispatcher("admin/user/userMana.jsp").forward(req,res); }點(diǎn)擊功能菜單欄里面的商品類別管理按鈕,管理員就可以進(jìn)入到商品類別管理界面,跳轉(zhuǎn)成功后會(huì)顯示系統(tǒng)中的商品類別信息,主要包括了商品的名稱和介紹,在操作欄中點(diǎn)擊刪除按鈕就可以刪除啦。商品類別管理功能實(shí)現(xiàn)代碼在下面(代碼4-5)。圖4-7商品類別管理界面代碼4-5商品類別管理代碼publicvoidcatelogMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListcatelogList=newArrayList(); Stringsql="select*fromt_catelogwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tcatelogcatelog=newTcatelog(); catelog.setId(rs.getInt("id")); catelog.setName(rs.getString("name")); catelog.setJieshao(rs.getString("jieshao")); catelogList.add(catelog); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("catelogList",catelogList); req.getRequestDispatcher("admin/catelog/catelogMana.jsp").forward(req,res); }管理員點(diǎn)擊“產(chǎn)品類別管理”界面中的“添加”按鈕,或在功能菜單欄上單擊“添加產(chǎn)品類別”,進(jìn)入“添加產(chǎn)品類別”界面,輸入商品的名稱和介紹,然后點(diǎn)擊“提交”按鈕,就會(huì)添加成功了。商品類別添加功能代碼在下面(代碼4-6)。圖4-8商品類別添加界面代碼4-6商品類別添加功能代碼publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={name,jieshao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }在功能菜單中點(diǎn)擊商品信息管理按鈕,就可以進(jìn)入到商品信息管理界面,界面會(huì)顯示商品的相關(guān)信息,主要包括類別、名稱、產(chǎn)地、單位、規(guī)格、備注,在操作欄中,我們管理員也可以通過(guò)點(diǎn)擊刪除按鈕刪除相應(yīng)的商品。商品信息管理功能實(shí)現(xiàn)代碼在下面(代碼4-7)。圖4-9商品信息管理界面代碼4-7商品信息管理功能代碼publicvoidgoodsMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListgoodsList=newArrayList(); Stringsql="select*fromt_goodswheredel='no'orderbycatelog_id"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgoodsgoods=newTgoods(); goods.setId(rs.getInt("id")); goods.setCatelog_id(rs.getInt("catelog_id")); goods.setName(rs.getString("name")); goods.setBeizhu(rs.getString("beizhu")); goods.setChandi(rs.getString("chandi")); goods.setDanwei(rs.getString("danwei")); goods.setGuige(rs.getString("guige")); goods.setCatelog_name(liuService.getCatelogName(rs.getInt("catelog_id"))); goodsList.add(goods); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("goodsList",goodsList); req.getRequestDispatcher("admin/goods/goodsMana.jsp").forward(req,res); } 單擊商品信息管理按鈕,就會(huì)進(jìn)入“添加產(chǎn)品信息”界面。然后管理員選擇要添加到類別的商品類別,然后輸入商品的名稱,產(chǎn)地,單位,規(guī)格,備注等信息后,點(diǎn)擊“提交”按鈕,商品的信息就會(huì)成功添加到系統(tǒng)啦,填錯(cuò)了可按重置按鈕重置。商品信息添加代碼功能實(shí)現(xiàn)在下面(代碼4-8)。圖4-10商品信息添加界面代碼4-8商品信息添加功能代碼publicvoidgoodsAdd(HttpServletRequestreq,HttpServletResponseres) { intcatelog_id=Integer.parseInt(req.getParameter("catelog_id")); Stringname=req.getParameter("name"); Stringchandi=req.getParameter("chandi"); Stringdanwei=req.getParameter("danwei"); Stringguige=req.getParameter("guige"); Stringbeizhu=req.getParameter("beizhu"); Stringdel="no"; Stringsql="insertintot_goodsvalues(?,?,?,?,?,?,?)"; Object[]params={catelog_id,name,chandi,danwei,guige,beizhu,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","goods?type=goodsMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res);管理員在功能菜單里面點(diǎn)擊訂單信息管理按鈕,就可以進(jìn)入訂單信息管理界面,然后會(huì)顯示訂單相關(guān)信息,包括訂單編號(hào),訂單時(shí)間,備注信息和訂單狀態(tài),在狀態(tài)欄中可以看到訂單的狀態(tài),在客戶欄中點(diǎn)擊客戶信息就可以查看訂單的客戶的信息,在訂單明細(xì)欄中點(diǎn)擊訂單明細(xì)可以查看訂單明細(xì),點(diǎn)擊刪除按鈕可以刪除相關(guān)訂單。訂單信息管理代碼功能實(shí)現(xiàn)在下面(代碼4-9)圖4-11訂單信息管理界面代碼4-9訂單信息管理功能代碼publicvoidorderMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListorderList=newArrayList(); Stringsql="select*fromt_orderwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) {Torderorder=newTorder(); order.setId(rs.getInt("id")); order.setDanjuhao(rs.getString("danjuhao")); order.setShijian(rs.getString("shijian")); order.setBeizhu(rs.getString("beizhu")); order.setUser_id(rs.getString("user_id")); order.setZhuangtai(rs.getString("zhuangtai")); order.setDel(rs.getString("del")); orderList.add(order); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("orderList",orderList); req.getRequestDispatcher("admin/order/orderMana.jsp").forward(req,res); }4.3前臺(tái)客戶端模塊實(shí)現(xiàn)客戶登錄系統(tǒng)后可以進(jìn)入前臺(tái)客戶端界面,在功能菜單中有三個(gè)功能模塊:商品信息瀏覽功能模塊我要在線下單功能模塊我的訂單列表功能模塊PS:在界面上方還是會(huì)顯示你登錄成功后的客戶名還有當(dāng)前的系統(tǒng)時(shí)間,點(diǎn)擊注銷系統(tǒng)可以退出登錄。圖4-12前臺(tái)客戶端主界面客戶在功能菜單中點(diǎn)擊商品信息瀏覽按鈕,會(huì)進(jìn)入到商品的展示界面,在這里你可以看到商品的類別、商品名稱、產(chǎn)地、單位、規(guī)格還有備注信息。商品信息瀏覽代碼功能實(shí)現(xiàn)在下面(代碼4-10)圖4-13商品信息瀏覽界面代碼4-10商品信息瀏覽功能代碼publicvoidgoodsAll(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListgoodsList=newArrayList(); Stringsql="select*fromt_goodswheredel='no'orderbycatelog_id"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgoodsgoods=newTgoods(); goods.setId(rs.getInt("id")); goods.setCatelog_id(rs.getInt("catelog_id")); goods.setName(rs.getString("name")); goods.setBeizhu(rs.getString("beizhu")); goods.setChandi(rs.getString("chandi")); goods.setDanwei(rs.getString("danwei")); goods.setGuige(rs.getString("guige")); goods.setCatelog_name(liuService.getCatelogName(rs.getInt("catelog_id"))); goodsList.add(goods); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("goodsList",goodsList); req.getRequestDispatcher("auser/goods/goodsAll.jsp").forward(req,res); }在功能菜單中點(diǎn)擊我要在線下單按鈕,就會(huì)進(jìn)入下單界面,系統(tǒng)自動(dòng)生成了訂單編號(hào)和訂單時(shí)間,用戶輸入備注信息后,點(diǎn)擊提交,就會(huì)向系統(tǒng)成功提交訂單。用戶下單代碼功能實(shí)現(xiàn)在下面(代碼4-11)。圖4-14在線下單界面代碼4-11在線下單功能代碼publicvoidorderAddMy(HttpServletRequestreq,HttpServletResponseres) { intid=0; Stringdanjuhao=req.getParameter("danjuhao"); Stringshijian=req.getParameter("shijian"); Stringbeizhu=req.getParameter("beizhu"); Stringuser_id=req.getParameter("user_id"); Stringzhuangtai="審核中"; Stringdel="no"; Stringsql="insertintot_ordervalues(?,?,?,?,?,?)"; Object[]params={danjuhao,shijian,beizhu,user_id,zhuangtai,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功");StringtargetURL="/common/add_success.jsp"; dispatch(targetURL,req,res); }在功能菜單中點(diǎn)擊我的訂單列表按鈕,可以進(jìn)入訂單列表界面,如圖4-15所示,在我的訂單列表中,顯示了訂單的訂單編號(hào),訂單時(shí)間,備注和狀態(tài),在訂單明細(xì)欄中點(diǎn)擊訂單明細(xì),可以查看訂單詳情。如圖4-16所示,顯示了訂單中商品的名稱、數(shù)量、備注,并且在操作欄中點(diǎn)擊刪除按鈕可以從訂單中刪除相應(yīng)的商品。在訂單明細(xì)欄中點(diǎn)擊添加訂單明細(xì),可以向訂單中繼續(xù)添加商品,如圖4-17所示,選擇分類和商品,輸入數(shù)量和備注,就可以向訂單中添加商品。訂單明細(xì)代碼功能實(shí)現(xiàn)在下面(代碼4-12)。圖4-15我的訂單列表界面圖4-16訂單明細(xì)圖4-17添加訂單明細(xì)代碼4-12訂單明細(xì)管理代碼publicvoidorderMingxiAdd(HttpServletRequestreq,HttpServletResponseres) { intorder_id=Integer.parseInt(req.getParameter("order_id")); intgoods_id=Integer.parseInt(req.getParameter("goods_id")); intshuliang=Integer.parseInt(req.getParameter("shuliang")); Stringbeizhu=req.getParameter("beizhu"); Stringsql="insertintot_orderMingxivalues(?,?,?,?)"; Object[]params={order_id,goods_id,shuliang,beizhu}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); } publicvoidorderMingxiMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { intorder_id=Integer.parseInt(req.getParameter("order_id")); ListorderMingxiList=newArrayList(); Stringsql="select*fromt_orderMingxiwhereorder_id="+order_id; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TorderMingxiorderMingxi=newTorderMingxi(); orderMingxi.setId(rs.getInt("id")); orderMingxi.setorder_id(rs.getInt("order_id")); orderMingxi.setGoods_id(rs.getInt("goods_id")); orderMingxi.setShuliang(rs.getInt("shuliang")); orderMingxi.setBeizhu(rs.getString("beizhu")); orderMingxi.setGoods_name(liuService.getGoodsName(rs.getInt("goods_id"))); orderMingxiList.add(orderMingxi); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); System.out.println(orderMingxiList.size()); req.setAttribute("orderMingxiList",orderMingxiList); req.setAttribute("order_id",order_id); req.getRequestDispatcher("admin/order/orderMingxiMana.jsp").forward(req,res); } publicvoidorderMingxiDel(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringsql="deletefromt_orderMingxiwhereid="+id; Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); }
第5章系統(tǒng)測(cè)試5.1系統(tǒng)測(cè)試用例在系統(tǒng)測(cè)試中,通過(guò)測(cè)試用例來(lái)驗(yàn)證系統(tǒng)的各個(gè)功能,是一種廣泛運(yùn)用的系統(tǒng)測(cè)試方案,測(cè)試用例主要涉及到了測(cè)試項(xiàng)目名稱、功能模塊、編寫人、系統(tǒng)版本、預(yù)制條件和功能特性等信息,每一條測(cè)試用例包括了用例編號(hào)、用例名稱、測(cè)試步驟和預(yù)期結(jié)果[10-11]。根據(jù)本文設(shè)計(jì)的甘記訂單管理系統(tǒng)的功能需求,組合運(yùn)用多種黑盒測(cè)試方法,詳細(xì)設(shè)計(jì)并進(jìn)行了登錄模塊(表5-1)、后臺(tái)管理端模塊(表5-2)、前臺(tái)客戶端理模塊(表5-3)的測(cè)試用例。表5-1登錄模塊測(cè)試用例項(xiàng)目名稱:甘記訂單管理系統(tǒng)功能模塊:登錄模塊編寫人:潘先生系統(tǒng)版本:不用更新了預(yù)制條件:進(jìn)入系統(tǒng)登錄界面功能特性:驗(yàn)證系統(tǒng)登錄模塊的各個(gè)功能用例編號(hào)用例名稱測(cè)試步驟預(yù)期結(jié)果1管理員登錄1、輸入管理員賬號(hào)2、輸入管理員賬號(hào)密碼3、選擇管理員身份4、點(diǎn)擊登錄成功登錄到后臺(tái)管理端2用戶登錄1、輸入用戶賬號(hào)2、輸入用戶賬號(hào)密碼3、選擇用戶身份4、點(diǎn)擊登錄成功登錄到前臺(tái)客戶端3用戶注冊(cè)1、點(diǎn)擊客戶注冊(cè)2、輸入注冊(cè)信息3、點(diǎn)擊確定正確注冊(cè)用戶賬戶表5-2后臺(tái)管理端模塊測(cè)試用例項(xiàng)目名稱:甘記訂單管理系統(tǒng)功能模塊:管理端模塊編寫人:系統(tǒng)版本:預(yù)制條件:登錄后臺(tái)管理端功能特性:驗(yàn)證系統(tǒng)管理端模塊的各個(gè)功能用例編號(hào)用例名稱測(cè)試步驟預(yù)期結(jié)果1修改個(gè)人密碼1、點(diǎn)擊修改個(gè)人密碼2、輸入原密碼3、輸入新密碼4、點(diǎn)擊修改成功修改密碼2刪除注冊(cè)客戶1、點(diǎn)擊注冊(cè)客戶管理2、在操作欄中點(diǎn)擊刪除3、在彈出的對(duì)話框中點(diǎn)擊確定成功刪除注冊(cè)客戶賬號(hào)3刪除商品類別1、點(diǎn)擊商品類別管理2、點(diǎn)擊刪除3、在彈出的對(duì)話框中點(diǎn)擊確定成功刪除商品類別4添加商品類別1、點(diǎn)擊商品類別添加2、輸入商品類別名稱3、輸入介紹4、點(diǎn)擊提交成功添加商品類別5刪除商品信息1、點(diǎn)擊商品信息管理2、點(diǎn)擊刪除3、在彈出的對(duì)話框中點(diǎn)擊確定成功刪除商品信息6添加商品信息1、點(diǎn)擊商品信息添加2、輸入商品信息3、點(diǎn)擊提交成功添加商品信息7受理訂單1、點(diǎn)擊訂單信息管理2、在狀態(tài)欄中點(diǎn)擊受理訂單成功受理訂單8查看訂單明細(xì)1、點(diǎn)擊訂單信息管理2、在點(diǎn)擊訂單明細(xì)顯示訂單詳細(xì)信息9刪除訂單1、點(diǎn)擊訂單信息管理2、點(diǎn)擊刪除3、在彈出的對(duì)話框中點(diǎn)擊確定成功刪除訂單表5-3前臺(tái)客戶端模塊測(cè)試用例項(xiàng)目名稱:甘記訂單管理系統(tǒng)功能模塊:客戶端模塊編寫人:Pp系統(tǒng)版本:預(yù)制條件:成功登錄前臺(tái)客戶端功能特性:驗(yàn)證系統(tǒng)客戶端模塊的各個(gè)功能用例編號(hào)用例名稱測(cè)試步驟預(yù)期結(jié)果1瀏覽商品信息1、點(diǎn)擊商品信息瀏覽可以在商品信息列表中瀏覽商品2在線下單1、點(diǎn)擊我要在線下單2、輸入備注信息3、點(diǎn)擊提交成功創(chuàng)建訂單3添加商品1、點(diǎn)擊我的訂單列表2、點(diǎn)擊添加訂單明細(xì)3、輸入商品信息4、點(diǎn)擊提交成功將商品添加入訂單4查看訂單明細(xì)1、點(diǎn)擊我的訂單列表2、點(diǎn)擊訂單明細(xì)顯示訂單中詳細(xì)商品5從訂單中刪除商品1、點(diǎn)擊我的訂單列表2、點(diǎn)擊訂單明細(xì)3、點(diǎn)擊刪除4、在彈出的對(duì)話框中點(diǎn)擊確定成功將商品從訂單中刪除5.2系統(tǒng)測(cè)試結(jié)果分析按照測(cè)試用例中的測(cè)試步驟,對(duì)本文開發(fā)的甘記訂單管理系統(tǒng)進(jìn)行了測(cè)試,系統(tǒng)運(yùn)行結(jié)果均與預(yù)期結(jié)果一致,表明該系統(tǒng)整體運(yùn)行穩(wěn)定,各個(gè)模塊的功能可以按照設(shè)計(jì)需求實(shí)現(xiàn),系統(tǒng)可以滿足商家訂單管理的要求。
第6章結(jié)束語(yǔ)6.1論文總結(jié)本文項(xiàng)目基于Structs框架的甘記訂單管理系統(tǒng)在設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中遇到了不少的技術(shù)難題,在我們廣大松田厲害的同學(xué)們熱心幫助下,在指導(dǎo)老師唐老師的耐心輔導(dǎo)下,通過(guò)與他們進(jìn)行學(xué)習(xí)和交流,不僅解決了困難,完成了項(xiàng)目開發(fā),還學(xué)到了不少的知識(shí)和技能,在此對(duì)項(xiàng)目的開發(fā)過(guò)程進(jìn)行一次總結(jié)。首先從訂單管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)目的出發(fā),先論述了項(xiàng)目開發(fā)的背景和意義,然后介紹了系統(tǒng)開發(fā)的環(huán)境和相關(guān)技術(shù),(MVC設(shè)計(jì)模式、structs開發(fā)框架,spring開發(fā)框架,hibernate開發(fā)框架,MySQL數(shù)據(jù)庫(kù),)為本文項(xiàng)目開發(fā)提供理論基礎(chǔ)和技術(shù)支持;接著進(jìn)行了項(xiàng)目的設(shè)計(jì)與實(shí)現(xiàn),設(shè)計(jì)方面包括了功能結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和WEB應(yīng)用程序開發(fā)框架設(shè)計(jì),為本文項(xiàng)目開發(fā)實(shí)現(xiàn)提供了設(shè)計(jì)思路,實(shí)現(xiàn)方面通過(guò)工程目錄、登錄模塊實(shí)現(xiàn)、后臺(tái)管理端模塊實(shí)現(xiàn)和前臺(tái)客戶端模塊的實(shí)現(xiàn),展示了本文系統(tǒng)各項(xiàng)功能的實(shí)現(xiàn)效果;最后對(duì)系統(tǒng)進(jìn)行了測(cè)試,采用了黑盒測(cè)試方法,設(shè)計(jì)了測(cè)試用例,并按照測(cè)試用例中的測(cè)試步驟驗(yàn)證了本文開發(fā)的甘記訂單管理系統(tǒng)的各個(gè)模塊和功能。通過(guò)實(shí)踐完成本文甘記訂單管理系統(tǒng)的開發(fā),有了很大的收獲和提高:1、對(duì)項(xiàng)目開發(fā)流程更加清晰,認(rèn)識(shí)更加深刻。2、提高了編程能力,和基于Java開發(fā)的技術(shù)水平。3、提高了在開發(fā)過(guò)程分析問題、解決問題的能力。4、寫這篇論文會(huì)讓我懷念在松田的日子,出來(lái)社會(huì)要比在學(xué)校辛苦得多,承受的壓力也會(huì)比身為學(xué)生時(shí)候大得多??傊?,為今后在工作崗位上從事JAVA開發(fā)和軟件設(shè)計(jì)累積了經(jīng)驗(yàn),打下了堅(jiān)實(shí)的專業(yè)知識(shí)基礎(chǔ),讓我對(duì)編程工作,有了更大的信心。6.2系統(tǒng)展望本文項(xiàng)目所設(shè)計(jì)的甘記訂單管理系統(tǒng)具有操作簡(jiǎn)單、部署方便、易于維護(hù)等特點(diǎn),還有以下的優(yōu)點(diǎn):1、在該訂單管理系統(tǒng)使用過(guò)程中,會(huì)生成大量的商品交易和銷售數(shù)據(jù),因此,可以通過(guò)大數(shù)據(jù)分析,對(duì)訂單數(shù)據(jù)進(jìn)一步分析,為經(jīng)者提供更加科學(xué)合理的銷售建議,提高營(yíng)業(yè)效益。2、增加和設(shè)計(jì)在線交易模塊,使用戶在下單的同時(shí)可以進(jìn)行付款,簡(jiǎn)化交易流程,提高服務(wù)質(zhì)量。對(duì)于本文設(shè)計(jì)的甘記訂單管理系統(tǒng)其他方面的不足,還讓各位老師批評(píng)指正,不要批太狠
參考文獻(xiàn)張文豪.訂單管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2019顏亞軍,仲梁維.基于訂單數(shù)據(jù)分析的訂單管理系統(tǒng)[J].中國(guó)水運(yùn)(下半月),2018,18(12):53-55周夢(mèng)姝,楊杏,王小剛,殷振華.領(lǐng)域模型在訂單管理系統(tǒng)開發(fā)中的應(yīng)用研究[J].電子技術(shù)與軟件工程,2016(01):65-66曹重陽(yáng).MVC設(shè)計(jì)模式下的網(wǎng)絡(luò)購(gòu)物系統(tǒng)[J].計(jì)算機(jī)產(chǎn)品與流通,2018(04):154孫亞志.淺談Javaweb技術(shù)structs2框架的MVC模式[J].數(shù)字技術(shù)與應(yīng)用,2013(05):208牟舜禹.基于Spring框架的客服系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2019向大芳.基于Hibernate框架數(shù)據(jù)持久化的設(shè)計(jì)與實(shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào),2019,16(28):135-139鄭智方,魏愷樂,李彬,謝易壯.MySQL得到廣泛使用的原因以及它的嵌入應(yīng)用[J].科技風(fēng),2020(05):114冷波.基于B/SWeb架構(gòu)組態(tài)監(jiān)控平臺(tái)的應(yīng)用[J].自動(dòng)化應(yīng)用,2019(09):72-74闞丹丹.軟件測(cè)試流程綜述[J].電腦知識(shí)與技術(shù),2015,11(03):94-96王艷青,于海洋.計(jì)算機(jī)軟件測(cè)試技術(shù)綜述[J].電子技術(shù)與軟件工程,2017(22):47-48
致謝 用小學(xué)寫作文的開頭來(lái)寫吧。光陰似箭,日月如梭,我專插本考上在松田之后,時(shí)間總共有一年多了,我很慶幸兩年前的自己選擇了廣州大學(xué)松田,在這快有兩年時(shí)間里,我認(rèn)識(shí)了很多同樣是專插本考上了的同學(xué)。學(xué)校的老師也非常好。在學(xué)院老師們的諄諄教誨下,在同學(xué)們的互相幫助下,我也成長(zhǎng)了很多。 首先要感謝的是我本次畢業(yè)論文的指導(dǎo)老師,唐老師在教學(xué)和研究上一絲不茍,在畢業(yè)設(shè)計(jì)的完成過(guò)程中也給予了我很大的幫助,本來(lái)我由于自己的事情在畢業(yè)論文上面很拖沓,唐老師不但沒有覺得我是no作nodie,還特地延遲幾天讓我把論文寫好,真的非常感謝。 此外,還要感謝輔導(dǎo)員梁導(dǎo)。有一天晚上凌晨?jī)牲c(diǎn)多,我真的壓力很大,忍不住打電話給梁導(dǎo)說(shuō)出自己所面臨的問題。梁導(dǎo)醒的好快,還一直安慰我。幫我和指導(dǎo)老師溝通。真的很慶幸能遇到這么好的輔導(dǎo)員,就像一個(gè)大姐姐一樣照顧我,之后也在微信問我論文寫得怎么樣,有沒有什么遇到技術(shù)性的問題啊,很好,謝謝你哦梁導(dǎo)。 最后要感謝我的爸爸媽媽,感謝他們?yōu)槲姨峁┝肆己玫奈镔|(zhì)保障,讓我可以在學(xué)校安心的學(xué)習(xí),這也是激勵(lì)我認(rèn)真學(xué)習(xí)的動(dòng)力。匆匆兩年,感謝在這段時(shí)間里所有幫助過(guò)我的老師和同學(xué),讓我擁有了一個(gè)美好的大學(xué)生活,謝謝你們!
捷鍵與一些電腦小技巧HYPERLINKwinkey+d:
這是高手最常用的第一快捷組合鍵。這個(gè)快捷鍵組合可以將桌面上的所有窗口瞬間最小化,無(wú)論是聊天的窗口還是游戲的窗口……只要再次按下這個(gè)組合鍵,剛才的所有窗口都回來(lái)了,而且激活的也正是你最小化之前在使用的窗口!
--這個(gè)就是winkeywinkey+f:
不用再去移動(dòng)鼠標(biāo)點(diǎn)“開始→搜索→文件和文件夾”了,在任何狀態(tài)下,只要一按winkey+f就會(huì)彈出搜索窗口。
winkey+r:
在我們的文章中,你經(jīng)常會(huì)看到這樣的操作提示:“點(diǎn)擊‘開始→運(yùn)行’,打開‘運(yùn)行’對(duì)話框……”。其實(shí),還有一個(gè)更簡(jiǎn)單的辦法,就是按winkey+r!
alt+tab:
如果打開的窗口太多,這個(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 低碳生活垃圾分選技術(shù)方案
- 老年人康復(fù)服務(wù)評(píng)估制度
- 后期制作崗位年終總結(jié)
- 市政工程瀝青路面施工方案
- 油茶籽分銷協(xié)議合同
- 認(rèn)證工程師季度工作計(jì)劃
- 邊坡整治建設(shè)項(xiàng)目可行性研究報(bào)告
- 《第三節(jié) 產(chǎn)業(yè)轉(zhuǎn)移》(同步訓(xùn)練)高中地理選擇性必修2-人教版-2024-2025學(xué)年
- 養(yǎng)老院服務(wù)質(zhì)量監(jiān)測(cè)與考核方案
- 托兒所跌倒、墜床安全防護(hù)制度
- 法檢商品目錄
- 中國(guó)恒大集團(tuán)籌資狀況分析
- 消防火災(zāi)自動(dòng)報(bào)警主機(jī)更換(增加)施工方案
- 《加盟申請(qǐng)表》word版
- 鋼絲繩的規(guī)格和意義
- profibus現(xiàn)場(chǎng)總線故障診斷與排除
- 高考數(shù)學(xué)立體幾何中的翻折、軌跡及最值(范圍)問題
- 大學(xué)生生涯決策平衡單樣表
- 膠凝砂礫石施工方案
- 小學(xué)德育課程校本教材
- 金光修持法(含咒訣指印、步驟、利益說(shuō)明)
評(píng)論
0/150
提交評(píng)論