


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、HUNAN UNIVERSITY OF TECHNOLOGY題目名稱 學(xué)院(部) 專業(yè)學(xué)生姓名 班級指導(dǎo)教師姓名(2016 屆)本科畢業(yè)設(shè)計(jì)(論文)資料基于 Web的外賣系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)與通信學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)邵輝計(jì)算機(jī) 1202 學(xué)號:曾志高職稱:副教授最終評定成績湖南工業(yè)大學(xué)教務(wù)處2016 屆本科畢業(yè)設(shè)計(jì)(論文)資料第一部分 畢業(yè)論文HUNAN UNIVERSITY OF TECHNOLOGY(2016 屆)本科畢業(yè)設(shè)計(jì)(論文)資料題目名稱:基于Web的外賣系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院(部):計(jì)算機(jī)與通信學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名:邵輝班級:計(jì)算機(jī)122 學(xué)號:1240810021
2、1指導(dǎo)教師姓名:曾志咼職稱:副教授最終評定成績:2016 年5月湖南工業(yè)大學(xué)本科畢業(yè)論文(設(shè)計(jì))誠信聲明本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì)),題目基于 Web 的外賣系統(tǒng)的 設(shè)計(jì)與實(shí)現(xiàn)是本人在指導(dǎo)教師的指導(dǎo)下,進(jìn)行研究工作所取得的成果。對本文 的研究作出重要貢獻(xiàn)的個(gè)人和集體,均已在文章以明確方式注明。除此之外,本 論文(設(shè)計(jì))不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。本人完 全意識(shí)到本聲明應(yīng)承擔(dān)的責(zé)任。作者簽名:邵輝日 期:2016 年 5 月 20 日摘要隨著外賣訂外賣在高校越來越普與,傳統(tǒng)的電話訂外賣給顧客跟外賣店帶來 不方便,如何使訂外賣更快速,更方便已成為眾多高校學(xué)生關(guān)注的
3、問題了。本外 賣訂外賣管理系統(tǒng)是針對高校外賣店進(jìn)行具體的需求分析,采用OOA (面向?qū)ο?分 析 ) 和 采 用 UML 工 具 輔 助 開 發(fā) 分 析 , 基 于 S2SH (Struts2+Spring+Hibernate)架構(gòu)進(jìn)行設(shè)計(jì)和開發(fā)。論文主要描述外賣訂外賣管理系統(tǒng)的開發(fā)流程,分別從需求分析和系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)與系統(tǒng)實(shí)現(xiàn)這幾 個(gè)階段進(jìn)行描述。關(guān)鍵詞 :WEB ;訂外賣管理系統(tǒng); S2SH ;OOAABSTRACTWith more and more popular in universities order take-out, due to the traditional tele
4、phone reservation for customers to bring inconvenience take-away meal, how to make more quickly, more convenient has become the concern of the students. The take-away meal management system in colleges and universities is the concrete take-away demand analysis, using object-oriented analysis (OOA) a
5、nd using UML tools to assist in the development, using Struts2-Spring-Hibernate framework to design and development. Thesis mainly describes take-away meal management system process, separately from the demand analysis and system design, detailed design and realization of this system are described s
6、everal stages.Key words: WEB; meal management system; S2SH; OOA目錄第1章緒論01.1背景01.2湖南工業(yè)大學(xué)外賣訂外賣行業(yè)實(shí)際情況的分析 01.3外賣訂外賣管理系統(tǒng)的可行性分析與其作用 01.4系統(tǒng)簡介1第2章外賣系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的關(guān)鍵技術(shù) 22.1引言22.2 struts2 技術(shù)介紹22.3 hibernate 技術(shù)介紹42.4 spring 技術(shù)介紹52.5 數(shù)據(jù)源技術(shù)介紹62.6 小結(jié)7第 3 章 系統(tǒng)需求分析83.1 引言83.2 UML83.3 需求分析83.4 系統(tǒng)功能83.5 小結(jié)1 0第 4 章 系統(tǒng)設(shè)計(jì)114.1
7、 引言1 14.2 系統(tǒng)總體結(jié)構(gòu)114.3 系統(tǒng)架構(gòu)方式114.4 建立數(shù)據(jù)庫表134.4.1 系統(tǒng)信息數(shù)據(jù)庫表設(shè)計(jì)144.4.2 映射文件的編寫174.5 詳細(xì)設(shè)計(jì)2 04.5.1 類設(shè)計(jì)204.5.2 外賣訂外賣系統(tǒng)流程分析234.5.3 時(shí)序圖分析244.5.4 系統(tǒng)主要界面設(shè)計(jì)29第 5 章 系統(tǒng)實(shí)現(xiàn)335.1 引言3 35.1 幵發(fā)工具和環(huán)境335.2 環(huán)境搭配335.3編碼實(shí)現(xiàn)345.3.1 DAO層的編寫355.3.2 Service 層的編寫375.3.3 Web層的編寫385.3.4 ajax 的應(yīng)用425.4 小結(jié)4 4結(jié) 論46參考文獻(xiàn)48致 謝49外賣訂餐系統(tǒng)設(shè)計(jì)第1
8、章 緒 論1.1 背景隨著社會(huì)的不斷進(jìn)步和創(chuàng)新,人們的生活方式也發(fā)生了很大的改變,其中外賣和餐飲行業(yè)以每年平均 22% 的速度不斷增長,很快成為了中國國民經(jīng)濟(jì)中的發(fā)展 行業(yè)最快的之一。隨著人們生活水平的不斷提高,在城市中工作人群的步伐也越 來越快 ,有時(shí)候根本沒有時(shí)間自己做飯 ,這樣就促進(jìn)了外賣行業(yè)的發(fā)展 ,在我國大學(xué) 內(nèi)餐飲行業(yè)中的外賣行業(yè)就是發(fā)展最為迅速的一個(gè)行業(yè),在湖南工業(yè)大學(xué)每年都 有幾家新的負(fù)責(zé)外賣的餐廳的的產(chǎn)生。外賣訂外賣也已經(jīng)成為湖南工業(yè)大學(xué)學(xué)生 生活中不可或缺的一部分活動(dòng)了,并且訂外賣的方式也隨著大學(xué)學(xué)生們的要求不 斷提高,不斷的創(chuàng)新化和成熟化。1.2 湖南工業(yè)大學(xué)外賣訂外賣行
9、業(yè)實(shí)際情況的分析學(xué)生們通過打電話給外賣餐廳服務(wù)員來定外賣是湖南工業(yè)大學(xué)當(dāng)前使用人數(shù) 最多的訂外賣方式,其中比較大的外賣店有攸縣大碗菜、祝家莊、水晶鍋等都是 采用電話訂外賣方式,但通過電話訂外賣方式存在不少的缺陷和不足,比如:效 率和時(shí)間的問題、打電話的電話費(fèi)成本問題等等。對當(dāng)前湖南工業(yè)大學(xué)外賣訂外 賣行業(yè)的實(shí)際情況分析如下:外賣訂外賣店鋪很多并且菜單豐富,店鋪之間一直都在競爭。外賣店鋪很多都是服務(wù)員接聽客戶的電話并手動(dòng)記錄下外賣的信息,特別是在放學(xué)期間 ,外賣店鋪訂外賣電話很多時(shí) ,很容易發(fā)生店鋪訂外賣電話打不通的情況。外賣店鋪在接聽客戶訂外賣時(shí) ,由于客戶不熟悉外賣店鋪的菜單 , 在于服務(wù)員
10、 溝通時(shí)會(huì)浪費(fèi)很多的時(shí)間 ,容易造成外賣訂外賣電話占線的情況。外賣店鋪不能與時(shí)的獲取學(xué)生的喜好 ,容易造成有的菜浪費(fèi) ,有的菜不夠的情 況。經(jīng)過分析湖南工業(yè)大學(xué)的周圍的外賣行業(yè)的實(shí)際情況,很容易發(fā)現(xiàn)我國國內(nèi) 大學(xué)校園周圍的外賣店基本上數(shù)都是依靠服務(wù)員記錄的管理方式,很少外賣店實(shí) 行外賣訂外賣管理的信息化,因此電話訂外賣造成了不少的問題。1.3 外賣訂外賣管理系統(tǒng)的可行性分析與其作用根據(jù)以上分析得出傳統(tǒng)的依靠打電話訂外賣不僅會(huì)造成學(xué)生的不方便,另外 也對外賣店鋪的生意產(chǎn)生了不良影響。經(jīng)過分析得出實(shí)行電話訂外賣有以下幾個(gè) 缺點(diǎn):在每天中午和晚上餐廳高峰期間 ,外賣店鋪如果只有一臺(tái)電話是不夠的,很容
11、易造成電話占線、餐館服務(wù)員忙不過來、比較倉促、導(dǎo)致雙方態(tài)度惡劣,引起不必要的麻煩。學(xué)生打電話一般不知道餐廳有什么菜 ,所以導(dǎo)致點(diǎn)餐很麻煩 ,也要浪費(fèi)很多的 時(shí)間 ,如果餐館去學(xué)生發(fā)傳單 ,也會(huì)造成額外的開銷。學(xué)生通過電話訂外賣 ,總是會(huì)產(chǎn)生一定的電話費(fèi)用 ,這個(gè)費(fèi)用也是額外的開銷。通過以上綜合的分析,實(shí)行打電話訂外賣不僅不會(huì)促進(jìn)外賣行業(yè)的發(fā)展,反而會(huì)成為外賣行業(yè)發(fā)展的絆腳石,所以實(shí)行訂外賣管理的信息化是勢在必行的,如 果外賣管理系統(tǒng)對學(xué)生訂外賣流程實(shí)行信息化管理,不僅給訂外賣顧客帶來了很 大的方便 ,也會(huì)給外賣店鋪帶來了經(jīng)濟(jì)和效率收益。訂外賣管理系統(tǒng)信息化給顧客 和外賣店帶來了雙贏。對于顧客,
12、不用再擔(dān)心高峰期打電話訂外賣失敗了,顧客 可以通過瀏覽器在在外賣店鋪網(wǎng)上瀏覽相關(guān)菜單,還可以添加自己喜歡的菜單, 在一定程度上解決了曾經(jīng)的那種打電話訂外賣造成菜單出錯(cuò)的現(xiàn)象。也為外賣店 鋪帶來了很大的收益和長遠(yuǎn)的利益,也能減少外賣店的人力和財(cái)力和物力,通過 外賣管理系統(tǒng)信息化也能使外賣店能夠與時(shí)掌握學(xué)生客戶市場的信息,與時(shí)推出 新菜系和實(shí)行更有效的經(jīng)營管理策略。1.4 系統(tǒng)簡介基于 WEB 的外賣系統(tǒng)主要針對的是大學(xué)校園的訂外賣流程和對訂單處理實(shí)行 信息化而搭建出來的 B/S 外賣購物平臺(tái),學(xué)生客戶可以通過瀏覽器上網(wǎng)訪問外賣 網(wǎng)站 ,也可以實(shí)現(xiàn)網(wǎng)上瀏覽菜單和訂自己喜歡的菜單到購物車中,外賣店鋪
13、服務(wù)員 通過后臺(tái)管理登陸該系統(tǒng)實(shí)現(xiàn)對訂單的處理操作,通過外賣信息化處理給學(xué)生客 戶訂外賣帶來方便 ,同時(shí)也給外賣店管理人員帶來了長遠(yuǎn)利益。第2章外賣系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的關(guān)鍵技術(shù)2.1引言基于WEB的外賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)選取S2SH架構(gòu)作為基本設(shè)計(jì)理念來設(shè)計(jì)和幵發(fā),因?yàn)镾2SH是SSH的升級版,以前的SSH架構(gòu)中的用到的MVC框 架是struts,而S2SH中的MVC框架用到的是struts2,在Struts框架方面有很 大的改進(jìn),struts2與struts在實(shí)際配置方面有很大的不同,其中struts2的配置更靈活、幵發(fā)更加方便,研究人員利用其幵發(fā)的插件與hibernate和spring都能達(dá)
14、到無縫集成,另外本管理系統(tǒng)采用了三層架構(gòu),首先用struts2處理網(wǎng)站的前端,用hibernate 圭寸裝對數(shù)據(jù)庫的訪問操作,使用spring 對struts2、hibernate 和業(yè)務(wù)邏輯層中進(jìn)行數(shù)據(jù)對象的管理和連接,struts2、hibernate和spring三個(gè)框架有個(gè)字不同的職責(zé),這樣分層設(shè)計(jì)有利于系統(tǒng)項(xiàng)目幵發(fā)的分工,也能使項(xiàng)目幵 發(fā)達(dá)到更高的靈活性和可維護(hù)性。S2SH三層架構(gòu)如圖1.1所示。圖1.1 S2SH三層架構(gòu)圖2.2 struts2技術(shù)介紹Struts2是目前功能比較完善的Web系統(tǒng)常用的幵發(fā)框架,Struts2框架是Struts 1.X的升級和完善的版本,Struts
15、 2框架集合了Struts 1.X框架和WebWork 框架功能中的優(yōu)點(diǎn)。相對比較Struts 1.X,Struts2在功能上已經(jīng)有了非常大的改進(jìn),首先是取消了Acti on Form ,其次是降低了框架組件之間的耦合度,Struts 2中的Action部件只是普通的Java類(POJO ),使用它可以給模塊測試 的工作帶來了極大的簡便。Struts2也提供了強(qiáng)大的整合能力,支持多種返回結(jié)果類型,改進(jìn)了 Struts 1.X的標(biāo)簽庫,弓I入 OGNL表達(dá)式和值棧的概念,給幵發(fā)者 帶來了更好的體驗(yàn)1。另外從全局功能的角度來看,Struts2在一定程度上是一個(gè) pull (拉)功能類型的 MVC理
16、論的框架,另外它與傳統(tǒng)類型的MVC框架理論的區(qū)別方面就在于在 Struts2中,在其中Action部件擔(dān)任的是模型的部分,而不是 控制器的部分,雖然它的部分功能仍然有一些重合。“pull ”的動(dòng)作由視圖發(fā)起,它直接從Action里拉取所需的數(shù)據(jù),而不是另外還需要一個(gè)單獨(dú)的模型對象存在2ControllerModelexecuteActiontXx 卅)圖 1.2 MVC/Struts2 架構(gòu)圖圖1.2描述了 MVC/Struts2 架構(gòu)中的模型層、視圖層和控制器層的流程。如 圖所示:控制器層通過Struts2分布Servlet過濾器來實(shí)現(xiàn)功能。模型層在功能上 通過Action 部件實(shí)現(xiàn),視圖層
17、則通過結(jié)果類型和結(jié)果組合實(shí)現(xiàn)。值棧和OGNL提供了公共的線程和鏈接通道,在一定程度上可以使得不同組件之間可以相互的 集成。Struts2框架的可取之處就是使用了Action部件代理,Action代理可以根據(jù)系統(tǒng)預(yù)先配置好的配置文件,加載一系列的Servlet攔截器。由攔截器將HttpServletRequest參數(shù)解析出來,傳入到 Action 部件當(dāng)中。同樣,Action 部件處理的數(shù)據(jù)也是通過Servlet攔截器傳入HttpServletRespo nse,然后由HttpServletRequest將數(shù)據(jù)結(jié)果傳給用戶。其實(shí),上面的處理過程是典型的 AOP理論的方式,Struts2處理過程模
18、型如圖1.3所示。Action 代理圖1.3 Struts2 處理過程模型圖2.3 hibernate技術(shù)介紹Hiber nate 是一個(gè)優(yōu)秀的輕量級的ORM 框架,幵發(fā)人員可以通過使用Hibernate 框架。在一定程度上允許幵發(fā)人員使用面向?qū)ο蟮姆绞綄ο到y(tǒng)的數(shù)據(jù) 庫進(jìn)行檢索訪問。這樣就可以避免使用JDBC方式連接和訪問數(shù)據(jù)庫,不會(huì)造成面向?qū)ο缶幊膛c面向過程編程在數(shù)據(jù)庫方面的沖突。在這種方式下,很多系統(tǒng)的 設(shè)計(jì)應(yīng)用的面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)和面向?qū)ο缶幊逃泻艽蟮南嗤裕@樣 讓系統(tǒng)的分析和設(shè)計(jì)更加簡潔。Hibernate 框架作為Java EE持久化的標(biāo)準(zhǔn)框架,讓然使用傳統(tǒng)的POJO做為系
19、統(tǒng)的持久化類。同時(shí)具有低侵入式的系統(tǒng)設(shè)計(jì)這樣不會(huì)造成代碼方面的污染。 系統(tǒng)的持久化類無需繼承任何Hibernate 基類,或者實(shí)現(xiàn)任何 Hibernate接口,提供了極好的代碼復(fù)用o Hibernate框架與數(shù)據(jù)庫、應(yīng)用程序關(guān)聯(lián)關(guān)系如圖1.4所示。應(yīng)用稈序(Applkation)= PPO Mapping)St據(jù)持久展HibnYi=it 配置文件XML映肘Mapping)層(Diabase)圖1.4 Hiber nate關(guān)聯(lián)關(guān)系圖外賣訂餐系統(tǒng)設(shè)計(jì)雖然Hibernate 這個(gè)框架還處于發(fā)展的階段,產(chǎn)生的時(shí)間不長,但是已經(jīng)成為當(dāng)今社會(huì)編程方面最流行的持久層解決方案,和另一個(gè)持久層框架iBATIS比
20、較來說,Hibernate 框架更具有面向?qū)ο蟮奶卣鳎涣硗夂蛡鹘y(tǒng)的Entity EJB的持久層解決方案相比較,Hibernate框架則使用低侵入式的設(shè)計(jì)理念,也就是完全采用普通的Java對象(POJO )類型,而不必繼承Hibernate的某個(gè)父類或?qū)崿F(xiàn)Hibernate框架中的某個(gè)功能接口。Hiber nate框架是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言和連接關(guān)系數(shù)據(jù)庫之間的紐帶,另外Hibernate框架也允許程序員采用面向?qū)ο蟮姆绞絹聿僮麝P(guān)系數(shù)據(jù)庫。2.4 spri ng技術(shù)介紹Spring框架是一個(gè)優(yōu)秀輕量級的 Web幵發(fā)框架。Spring框架是一個(gè)分層的 架構(gòu),由7個(gè)模塊組成,如下圖1.5所示。Sp
21、ring框架中比較重要的模塊是核心 容器模塊,其他模塊構(gòu)建在這個(gè)核心的模塊容器之上,核心模塊是其它模塊的基 礎(chǔ),核心容器定義創(chuàng)建、配置和管理Bean的方式和操作,核心模塊容器提供了Spring框架的基本功能。其中主要組件是BeanFactory 組件,BeanFactory 組件是工廠模式的實(shí)現(xiàn)類。BeanFactory 組件通過使用反轉(zhuǎn)控制(IOC )模式,將應(yīng)用程序的配置文件和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分隔幵來。Spring AOPmeladdtaADP krhiKtr ucfureSpring CRMJ DC cuppArtSpring W*b 肚 甩 Men bunCwilt it
22、 MuUpwtfMolver MoutMwtSpring Web MVCVMUMVC FtftfflANOtk WebMewa JSPelodtv POF-EifortSpring CAO TrMiMcbon in 打udv* JO8C sufipod ICAO KififiiErtSpring Context 竝wmcirt Ul sufiponJNDL EJB nMpfwtMaiSpring Core Supporting ullihmBean contaiiier圖1.5 spr ing 七大模塊圖組成Spring框架的每個(gè)模塊(或組件)在一定的程度上都可以單獨(dú)存在的, 或者也可以與其他
23、一個(gè)或多個(gè)模塊一起實(shí)現(xiàn)某種功能而存在。其中每個(gè)模塊的功 能如下:核心模塊容器:核心容器提供Spri ng框架的基本功能。核心容器的主要組件是BeanFactory 組件,BeanFactory 組件是工廠模式的實(shí)現(xiàn)類。BeanFactory組件使用控制反轉(zhuǎn) (IOC) 模式將應(yīng)用程序的配置文件和依賴性規(guī)范與實(shí)際的應(yīng)用 程序代碼分隔開來。Spring 上下文模塊: Spring 上下文模塊是一個(gè)配置文件,它的作用是向Spring 框架提供上下文的信息。 Spring 上下文信息包括企業(yè)服務(wù) ,例如 JNDI 組件、 EJB 組件、電子郵件、國際化組件、校驗(yàn)組件和調(diào)度功能等。Spring AOP
24、模塊:通過配置管理特性 ,Spring AOP 模塊可以直接將面向?qū)ο?的編程功能全部集成到了 Spring 框架之中。所以使用 Spring AOP 模塊可以很簡 單地使Spring 框架管理的任何對象支持都 Spring AOP 模塊。Spring AOP 模塊 為基于 Spring 的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)等功能。 程序開發(fā)人員通 過使用Spring AOP模塊,可以不用依賴EJB組件,就毫無問題地將聲明性的事務(wù) 管理等功能全都集合到應(yīng)用程序代碼中。Spring DAO 模塊: JDBC DAO 模塊中的抽象層概念提供了有很大實(shí)用性的 異常理論結(jié)構(gòu),程序員可用該結(jié)構(gòu)去統(tǒng)計(jì)異常
25、處理和不同數(shù)據(jù)庫供應(yīng)商之間拋出 的錯(cuò)誤信息。異常層次結(jié)構(gòu)簡化了錯(cuò)誤處理,并且極大地降低了需要編寫的異常 代碼數(shù)量(例如打開和關(guān)閉連接)。 Spring DAO 的面向 JDBC 的異常遵從通用 的 DAO 異常層次結(jié)構(gòu)。Spring ORM :Spring 框架插入了若干個(gè) ORM 框架,從而提供了 ORM 的 對象關(guān)系工具,其中包括 JDO 、Hibernate 和 iBatis SQL Map 。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)。Spring Web 模塊: Web 上下文模塊建立在應(yīng)用程序上下文模塊之上,為基 于 Web 的應(yīng)用程序提供了上下文。所以, S
26、pring 框架支持與 Jakarta Struts 的 集成。 Web 模塊還簡化了處理多部分請求以與將請求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌pring MVC 框架: MVC 框架是一個(gè)全功能的構(gòu)建 Web 應(yīng)用程序的 MVC 實(shí)現(xiàn)。通過策略接口, MVC 框架變成為高度可配置的, MVC 容納了大量視圖技 術(shù),其中包括 JSP、Velocity 、Tiles、iText 和 POI5。2.5 數(shù)據(jù)源技術(shù)介紹JNDI (Java Naming and Directory Interface, Java 命名和目錄接口 )是一組在Java應(yīng)用中訪問命名和目錄服務(wù)的AP,通過名稱將資源與服務(wù)進(jìn)行關(guān)聯(lián)1
27、。在系統(tǒng)中使用 JNDI 連接池連接 Oracle 數(shù)據(jù)庫。連接池是在內(nèi)存中預(yù)設(shè)好一定數(shù) 量的連接對象,以備用戶在進(jìn)行數(shù)據(jù)庫操作時(shí)直接使用,與傳統(tǒng)數(shù)據(jù)庫連接比較使用數(shù)據(jù)池技術(shù)數(shù)據(jù)庫操作性能得到提升, 通過連接池管理數(shù)據(jù)庫的連接與釋放、 提高了系統(tǒng)資源的使用效率 1。 Java 程序訪問數(shù)據(jù)庫時(shí),只需要從連接池中取出 空閑狀態(tài)的數(shù)據(jù)庫連接;當(dāng)程序訪問數(shù)據(jù)庫結(jié)束,再將數(shù)據(jù)庫連接放回連接池 1。 在系統(tǒng)服務(wù)器 Tomcat 中配置內(nèi)容如下所示 :Tomcat 配置文件 :Resource name=jdbc auth=ContainermaxIdle=4 maxWait=10000 username
28、=shao password=199451Shao其中標(biāo)簽的功能如下 :Name :表示指定的 jndi 名稱。Auth :表示認(rèn)證方式,一般為 Container 。Type :表示數(shù)據(jù)源床型,使用標(biāo)準(zhǔn)的 。maxActive :表示連接池當(dāng)中最大的數(shù)據(jù)庫連接。maxIdle :表示最大的空閑連接數(shù)。maxWait :當(dāng)池的數(shù)據(jù)庫連接已經(jīng)被占用的時(shí)候,最大等待時(shí)間。Username :表示數(shù)據(jù)庫用戶名。Password :表示數(shù)據(jù)庫用戶的密碼。driverClassName :表示 JDBC DRIVER 。url :表示數(shù)據(jù)庫 URL 地址。2.6 小結(jié)基于 WEB 的外賣訂外賣系統(tǒng)的設(shè)計(jì)
29、與實(shí)現(xiàn)主要分為管理員操作和客戶操作, 系統(tǒng)從需求分析到模型設(shè)計(jì) ,再到代碼編寫都是按照 MVC 三層的設(shè)計(jì)理念 ,將系統(tǒng) 簡化為視圖層 (View) 、控制層 (Controller) 和模型層 (Model), 并且在 View 層與 Model 層之間使用接口 Service 連接 ,Model 層和 Controller 層之間使用 DAO 接口 ,降低了層與層之間的耦合度 ,為以后修改代碼更加方便。 同時(shí)在檢索數(shù)據(jù)庫時(shí) 建立一個(gè)數(shù)據(jù)次 ,可以減少打開和關(guān)閉數(shù)據(jù)庫的次數(shù) ,有效地提高系統(tǒng)的運(yùn)行效率, 對經(jīng)常登錄的用戶可以帶來很快的反應(yīng)速度。第 3 章 系統(tǒng)需求分析3.1 引言 本系統(tǒng)采用
30、 OOA( 面向?qū)ο蠓治?)和 UML ( Unified Modeling Language ) 工具為指導(dǎo)理論,第三章主要對系統(tǒng)的需求分析以與系統(tǒng)設(shè)計(jì)和功能等進(jìn)行分析 描述。3.2 UMLUML (Unified Modeling Language)是一種用來創(chuàng)建程序模型的圖形語言(即帶有語意的一種圖形記號) 7 ,常用的 UML 圖有對象類圖、時(shí)序圖、用例圖、 活動(dòng)圖和狀態(tài)圖。3.3 需求分析 軟件需求分析是軟件開發(fā)過程中生存期中非常重要的一步,是起到?jīng)Q定性作 用的一步。需求分析是軟件定義過程中一個(gè)必不可少的階段,它的作用是讓開發(fā) 者明白系統(tǒng)需要做些什么,能完成什么功能。本外賣訂外賣管理
31、系統(tǒng)包括兩個(gè)子系統(tǒng),前臺(tái)訂外賣和后臺(tái)管理,前臺(tái)訂外 賣是供用戶瀏覽菜系和提交訂單進(jìn)行訂外賣;后臺(tái)管理是供管理員進(jìn)行外賣訂單 管理、菜系管理、菜單管理。外賣訂餐管理系統(tǒng)主要的作用是滿足學(xué)生和個(gè)人之間的吃飯需求,要解決目 前餐廳信息阻塞,許多的資源機(jī)會(huì)而被流失,所以網(wǎng)上外賣訂餐管理系統(tǒng)的出現(xiàn) 很好的解決的這一問題。該系統(tǒng)分為前臺(tái)和后臺(tái),前臺(tái)是個(gè)人會(huì)員用的,個(gè)人通過注冊成為網(wǎng)站會(huì)員, 然后登錄網(wǎng)站系統(tǒng),可以查看餐廳大量的外賣信息,并可以選擇自己喜歡的菜添 加到購物車。 系統(tǒng)后臺(tái)管理是管理員對本系統(tǒng)進(jìn)行管理的平臺(tái),管理員可以更 新菜系信息和菜單信息,并可以對訂餐的狀態(tài)進(jìn)行管理。3.4 系統(tǒng)功能 本系統(tǒng)
32、采用面向?qū)ο蠓治龇椒?,下面是對本系統(tǒng)的兩個(gè)子系統(tǒng)進(jìn)行分析說明。 通過需求分析跟系統(tǒng)設(shè)計(jì)和功能的分析可以得出該系統(tǒng)的總體結(jié)構(gòu)如圖 3.1 所示。圖3.1系統(tǒng)總體框架圖前臺(tái)管理系統(tǒng)供用戶瀏覽菜系,進(jìn)行菜單添加到購物車,用戶可以對購物車 進(jìn)行增加、清除,用戶提交訂單后可以在訂單列表查看外賣訂單配送狀態(tài),用例 如圖3.2所示。瀏覽菜系和菜單圖3.2用戶用例圖3.3所示。后臺(tái)管理系統(tǒng)有菜系管理、訂單管理、菜單管理三大模塊。菜系管理:可以對菜系進(jìn)行查看、添加、修改和刪除。用例如圖外賣訂餐系統(tǒng)設(shè)計(jì)圖3.3菜系管理用例圖3.4所示。訂單管理:可以對外賣訂單的狀態(tài)進(jìn)行查看,改變。用例如圖3.5所示。圖3.4訂單
33、管理用例圖菜單管理:可以對菜單進(jìn)行查看、添加、修改和刪除。用例如圖圖3.5菜單管理用例圖3.5小結(jié)系統(tǒng)項(xiàng)目在幵始之前首要任務(wù)就是系統(tǒng)需求的分析 ,根據(jù)搜集的需求分析得出 系統(tǒng)的模型設(shè)計(jì),在需求分析時(shí)要根據(jù)實(shí)際情況分析 ,往往需求的分析是否全面影 響著后續(xù)系統(tǒng)的編寫。第4章系統(tǒng)設(shè)計(jì)4.1引言本系統(tǒng)的設(shè)計(jì)采用 00A (面向?qū)ο蠓治觯┖屠?UML工具輔助幵發(fā)設(shè)計(jì) 4.2系統(tǒng)架構(gòu)方式本系統(tǒng)使用MVC三層架構(gòu)模式作為系統(tǒng)的設(shè)計(jì)理念, 即視圖層,業(yè)務(wù)邏輯層, 數(shù)據(jù)訪問層,三層之間都相互獨(dú)立,視圖層與業(yè)務(wù)邏輯層通過接口進(jìn)行通信,業(yè) 務(wù)邏輯層與數(shù)據(jù)訪問層也是通過接口進(jìn)行通信,數(shù)據(jù)訪問層是直接跟數(shù)據(jù)庫(DB
34、)通信,可以直接操作數(shù)據(jù)庫,這樣系統(tǒng)設(shè)計(jì)具有很好的解耦性,每一層內(nèi)容的邏 輯的改變和更新不會(huì)影響到另一層的邏輯代碼,這樣對項(xiàng)目以后的可維護(hù)性與代 碼更新具有很大方便作用,三層架構(gòu)流程如圖4.1所示。圖4.1三層架構(gòu)圖4.3數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)包括了數(shù)據(jù)庫需求分析、概念設(shè)計(jì)以與邏輯設(shè)計(jì)。數(shù)據(jù)庫的需求 分析是根據(jù)幵發(fā)系統(tǒng)的功能對數(shù)據(jù)庫進(jìn)行需求分析來得出數(shù)據(jù)庫需要的表以與表 屬性。概念設(shè)計(jì)是根據(jù)需求分析來設(shè)計(jì)數(shù)據(jù)庫的實(shí)體結(jié)構(gòu)圖以與ER圖。邏輯設(shè)計(jì)是根據(jù)概念設(shè)計(jì)中的ER模型設(shè)計(jì)數(shù)據(jù)庫的表結(jié)構(gòu)。數(shù)據(jù)庫需求分析本系統(tǒng)使用的是 Oracle數(shù)據(jù)庫,從系統(tǒng)的需求分可以看出,系統(tǒng)需要建立 用戶表、菜系表、購物車
35、表、訂單表。從功能模塊看,還需要菜單表、訂單詳細(xì) 表、購物車項(xiàng)表。系統(tǒng)的數(shù)據(jù)庫包含如下 :1. 個(gè)人用戶數(shù)據(jù):用來存儲(chǔ)個(gè)人信息,如賬號,密碼聯(lián)系方式等。2. 菜系數(shù)據(jù):用來存儲(chǔ)菜系信息,如菜系名稱,菜系內(nèi)容等。3. 菜單數(shù)據(jù):用來存放菜單信息,如菜單名稱,介紹等。4. 訂單數(shù)據(jù):用來存放訂單信息,如姓名,地址等。5. 購物車數(shù)據(jù):用來存放外賣信息,如菜單數(shù)量,菜單價(jià)格等。6. 訂單詳細(xì)數(shù)據(jù):用來訂單詳細(xì)信息,如訂單所屬用戶,訂單項(xiàng)等。7. 購物車項(xiàng)數(shù)據(jù):用來存放購物車項(xiàng)信息,如菜單信息,數(shù)量等。4.3.2 E-R 模型在數(shù)據(jù)庫的概念設(shè)計(jì)中以實(shí)體聯(lián)系法建立E-R模型,用E-R模型表示概念結(jié)構(gòu),得
36、到外賣訂餐管理系統(tǒng)的概念模型。E-R模型的基本元素是:實(shí)體、聯(lián)系和屬性。實(shí)體是數(shù)據(jù)對象,是應(yīng)用中能夠 區(qū)分的客觀的存在的事物;聯(lián)系表示一個(gè)或多個(gè)實(shí)體之間的關(guān)聯(lián)關(guān)系;能夠描述 實(shí)體對象某一特征的屬性稱為實(shí)體屬性,在實(shí)體中,能夠唯一標(biāo)識(shí)實(shí)體的作用的 屬性,它被稱之為“實(shí)體標(biāo)識(shí)符”。根據(jù)以上數(shù)據(jù)庫的需求分析可以得到系統(tǒng)中需要的實(shí)體類型,進(jìn)一步可以分 析實(shí)體所需要的屬性以與各實(shí)體之間的聯(lián)系。系統(tǒng)中的實(shí)體結(jié)構(gòu)圖以與系統(tǒng)E-R模型圖如圖4.2至5.2所示。ID、用戶名、密碼、等,這些都是不可少的;其中會(huì)員實(shí)體屬性有:會(huì)員ID更是作為標(biāo)識(shí)存在訂單實(shí)體屬性有:訂單中ID更是作為標(biāo)識(shí)存在菜系實(shí)體屬性有:菜系外賣
37、訂餐系統(tǒng)設(shè)計(jì)圖4.3訂單實(shí)體圖ID、訂單時(shí)間、訂單價(jià)格等,這些都是不可少的;其圖4.4菜系實(shí)體圖ID、菜系名稱、菜系描述等,這些都是不可少的;其中ID更是作為標(biāo)識(shí)存在菜單實(shí)體屬性有:菜單ID、菜單名稱、菜單描述等,這些都是不可少的;其中ID更是作為標(biāo)識(shí)存在4.4 建立數(shù)據(jù)庫表很多程序員都是使用傳統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),就是首先設(shè)計(jì)E-R圖,然后在通 過E-R圖生成數(shù)據(jù)表。使用 MVC三層設(shè)計(jì)理念,就是先建立系統(tǒng)實(shí)體類和編寫 實(shí)體類的映射文件,接著通過實(shí)體類和映射文件之間的關(guān)系自動(dòng)生成相關(guān)的數(shù)據(jù)外賣訂餐系統(tǒng)設(shè)計(jì)庫表。這種幵發(fā)模式主要體現(xiàn)出來的是00D思想,數(shù)據(jù)的持久化在某一方面都是非常機(jī)械呆板的,基本沒
38、有什么需要變動(dòng)的,hibernate框架就把這些獨(dú)特的行 為抽象出來自動(dòng)完成,并在轉(zhuǎn)換的效率上進(jìn)行優(yōu)化等,讓我們很容易的就能實(shí)現(xiàn) 數(shù)據(jù)庫的移植。本系統(tǒng)是采用先建立實(shí)體類和編寫映射文件,然后根據(jù)之間的關(guān) 系自動(dòng)生成數(shù)據(jù)表的幵發(fā)模式。系統(tǒng)設(shè)計(jì)的實(shí)體類如下表4.1所示。表4.1實(shí)體類設(shè)計(jì)表類名功能說明User用戶類Order訂單類OrderItem訂單項(xiàng)類Category菜系類Me nu菜單類Cart購物車類CartItem購物車項(xiàng)類441系統(tǒng)信息數(shù)據(jù)庫表設(shè)計(jì)如下表4.2所示:數(shù)據(jù)庫表Category是存儲(chǔ)外賣系統(tǒng)中菜系的信息。其中 id 字段是作為菜系的序號,name字段是作為菜系的名稱,desc
39、ription 字段是作為 菜系的介紹。表4.2實(shí)體類Category字段名類型是否為空是否主鍵備注idVarchar2(30)是序號n ameVarchar2(30)否菜系名稱descriptio nvarchar2(200)否菜系描述如下表4.3所示:數(shù)據(jù)庫表Order是存儲(chǔ)外賣系統(tǒng)中外賣訂單的信息。其中id字段外賣訂餐系統(tǒng)設(shè)計(jì)作為訂單的序號,Ordertime字段是作為訂單的提交時(shí)間,price字段是作為訂單 的價(jià)格,state字段的作用是標(biāo)記訂單的狀態(tài),user_id字段作為訂單所屬用戶的 序號。表4.3實(shí)體類Order字段名類型是否為空是否主鍵備注idVarchar2(40)是序號o
40、rdertimedate否訂單時(shí)間pricenu mber否訂單價(jià)格statenu mber否訂單狀態(tài)user_idVarchar2(100)否所屬用戶id如下表4.4所示:數(shù)據(jù)庫表User是存儲(chǔ)該系統(tǒng)中注冊客戶的個(gè)人信息。其中id字段作為用戶的序號,username字段是作為用戶的登陸名,password字段作為用戶 登錄的密碼,cellphone 字段的作用是存儲(chǔ)用戶的聯(lián)系電話, address字段作為 用戶外賣配送的地址,sex字段是存儲(chǔ)用戶的性別信息,types字段存儲(chǔ)用戶的會(huì) 員類型。表4.4實(shí)體類User字段名類型是否為空是否主鍵備注idVarchar2(40)是序號user na
41、meVarchar2(40)否用戶名passwordVarchar2(40)否密碼cellph oneVarchar2(40)否電話addressVarchar2(100)否地址sexVarchar2(4)否性別typesVarchar2(20)否客戶類型如下表4.5所示:數(shù)據(jù)庫表Orderitem是存儲(chǔ)外賣系統(tǒng)中外賣訂單項(xiàng)的信息。 其中id字段作為訂單項(xiàng)的序號,quantity字段是作為訂單項(xiàng)的數(shù)量,price字段 是作為訂單項(xiàng)的價(jià)格,menu_id字段作為訂單項(xiàng)中包含的菜單的序號,order_id字段作為訂單項(xiàng)所屬訂單的序號。表4.5實(shí)體類Orderitem字段名類型是否為空是否主鍵備注i
42、dVarchar2(50)是序號qua ntitydate否數(shù)量pricenu mber否購物項(xiàng)價(jià)格menudvarchar2(60)否菜單序號order_idvarchar2(50)否所屬訂單序號如下表4.6所示:數(shù)據(jù)庫表Menu是存儲(chǔ)外賣系統(tǒng)中外賣菜單的信息。其中id字段作為菜單的序號,name字段是存儲(chǔ)菜單的名稱信息,description 字段是存儲(chǔ)菜 單的介紹信息,image字段的作用是存儲(chǔ)菜單的實(shí)際圖片,price字段的作用是作 為菜單的售價(jià),Category_id字段的作用是存儲(chǔ)該菜單所屬菜系類別的序號信息。表4.6實(shí)體類Menu字段名類型是否為空是否主鍵備注idVarchar2
43、(30)是序號n ameVarchar2(30)否菜單名稱descriptio nvarchar2(100)否菜單描述imagevarchar2(100)否菜單圖片pricenu mber否菜單價(jià)格Category_idVarchar2(30)否所屬菜系序號442映射文件的編寫在該系統(tǒng)中Web.xml文件的功能使初始化配置信息。context.xml文件的功 能使配合JNDI連接數(shù)據(jù)庫。Web.xml文件如下:vweb-appxm In s:xsi=xmln s=xmln s:web=xsi:schemaLocati on二id=WebApp_ID versio n=3.0vdisplay-n
44、ameFD/display-namevfilter- nameCharacterE ncodi ngFilterv/filter- namevfilter-mapp ingCharacterE ncodi ngFilterv/filter- name/*v/filter-mappi ngvfilter- nameHtmlFilter/filter- nameHtmlFilter /*UserServletMenuServletCategoryServletBaseServletManagerOrderServletIndexServletBuyServletOrderServletUserSe
45、rvlet/client/UserServletMenuServlet/manager/MenuServletCategoryServlet /manager/CategoryServletBaseServlet/BaseServletManagerOrderServlet/manager/ManagerOrderServlet外賣訂餐系統(tǒng)設(shè)計(jì)IndexServlet /client/IndexServlet BuyServlet /client/BuyServlet OrderServlet /client/OrderServlet context.xml 文件如下:Resource nam
46、e=jdbcauth=SH4.5 詳細(xì)設(shè)計(jì) 這一章節(jié)主要內(nèi)容是描述了怎么樣對系統(tǒng)的對象類進(jìn)行分析和設(shè)計(jì)、系統(tǒng)的 流程分析以與如何使用時(shí)序圖對系統(tǒng)中的對象交互信息等進(jìn)行詳細(xì)的描述。4.5.1 類設(shè)計(jì)類關(guān)系通過面向?qū)ο蠓治龅贸鲈诒鞠到y(tǒng)中用戶跟訂單、訂單項(xiàng),訂單跟訂單項(xiàng),購物車跟訂單項(xiàng),菜系跟菜單都是一對多關(guān)系,用戶跟購物車,訂單跟購物車 ,菜單跟 訂單項(xiàng)都是一對一關(guān)系。其關(guān)聯(lián)關(guān)系如圖4.3所示。圖4.3類關(guān)聯(lián)圖DAO與業(yè)務(wù)邏輯類設(shè)計(jì)I. UserDao 與 BusinessService 設(shè)計(jì)如下圖 4.4 所示:BusinessService 依賴于 UserDao 。圖4.4 UserDao與
47、邏輯類關(guān)聯(lián)圖2. CategoryDao 與 BusinessService 設(shè)計(jì) 如圖 4.5 所示:BusinessService 依賴于 CategoryDao 。圖4.5 CategoryDao與邏輯類關(guān)聯(lián)圖3. MenuDao 與 BusinessService 類設(shè)計(jì)MenuDao如下圖 4.6 示:Bus in essService 依賴于 Men uDao。 BusinessServiceMenuDaolmpIBusinessServiceImpl+del(String id)() : void+add(Menu menu)() : void+find(String id)()
48、 : void+find()() : MenuDao+getTotalRecord(String category_id)() : int+getTotalRecord()() : int+getPageData(int startindex, int endindex)() : MenuDao +getPageData(int startindex, int endindex,() : MenuDao+delMenu(String id)() : void+addMenu(Menu menu)() : void+findMenu(String id)() : MenuDao+findMenu
49、()() : MenuDao+getMenuPageData(String pagenum)(): +getMenuPageData(String pagenum,String category_id)(): +buymenu(Cart cart,Menu menu,String access)() : void圖4.6 MenuDao 與邏輯類關(guān)聯(lián)圖4. OrderDao 與 BusinessService 類設(shè)計(jì)如下圖 4.7 示:BusinessService 依賴于 OrderDao。圖 4.7 OrderDao與邏輯類關(guān)聯(lián)圖4.5.2 外賣訂外賣系統(tǒng)流程分析1. 用戶通過瀏覽器訂購?fù)赓u流程:瀏覽菜單列表是添加到購物車購物車頁面i y查看訂單J/1提交訂單結(jié)算 是否登錄r否是否正確輸入用戶名和密碼提示用戶登錄/、否-提示用戶名或密碼錯(cuò)誤圖4.8用戶訂購?fù)赓u流程圖2. 后臺(tái)管理員訂單處理流程:進(jìn)入系統(tǒng)后臺(tái)查看訂單列表修改訂單狀態(tài)圖4.9管理員訂單處理流程圖4.5.3 時(shí)序圖分析1 .登錄用例實(shí)現(xiàn)A、用戶登錄時(shí)序圖圖4.10用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬圍欄施工方案
- 幼兒園獲獎(jiǎng)公開課:小班數(shù)學(xué)《幫瓢蟲找家》教案
- 礦山隧道堵漏施工方案
- 發(fā)展鄉(xiāng)村特色產(chǎn)業(yè)助推新型農(nóng)村集體經(jīng)濟(jì)的價(jià)值及舉措論述
- 優(yōu)化勞動(dòng)用工制度的策略及實(shí)施路徑
- 食品加工企業(yè)物流運(yùn)輸與配送安全fa
- 低空經(jīng)濟(jì)公司未來發(fā)展戰(zhàn)略
- 基于問題導(dǎo)向的高中物理教學(xué)策略研究
- 中外名建筑賞析知到課后答案智慧樹章節(jié)測試答案2025年春濰坊工程職業(yè)學(xué)院
- 河北省石家莊高三第二次教學(xué)質(zhì)量檢測文綜政治試題
- 進(jìn)化醫(yī)療-跨物種腫瘤基因治療的開拓者
- 法理學(xué)復(fù)習(xí)題+答案
- 信息化系統(tǒng)平臺(tái)試運(yùn)行方案
- 統(tǒng)編版(2024新版)七年級下冊道德與法治期末復(fù)習(xí)背誦知識(shí)點(diǎn)提綱
- 《田野調(diào)查方法》課件
- 2024年度寧夏回族自治區(qū)國家電網(wǎng)招聘之環(huán)化材料類題庫檢測試卷B卷附答案
- 火電工程達(dá)標(biāo)投產(chǎn)考核標(biāo)準(zhǔn)(2024版)
- 2024年云南省中考物理真題含解析
- 《信號工程施工》課件全套 穆中華 項(xiàng)目1-3 信號圖紙識(shí)讀、施工技能訓(xùn)練、信號聯(lián)鎖試驗(yàn)
- 全新網(wǎng)絡(luò)安全教案:應(yīng)對2024年網(wǎng)絡(luò)威脅
- 江蘇省蘇州市2023-2024學(xué)年八年級上學(xué)期期末語文試題及答案
評論
0/150
提交評論