畢業(yè)設(shè)計(jì)(論文)基于Struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于Struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于Struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于Struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于Struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、摘 要現(xiàn)代企業(yè)由于業(yè)務(wù)量巨大,需借助電子計(jì)算機(jī)的幫助進(jìn)行管理從而實(shí)現(xiàn)其更好的業(yè)務(wù)運(yùn)作。大連新世紀(jì)食品公司通過其在線訂單管理系統(tǒng)可以降低運(yùn)營成本,實(shí)現(xiàn)采購過程標(biāo)準(zhǔn)化,減少事務(wù)性工作,提高效率,方便靈活的信息查詢服務(wù),給企業(yè)提供更強(qiáng)的競爭力。本論文主要闡述如何實(shí)現(xiàn)基于struts的食品訂單管理系統(tǒng)的實(shí)現(xiàn)。食品訂單管理系統(tǒng)是基于b/s模式的應(yīng)用程序,采用tomcat作為web服務(wù)器容器,采用mysql數(shù)據(jù)庫保存訂單數(shù)據(jù)。該系統(tǒng)是在b/s架構(gòu)下采用struts框架設(shè)計(jì)實(shí)現(xiàn)的,采用并擴(kuò)展了mvc設(shè)計(jì)模式,分成表現(xiàn)層、控制層、模型層、數(shù)據(jù)庫持久層。系統(tǒng)的開發(fā)平臺是j2ee,數(shù)據(jù)庫持久層采用hibernat

2、e框架來設(shè)計(jì)與實(shí)現(xiàn)的。食品訂單管理系統(tǒng)將從功能、運(yùn)行穩(wěn)定性、數(shù)據(jù)安全性,用戶體驗(yàn)度等方面研究完善食品訂單管理系統(tǒng)。通過該項(xiàng)目,了解并運(yùn)用軟件工程所學(xué)知識,熟悉企業(yè)級的軟件開發(fā)流程,熟練使用my eclipse等開發(fā)工具、java開發(fā)語言,對spring、struts、hibernate等技術(shù)有一個(gè)全面的了解與掌握,從而更好的把握目前主流的web開發(fā)技術(shù)。關(guān)鍵詞:訂單管理系統(tǒng);struts;spring;hibernate;mvc;j2eeabstract a modern enterprise as a result of the enormous volume of business, us

3、e computer to manage in order to help better achieve its business operations. dalian new century food company, through its online order management system can reduce operating costs, achieve standardization of the procurement process and reduce transactional work, mention anything about efficiency, c

4、onvenience and flexible information services, to provide a more competitiveness. this paper focuses on how to achieve food struts-based order management system. food order management system is based on b/s mode applications, using tomcat as a web server, using oracle database data preservation order

5、s. the system is used in the bs framework struts framework designed to achieve, and expand the use of the mvc design pattern, into the performance of layer, control layer, model layer, a database persistence layer. system development platform is j2ee, database persistence layer using hibernate frame

6、work to design and implementation. food orders from the management system functionality, operation stability, data security, user experience research, such as order management systems to improve food. through the project, to understand and study the use of software engineering knowledge, are familia

7、r with enterprise-class software development processes, such as proficiency in the use of eclipse development tools, java development language, spring, struts, hibernate and other new technologies from a comprehensive understanding and grasp in order to better grasp of the current mainstream of web

8、development technologies. key words:order management system;struts;spring;hibernate;mvc;j2ee目 錄 第一章 緒論11.1 選題背景11.2 國內(nèi)外現(xiàn)狀介紹11.3 內(nèi)容安排2第二章 相關(guān)技術(shù)介紹32.1 軟件架構(gòu)與開發(fā)平臺32.2 b/s模式j(luò)avaweb開發(fā)框架介紹42.3 訂單系統(tǒng)開發(fā)環(huán)境8第三章 訂單管理系統(tǒng)需求分析103.1 功能需求103.2 非功能需求14第四章 訂單管理系統(tǒng)的設(shè)計(jì)164.1 系統(tǒng)總體設(shè)計(jì)164.2 接口設(shè)計(jì)174.3 數(shù)據(jù)庫設(shè)計(jì)20第五章 訂單管理系統(tǒng)的實(shí)現(xiàn)255.1 視圖

9、層的配置及顯示控制265.2 業(yè)務(wù)邏輯層功能實(shí)現(xiàn)275.3 數(shù)據(jù)庫持久存儲層30第六章 總結(jié)316.1 論文總結(jié)316.2 前景展望31參考文獻(xiàn)32外文資料中文譯文致謝6天津大學(xué)2009屆本科生畢業(yè)設(shè)計(jì)(論文)第一章 緒論1.1 選題背景大連新世紀(jì)食品有限公司為了能夠及時(shí)獲得美國總公司下達(dá)的采購任務(wù),并按照需求進(jìn)行采購,并且實(shí)現(xiàn)整個(gè)業(yè)務(wù)流程電子化,希望構(gòu)建一套公司的業(yè)務(wù)訂單管理系統(tǒng)。通過構(gòu)建電子商務(wù)系統(tǒng),有效地解決了以前手工管理的諸多不足,提高了企業(yè)的整體管理水平,方便了企業(yè)與客戶之間的信息交流與共享,提高了企業(yè)內(nèi)部的工作效率,并為企業(yè)節(jié)約了大量銷售成本,提高了企業(yè)效益,其具有的優(yōu)勢具體體現(xiàn)在

10、以下幾方面:(1)降低運(yùn)營成本:同時(shí)有效提高與供應(yīng)商的協(xié)同水平。另外即使供應(yīng)商大量增加,運(yùn)行成本增加也極為有限,甚至可以做到幾乎不增加新成本。(2)業(yè)務(wù)規(guī)范化、自動化:包括簡化了采購訂單流程,實(shí)時(shí)的交易信息查詢,公平、公開的競爭環(huán)境。(3)促使采購人員角色轉(zhuǎn)化:包括提高工作效率,轉(zhuǎn)變采購人員角色,支持決策的服務(wù)。(4)提供信息查詢服務(wù):包括企業(yè)信息管理,信息發(fā)布平臺。綜上所述,企業(yè)級電子商務(wù)交易解決方案緊緊圍繞企業(yè)的業(yè)務(wù)的運(yùn)作特點(diǎn),以優(yōu)化采購流程、縮短企業(yè)與供應(yīng)商的距離為目標(biāo),涵蓋企業(yè)電子商務(wù)鏈的所有需求,是為企業(yè)向互聯(lián)網(wǎng)轉(zhuǎn)型的得力工具。1.2 國內(nèi)外現(xiàn)狀介紹國外,尤其是西方發(fā)達(dá)國家由于互聯(lián)網(wǎng)

11、起步早,在電子商務(wù)方面的發(fā)展快、比我國成熟、功能更完善。發(fā)達(dá)國家電子商務(wù)是商務(wù)推動型。以歐美等國為例,電子商務(wù)業(yè)務(wù)開發(fā)的如火如荼。在美國,電子商務(wù)實(shí)踐早于電子商務(wù)概念,企業(yè)的商務(wù)需求推動了網(wǎng)絡(luò)和電子商務(wù)技術(shù)的進(jìn)步,并促成電子商務(wù)概念的形成。當(dāng)internet時(shí)代到來的時(shí)候,美國已經(jīng)有了一個(gè)比較先進(jìn)和發(fā)達(dá)的電子商務(wù)基礎(chǔ)。在法、德等歐洲國家,電子商務(wù)所產(chǎn)生的營業(yè)額已占商務(wù)總額的1/4,在美國則已高達(dá)1/3以上,而歐美國家電子商務(wù)的開展也不過才十幾年的時(shí)間。在美國,美國在線(aol)、雅虎、電子港灣等著名的電子商務(wù)公司在1995年前后開始賺錢,到2000年創(chuàng)造了7.8億美元,ibm、亞馬遜書城、戴爾

12、電腦、沃爾瑪超市等電子商務(wù)公司在各自的領(lǐng)域更是取得了令人不可思議的巨額利潤。中國電子商務(wù)始于1997年,它更多的是技術(shù)拉動型,這是在發(fā)展模式上中國電子商務(wù)與歐美的重要區(qū)別,同時(shí)這也是中國電子商務(wù)發(fā)展的一大特點(diǎn)。中國電子商務(wù)發(fā)展迅猛,2007年全國電子商務(wù)交易總額達(dá)2.17萬億元,比上年度增長90%。中國網(wǎng)絡(luò)購物發(fā)展迅速,2008年6月底,網(wǎng)絡(luò)購物用戶人數(shù)達(dá)到6329萬,半年內(nèi)增加36.4%。截至2008年12月,電子商務(wù)類站點(diǎn)的總體用戶覆蓋已經(jīng)從9000萬戶提升至9800萬戶。中國第一大電子商務(wù)企業(yè)阿里巴巴08年第一季度用戶數(shù)已達(dá)6200萬,一季度交易額突破188億人民幣,同比增長170%,已

13、接近沃爾瑪去年全年在中國市場213億元的成交額。從統(tǒng)計(jì)數(shù)據(jù)上可以看出中國電子商務(wù)市場的前景和潛力都是非常巨大的,做好企業(yè)自身的電子商務(wù)平臺對于其今后的發(fā)展可謂是至關(guān)重要。1.3 內(nèi)容安排本次畢業(yè)課程設(shè)計(jì)研究了解了整個(gè)企業(yè)級的業(yè)務(wù)開發(fā)流程,討論了食品訂單管理系統(tǒng)的需求分析、設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)測試。學(xué)習(xí)并使用struts、spring、hibernate等web框架開發(fā)技術(shù),熟悉my eclipse, mysql, tomcat等開發(fā)工具的配置,并對其熟練運(yùn)用,實(shí)現(xiàn)訂單系統(tǒng)的完整編碼并測試完善,深入理解基于b/s模式的web應(yīng)用程序開發(fā)的mvc三層設(shè)計(jì)的技術(shù)的實(shí)現(xiàn)原理,完善訂單管理系統(tǒng)功能,提高其可

14、靠性,健壯性,易用性,擁有良好的用戶體驗(yàn)度。第二章介紹與開發(fā)系統(tǒng)相關(guān)的背景技術(shù),包括有struts, spring, hibernate等關(guān)于mvc架構(gòu)的框架知識介紹。第三章介紹訂單管理系統(tǒng)的需求分析,包括功能性與非功能性。第四章進(jìn)行訂單系統(tǒng)的總體設(shè)計(jì),包括架構(gòu)設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)。其中架構(gòu)設(shè)計(jì)包括分層架構(gòu),訂單管理模塊,用戶登錄管理等模塊設(shè)計(jì)。第五章詳細(xì)介紹訂單管理系統(tǒng)如何實(shí)現(xiàn),如何在系統(tǒng)中融入j2ee,實(shí)現(xiàn)mvc框架等技術(shù)。第六章進(jìn)行論文總結(jié)與前景展望。第二章 相關(guān)技術(shù)介紹2.1 軟件架構(gòu)與開發(fā)平臺本次畢業(yè)設(shè)計(jì)開發(fā)的訂單管理系統(tǒng)的使用者是分布在各個(gè)地方的,包括位于美國的總公司,中國的大連、北京

15、等地,因而訂單管理系統(tǒng)是基于網(wǎng)絡(luò)的,根據(jù)用戶需求決定采用b/s模式進(jìn)行系統(tǒng)開發(fā)。b/s模式是b/s結(jié)構(gòu),即browser/server(瀏覽器/服務(wù)器)結(jié)構(gòu),隨著internet技術(shù)的興起,而發(fā)展而來,且b/s模式下最好的開發(fā)語言也是java。在這種結(jié)構(gòu)下,用戶界面完全通過瀏覽器的訪問實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成流行的mvc結(jié)構(gòu)。b/s結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn),并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu),本次畢設(shè)系統(tǒng)開發(fā)將涉及到體現(xiàn)mvc設(shè)計(jì)模式的開發(fā)框架。在選擇開發(fā)語言時(shí)曾考慮過兩種方案,分別

16、是使用微軟的c#語言與.net平臺與sun公司的java語言與j2ee平臺。2.1.1 方案一:c#與.net平臺c#是微軟開發(fā)的語言,它是運(yùn)行在.net平臺上的產(chǎn)品。c#是一種安全的、穩(wěn)定的、簡單的,由c和c+衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承c和c+強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。c#綜合了vb簡單的可視化操作和c+的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.net開發(fā)的首選語言。它看起來與java有著驚人的相似,但是c#與java有著明顯的不同它包括了諸如單一繼承、接口、與java幾乎同樣

17、的語法和編譯成中間代碼再運(yùn)行的過程。但它與java還是存在很大的不同,它借鑒了delphi的一個(gè)特點(diǎn),與com(組件對象模型)是直接集成的,而且它是微軟公司.net windows網(wǎng)絡(luò)框架的主角。并且c#成為ecma與iso標(biāo)準(zhǔn)規(guī)范。c#看似基于c+寫成,但又融入其它語言如delphi、java、vb等 1。c#語言具有很多優(yōu)點(diǎn),尤其是有c+基礎(chǔ)的話入門也很快,且個(gè)人認(rèn)為.net平臺也可能成為未來的趨勢,但由于c#程序的運(yùn)行需要裝有.net框架平臺的支持,而且由于c#是非開源的,如果在今后系統(tǒng)的實(shí)現(xiàn)中出現(xiàn)問題不好找到解決方案,經(jīng)過綜合考慮后還是決定選用sun公司的java語言與j2ee平臺作為

18、開發(fā)語言與平臺。2.1.2 方案二:java與j2ee平臺java是由已被oracle(甲骨文)收購的sun公司于1995年5月推出的java程序設(shè)計(jì)語言和java平臺的總稱。java的出現(xiàn)主要是由于互聯(lián)網(wǎng)的誕生,它是面向?qū)ο缶幊陶Z言,不同于c語言是面向過程的語言,java語言的特性主要可概括為:面向?qū)ο?,分布式,健壯性,安全性,體系結(jié)構(gòu)中立,可移植,高性能,多線程。用java實(shí)現(xiàn)的hotjava瀏覽器由于其支持java applet充分顯示了java的魅力:跨平臺、動態(tài)的web、internet計(jì)算。java被廣泛接受并推動了web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持java applet。另

19、一方面,java技術(shù)也不斷更新 2。java平臺由java虛擬機(jī)(java virtual machine)和java 應(yīng)用編程接口(application programming interface、簡稱api)構(gòu)成。java 應(yīng)用編程接口為java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺上安裝一個(gè)java平臺之后,java應(yīng)用程序就可運(yùn)行?,F(xiàn)在java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。java分為三個(gè)體系javase(java2 platform standard edition,java

20、平臺標(biāo)準(zhǔn)版),javaee(java 2 platform,enterprise edition,java平臺企業(yè)版),javame(java 2 platform micro edition,java平臺微型版)。經(jīng)過仔細(xì)的考慮與選擇比較后,java語言的跨平臺性以及其開源性成為本次畢業(yè)設(shè)計(jì)系統(tǒng)開發(fā)選擇其的主要原因。javaee也稱為j2ee平臺,是本次畢業(yè)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)的平臺。2.2 b/s模式j(luò)avaweb開發(fā)框架介紹2.2.1 struts框架在介紹struts框架之前,先介紹傳統(tǒng)的jsp模式1與jsp模式2,jsp的兩種模式分別如圖2-1與圖2-2所示:圖2-1 jsp模式1圖2-2

21、jsp模式2在jsp模式1架構(gòu)中,jsp頁面獨(dú)立地負(fù)責(zé)處理請求和發(fā)送反饋給客戶端。這里仍然有內(nèi)容和表現(xiàn)的分離,因?yàn)樗械臄?shù)據(jù)訪問是使用bean完成的。盡管模式1架構(gòu)應(yīng)該很適合簡單應(yīng)用,但是對于復(fù)雜的實(shí)現(xiàn)是不可取的。這種結(jié)構(gòu)的任意使用通常會導(dǎo)致大量的腳本和java代碼嵌入到j(luò)sp頁面中,特別是在有大量的請求需要處理的情況下。這樣的情況在開發(fā)小程序時(shí)可能不會有太大問題,但隨著程序規(guī)模的擴(kuò)大,團(tuán)隊(duì)人員合作完成項(xiàng)目時(shí),這種開發(fā)模式將帶來極大的弊端,程序的緊耦合性,將給今后的修改,帶來極大麻煩。jsp模式2,是一個(gè)為動態(tài)內(nèi)容服務(wù)的混合方案,因?yàn)樗瑫r(shí)使用了servlet和jsp。它利用了兩種技術(shù)的優(yōu)勢,

22、使用jsp產(chǎn)生表現(xiàn)層而servlet負(fù)責(zé)執(zhí)行任務(wù)。在這里,servlet扮演控制器的角色,負(fù)責(zé)請求處理和產(chǎn)生jsp要使用的bean和對象,以及根據(jù)客戶的動作決定下一步轉(zhuǎn)發(fā)到哪一個(gè)jsp頁面。特別要注意的是jsp頁面內(nèi)部并沒有處理邏輯;它只是簡單地負(fù)責(zé)取得可能是servelet事先創(chuàng)建的對象和bean,并為在了靜態(tài)模版中插入從servlet釋放出動態(tài)內(nèi)容。這樣能形成表現(xiàn)與內(nèi)容的分離,使得開發(fā)團(tuán)隊(duì)里的程序開發(fā)者和頁面美工的角色與責(zé)任能夠清晰。程序的應(yīng)用越復(fù)雜,使用模式2帶來的好處就越多。下面介紹說明幾個(gè)有關(guān)mvc設(shè)計(jì)模式的基本概念 3:框架(framework):軟件架構(gòu)中的框架是指可以重用的,可

23、復(fù)用的設(shè)計(jì)構(gòu)件,其代碼可重用性較大,多用來產(chǎn)生定制程序。模型(model):就是封裝了數(shù)據(jù)和所有基于這些數(shù)據(jù)的操作方法,主要是事務(wù)邏輯。視圖(view):就是封裝的用戶界面的相關(guān)信息,用于基于瀏覽器的數(shù)據(jù)顯示。控制器(control):就是封裝外界作用于對數(shù)據(jù)流向的控制和模型的操作等。mvc模式:模型+視圖+控制器的模式(model+view+controler)。servlet:是用java編寫的server端程序,提供對客戶端程序的響應(yīng)。struts框架(本文簡稱“struts”)是apache jakarta項(xiàng)目組的一個(gè)開源項(xiàng)目的組成部分,目前應(yīng)用最廣泛、最成熟的實(shí)現(xiàn)mvc框架之一,它是

24、開放源代碼,該框架為應(yīng)用系統(tǒng)的開發(fā)者提供了一個(gè)成本低廉、功能強(qiáng)大、結(jié)構(gòu)清晰、擴(kuò)展容易及維護(hù)方便的平臺 4。圖2-1是從mvc的角度來觀察struts框架中的組件 5:圖2-1 struts概覽圖struts框架的基本構(gòu)成如圖2-3所示。 圖2-3 struts基本構(gòu)成圖controller:控制器由actionservlet類來實(shí)現(xiàn),它是struts框架中的核心組件。actionservlet繼承了javax.servlet.http.httpservlet類,它在mvc模型中扮演控制器的角色。actionservlet主要負(fù)責(zé)接收http請求信息,根據(jù)配置文件struts-config.xm

25、l的配置信息,把請求轉(zhuǎn)發(fā)給適當(dāng)?shù)腶ction對象。如果該action對象還不存在,actionservlet會先創(chuàng)建這個(gè)action對象 6。 model:模型表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯。actionform bean在會話級或請求級表示模型的狀態(tài),而不是在持久級。它可以表示客戶的表單數(shù)據(jù),jsp文件使用struts標(biāo)簽讀取來自actionform bean的信息。對于大型應(yīng)用,業(yè)務(wù)邏輯通常由java bean組件來實(shí)現(xiàn)。在actionform類中提供了validate()方法,它用于對客戶提交的表單數(shù)據(jù)進(jìn)行驗(yàn)證(validation)。通常,在validate方法中只是對表單數(shù)據(jù)進(jìn)行一般性

26、的語法或格式檢查。validate()方法返回一個(gè)actionerrol對象。如果表單驗(yàn)證失敗,在actionform對象中就會包含一個(gè)或多個(gè)actionerror對象。如果validate()方法返回null或者返回一個(gè)不包含actionerror的actionerror對象,那么就表示表單驗(yàn)證成功 7。view:視圖就是一組jsp文件。在這些jsp文件中沒有業(yè)務(wù)邏輯,也沒有模型信息,只有標(biāo)簽,這些標(biāo)簽可以是標(biāo)準(zhǔn)的jsp標(biāo)簽或者struts標(biāo)簽庫中的標(biāo)簽。 2.2.2 spring框架由于ejb的復(fù)雜性,而本次畢業(yè)設(shè)計(jì)實(shí)現(xiàn)的訂單管理系統(tǒng)是一個(gè)輕量級的企業(yè)運(yùn)用,spring恰恰是解決問題的最好

27、方案。spring是一個(gè)開源框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。spring使用基本的javabean來完成以前只可能由ejb完成的事情。spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何java應(yīng)用都可以從spring中受益。簡單來說,spring是一個(gè)輕量級的控制反轉(zhuǎn)(ioc)和面向切面(aop)的容器框架。輕量性:完整的spring框架可以在一個(gè)大小只有1mb多的jar文件里發(fā)布。并且spring所需的處理開銷也是微不足道的。此外,spring是非侵入式的,spring應(yīng)用中的對象不依賴于spring的特定類??刂品崔D(zhuǎn):一個(gè)對象依賴的其它對象

28、會通過被動的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。面向切面:spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)進(jìn)行內(nèi)聚性的開發(fā)。正是基于這些優(yōu)秀的特性,spring是本次畢設(shè)訂單管理系統(tǒng)實(shí)現(xiàn)替代ejb的最好框架 8。 2.2.3 hibernate框架訂單管理系統(tǒng)涉及到數(shù)據(jù)交互,必然需要數(shù)據(jù)庫的支持,在程序進(jìn)行開發(fā)時(shí)需要編寫數(shù)據(jù)庫連接驅(qū)動,每進(jìn)行一次數(shù)據(jù)交互都涉及到數(shù)據(jù)庫操作,這就需要每次都與數(shù)據(jù)庫建立連接,對數(shù)據(jù)進(jìn)行操作完成后還需要進(jìn)行關(guān)閉連接,非常繁瑣與低效率 9。而hibernate是對jdbc進(jìn)行了輕量級的封裝,一種高效強(qiáng)大的持久層查詢服務(wù)

29、器,以面向?qū)ο蟮姆绞?,解決數(shù)據(jù)庫的交互問題 10。與此同時(shí),它還是一種非強(qiáng)迫性的解決方案,可以與java服務(wù)器和一些數(shù)據(jù)庫進(jìn)行平穩(wěn)地集成。hibernate是一個(gè)工具,而不是一個(gè)j2ee服務(wù)器,利用它來做為持久層的技術(shù)方案,還可以基于它來完成對ejb3.0標(biāo)準(zhǔn)的實(shí)現(xiàn) 11。 圖2-5是hibernate體系結(jié)構(gòu)方案,抽象出應(yīng)用層,脫離jdbc/jta api的底層,hibernate來負(fù)責(zé)與數(shù)據(jù)庫交互 12。 圖2-5 hibernate體系結(jié)構(gòu)方案圖2.3 訂單系統(tǒng)開發(fā)環(huán)境開發(fā)訂單管理系統(tǒng)的機(jī)器為宏基個(gè)人筆記本電腦。硬件設(shè)備詳細(xì)信息見表2-1。表2-1 系統(tǒng)開發(fā)機(jī)器硬件參數(shù)參數(shù)服務(wù)器數(shù)據(jù)庫服

30、務(wù)器開發(fā)(測試)機(jī)器cpuceleon cpu 1.8ghzceleon cpu 1.8ghz內(nèi)存ddr2 1gb ddr2 1gb硬盤st3160812as 80gst3160812as 80g 開發(fā)系統(tǒng)使用的主要開發(fā)軟件有my eclipse試用版,tomcat,microsoft visio等。軟件環(huán)境詳細(xì)信息見表2-2。表2-2 軟件開發(fā)環(huán)境軟件服務(wù)器開發(fā)(測試)機(jī)器數(shù)據(jù)庫服務(wù)器操作系統(tǒng)windows xpwindows xp數(shù)據(jù)庫軟件mysqlmysqljdk/jre1.6.0_051.6.0_05web serverapache tomcat 6.0程序開發(fā)工具my eclipse

31、 6.0jsp開發(fā)工具dreamweaver瀏覽器internet explorer 7.0第三章 訂單管理系統(tǒng)需求分析3.1 功能需求食品訂單管理系統(tǒng)是大連新世紀(jì)食品有限公司的內(nèi)部使用系統(tǒng),使用者為美國公司總部,中國公司采購部,出口部,財(cái)務(wù)部,還有給其供貨的供應(yīng)商與蘑菇工廠。大連新世紀(jì)食品公司組織架構(gòu)如圖3-1:圖3-1 大連新世紀(jì)食品公司組織架構(gòu)圖大連新世紀(jì)公司項(xiàng)目的第一階段完成訂單管理系統(tǒng),它的需求是從美國公司下達(dá)采購計(jì)劃開始,追蹤到采購過程管理,直到貨物裝箱出口發(fā)運(yùn)截止。通過該訂單管理系統(tǒng)完成由美國總公司下發(fā)訂單,采購部門接收訂單,并由采購部門發(fā)布訂購信息,供應(yīng)商提供商品信息,采購部門

32、對商品信息做出篩選,并判斷采購計(jì)劃是否需要修改,在采購計(jì)劃需要修改時(shí)向美國總部進(jìn)行反饋,反饋后美國公司從新制定采購計(jì)劃,按新計(jì)劃下單。如果不需要修改直接將訂單轉(zhuǎn)給出口部,出口部向供應(yīng)商及工廠下訂單訂貨,再由供應(yīng)商及工廠按照備貨單備貨,出口部根據(jù)驗(yàn)收單對采購產(chǎn)品進(jìn)行驗(yàn)貨,再根據(jù)裝箱單負(fù)責(zé)驗(yàn)貨裝箱,并向財(cái)務(wù)部發(fā)放付款通知,財(cái)務(wù)部能夠通過付款通知進(jìn)行查詢確認(rèn),同時(shí)財(cái)務(wù)部獲得對賬單,通知美國總部付款。3.1.1 用例描述與用例圖1美國公司美國公司根據(jù)市場需求確定訂購產(chǎn)品的信息(包括產(chǎn)品種類,數(shù)量,級別等);每周報(bào)一次在庫產(chǎn)品庫存量;接受中國采購部門的信息反饋,并作出回復(fù);負(fù)責(zé)付款審批;還可以對訂購產(chǎn)品

33、進(jìn)行實(shí)時(shí)查詢即訂單處于何種狀態(tài)(包括采購中,驗(yàn)貨中,付款,裝船等)。其用例圖可表示為圖3-2:圖3-2 美國公司用例圖2. 采購部向供應(yīng)商發(fā)訂購信息(包括產(chǎn)品種類,數(shù)量,級別等);跟供應(yīng)商了解詳細(xì)產(chǎn)品信息;根據(jù)以上信息,進(jìn)而與供應(yīng)商/工廠確定價(jià)格,判斷什么時(shí)間給美國公司出這批貨,以及建議美國調(diào)整采購日期和數(shù)量,形成信息反饋;采購部要能接受美國公司查詢了解這些貨完成到什么程度,提供產(chǎn)品最新信息。 另外采購部采購分為兩種情況:a.對外部供應(yīng)商采購的流程:a)美國公司下達(dá)采購計(jì)劃出口部b)采購部向供應(yīng)商詢價(jià)c)跟供應(yīng)商確定價(jià)格d)下發(fā)訂單:一家或幾家供應(yīng)商e)供應(yīng)商裝箱發(fā)貨(一期項(xiàng)目,系統(tǒng)的流程管理

34、到這里)如何獲得成功發(fā)貨反饋f)監(jiān)控海運(yùn)過程,在途庫存g)貨到美國h)按合同時(shí)間付款i)質(zhì)量有問題,追溯回來:最終成品每箱一定是一家供應(yīng)商的貨,完全可追溯。b. 對內(nèi)部加工廠采購(與“對外部供應(yīng)商采購”類似,但多出以下幾個(gè)特性)a)多了一個(gè)收原料的環(huán)節(jié),包括原料詢價(jià),原料定價(jià),下發(fā)原廠b)工廠驗(yàn)收情況,和財(cái)務(wù)銜接c)供應(yīng)商評估,給原料打分d)加工過程e)委托加工(自采原料)和“對內(nèi)部加工廠采購”一樣。采購部用例圖如圖3-3所示:圖3-3 采購部用例圖3. 供應(yīng)商/工廠提供產(chǎn)品信息:包括產(chǎn)品(交貨日期,價(jià)格,質(zhì)量規(guī)格等級等詳細(xì)信息)。根據(jù)訂單備貨,提供查詢(產(chǎn)品的詳細(xì)信息),提供查詢(產(chǎn)品詳細(xì)信

35、息)。工廠還需在系統(tǒng)中錄入:生產(chǎn)進(jìn)度;產(chǎn)量;出口數(shù)量;出成率;廢品數(shù)量;供應(yīng)商用例圖如圖3-4所示:圖3-4 供應(yīng)商用例圖4. 出口部根據(jù)從采購部獲得的信息,下采購訂單(訂單包括內(nèi)容),接受供應(yīng)商發(fā)來的驗(yàn)貨單,驗(yàn)貨(合格標(biāo)準(zhǔn)),檢驗(yàn)合格形成裝箱單,通知財(cái)務(wù)付款。出口部用例圖如圖3-5:圖3-5 出口部用例圖5. 財(cái)務(wù)部接受出口部的付款通知,并向供應(yīng)商查詢核實(shí)價(jià)格,生成對賬單;輸入付款發(fā)票信息;以備美國公司查詢;如果供應(yīng)商有網(wǎng)絡(luò)條件,可以查詢對賬。財(cái)務(wù)部用例圖如圖3-6:圖3-6 財(cái)務(wù)部用例圖對用例的描述與用例圖的綜合分析,訂單管理系統(tǒng)整體功能可以用圖3-7描述:圖3-7 訂單管理系統(tǒng)功能圖3.

36、2 非功能需求3.2.1 健壯性系統(tǒng)采用java語言開發(fā),程序具有一定的可靠性,可以正確地運(yùn)行在不同環(huán)境下,可移植性高。當(dāng)出現(xiàn)硬件性故障時(shí),如web服務(wù)器,數(shù)據(jù)庫服務(wù)器停止提供服務(wù)或網(wǎng)絡(luò)故障發(fā)生時(shí),停電,系統(tǒng)將不能正常提供服務(wù)。 3.2.2 用戶友好性通過普通瀏覽器即可以使用本系統(tǒng),界面簡潔大方,使用方便,用戶體驗(yàn)度良好。當(dāng)用戶發(fā)出請求對資源的訪問時(shí),系統(tǒng)將對用戶身份驗(yàn)證,當(dāng)用戶具有合法的權(quán)限時(shí),允許訪問資源。3.2.3 有效性一般客戶通過自己的機(jī)器訪問系統(tǒng)時(shí),只要其機(jī)器裝有瀏覽器即可訪問本系統(tǒng),可以有效使用系統(tǒng)進(jìn)行相關(guān)業(yè)務(wù)操作。3.2.4 可維護(hù)性系統(tǒng)是架構(gòu)在b/s模式上的應(yīng)用程序,部署方便

37、,由于是分層架構(gòu),層與層之間松耦合,其中的一層改變不影響其它層,如果用戶頁面需求發(fā)生改變,則只需改動視圖層,大大減少工作量新版本覆蓋以前版本,在容器內(nèi)重新發(fā)布即可。3.2.5 可移植性本訂單管理系統(tǒng)本來就是基于網(wǎng)絡(luò)的,將來如果由于業(yè)務(wù)發(fā)展,需要對程序及服務(wù)器重新部署都非常容易,因?yàn)椴捎胘ava跨平臺語言開發(fā),j2ee本身即可以看作是一個(gè)平臺,在不同的平臺間移植部署都很方便。第四章 訂單管理系統(tǒng)的設(shè)計(jì)4.1 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)包括,系統(tǒng)分層架構(gòu)設(shè)計(jì),數(shù)據(jù)設(shè)計(jì),系統(tǒng)功能主要為用戶角色管理、訂單管理,包括(生成、接收、處理、查詢、反饋),用戶訂購產(chǎn)品的庫存動態(tài)查詢、倉儲運(yùn)輸管理。訂單處理業(yè)務(wù)流

38、程如圖4-1:圖4-1 訂單處理業(yè)務(wù)流程圖4.1.1 系統(tǒng)分層架構(gòu)訂單管理系統(tǒng)是基于b/s模式上的,運(yùn)用mvc模式,將訂單系統(tǒng)分為,顯示層,控制層,模型層,數(shù)據(jù)庫持久層。系統(tǒng)分層架構(gòu)示意如圖4-2:圖4-2 系統(tǒng)分層架構(gòu)示意圖4.2 接口設(shè)計(jì)訂單管理系統(tǒng)的接口設(shè)計(jì)主要分為兩大類,頁面顯示與中間業(yè)務(wù)邏輯處理接口、中間業(yè)務(wù)邏輯與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互接口。這樣進(jìn)行接口設(shè)計(jì)是基于程序的分層架構(gòu),自上而下瀑布型開發(fā)流程,層與層之間確定接口,定義好接口函數(shù),功能,層內(nèi)獨(dú)立編程。頁面顯示層與邏輯層主要的接口設(shè)計(jì)如表4-1:表4-1 頁面層與邏輯層接口設(shè)計(jì)接口函數(shù)定義函數(shù)類型函數(shù)參數(shù)返回值departmentb

39、eanarraylist無departmentsgetbusinessarrayliststring idbusinesssgetorderstatearraylistint stateresultgetpricefeedbackarrayliststring purchaseplanidpricefeedbacksgetproductsarraylist無productsgetpurchaseidexistbooleanstring idresultgetpurchaseplansofbusinessarraylistint apurchaseplansgetuservalidatebool

40、eanstring id, string password, string departmentture or falseinboxstorebooleaninbox inboxresultmakebusinesstodbvoidpurchaseplan purchaseplan無productcheckstorebooleanproductcheck productcheckresultpurchaseplanfeedbackstorebooleanpurchaseplanture or falsepurchaseplaninputdbbooleanpurchaseplan purchase

41、planresultsetbusinessstatevoidstring id,int a無storepricefeedbackbooleanpricefeedback pfbresultgetrequireamountintstring productid,date date,int currentstock,string useridneedtoorderamount中間業(yè)務(wù)邏輯層與數(shù)據(jù)存儲層主要的接口設(shè)計(jì)如表4-2:表4-2 業(yè)務(wù)邏輯層與數(shù)據(jù)層接口設(shè)計(jì)接口函數(shù)定義函數(shù)類型函數(shù)參數(shù)返回值getdatefrombusinessdatestring iddategetdeparmentsres

42、ultset無rsgetdepartmentfromuserstringstring iddep表4-2 續(xù)接口函數(shù)定義函數(shù)類型函數(shù)參數(shù)返回值getpasswordfromuserstringstring idpawdgetpricefeedbackresultsetstring purchaseplanidrsgetproductresultset無rsgetpurchaseplanidfrombusinessstringstring ididgetpurchaseplansofbusinessresultsetint arsgetstatefrombusinessarraylistint

43、statelistgetstockamountintstring productid,string useridstockinsertstatetobusinessvoidstring purchaseplanid,date date,int state無makepurchaseplantodbbooleanstring id,string userid,string productid,double amount,double price,date dateresultproductcheckstorebooleanproductcheck productcheckresultqueryon

44、shipresultsetstring productid,string useridrssetbusinessstatevoidstring id,int a無storedatatoinboxbooleanstring date,string purchaseplanid,string useridresultstorepricefeedbackbooleanstring userid,string purchaseplanid,double priceresultgetidfrompurchaseplanbooleanstring idresult4.3 數(shù)據(jù)庫設(shè)計(jì)訂單管理系統(tǒng)數(shù)據(jù)庫主要是

45、為客戶業(yè)務(wù)服務(wù)的,用戶在通過瀏覽器在頁面上的各項(xiàng)操作,都有數(shù)據(jù)庫在后臺動態(tài)支持。用戶從最開始的登錄系統(tǒng),到發(fā)布采購信息,下采購訂單,直至最后整個(gè)業(yè)務(wù)流程結(jié)束,全程都有數(shù)據(jù)庫提供的服務(wù)。根據(jù)用戶需求,設(shè)計(jì)時(shí)將數(shù)據(jù)庫表分為三大類:訂單類,商品類,部門人員類。之所以如此進(jìn)行分類,是基于用戶的實(shí)際業(yè)務(wù)需要。部門類劃分的是系統(tǒng)的使用人員,將它們歸為一張表便于對用戶進(jìn)行管理,分為公司人員、供貨商、國外采購單位。由于業(yè)務(wù)主要是關(guān)于訂貨,采購的原因,涉及到眾多的表單,包括采購計(jì)劃單、采購計(jì)劃反饋單、詢價(jià)單、報(bào)價(jià)單、訂貨單、退貨單、變更單、驗(yàn)收單、賠償單、付款單。商品類的表單包括各種不同類型的商品。4.3.1

46、訂單類訂單類數(shù)據(jù)庫表單的詳細(xì)設(shè)計(jì)如下:1、 采購計(jì)劃單(orderplanform)如表4-3:表4-3 采購計(jì)劃單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵(單據(jù)編號)sptypeidstring是貨物類別amountdouble是采購數(shù)量unitint是數(shù)量單位deaddatedate是交貨日期pricedouble是最高價(jià)格placestring是訂貨單位datedate是填單日期stateint是單據(jù)處理狀態(tài)workeridstring是填單員工編號2、 采購計(jì)劃反饋單(orderplanfeedbackform)如表4-4:表4-4 采購計(jì)劃反饋單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類

47、型允許空備注idstring否主鍵(單據(jù)編號)orderplanformidstring是對應(yīng)采購計(jì)劃單的主鍵pricedouble是變更最高價(jià)格amountdouble是變更采購數(shù)量deaddatedate是變 更交貨日期datedate是填單日期stateint是單據(jù)處理狀態(tài)workeridstring是填單員工編號3、 詢價(jià)單(priceinquireform)如表4-5:表4-5 詢價(jià)單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵(單據(jù)編號)orderplanformidstring是對應(yīng)采購計(jì)劃單的主鍵sptypeidstring是貨物類別amountdouble是采購數(shù)

48、量unitint是數(shù)量單位deaddatedate是交貨日期datedate是填單日期workeridstring是填單員工編號4、 報(bào)價(jià)單(pricefeedbackform)如表4-6:表4-6 報(bào)價(jià)單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵(單據(jù)編號)orderplanformidstring是對應(yīng)采購計(jì)劃單的主鍵sptypeidstring是貨物類別pricedouble是單價(jià)amountdouble是供貨商能提供的數(shù)量lowamountdouble是最低需要的數(shù)量deaddatedate是交貨日期providerstring是供貨單位datedate是填單日期stat

49、eint是接受、拒絕5、 訂貨單(productorderform)如表4-7:表4-7 訂貨單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵(單據(jù)編號)pricefeedbackformidstring是對應(yīng)報(bào)價(jià)單的主鍵amountdouble是采購數(shù)量unitint是數(shù)量單位pricedouble是單價(jià)deadlinedate是交貨日期placeint是訂貨單位providerstring是供貨商編號datedate是填單日期stateint是供貨商確認(rèn)、未確認(rèn)workeridstring是處理員編號6、 退貨單(productreturnform)如表4-8:表4-8 退貨單數(shù)

50、據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵productorderformidstring是對應(yīng)訂貨單的主鍵reasonstring是退貨的原因datedate是填單日期worker_idstring是驗(yàn)收員編號7、 變更單(planchangeform)如表4-9:表4-9 變更單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵orderplanformidstring是對應(yīng)采購計(jì)劃單的主鍵reasonint是變更類型(取消采購計(jì)劃、其他)amountdouble是采購數(shù)量deaddatedate是交貨日期datedate是填單日期worker_idstring是出口部人

51、員編號8、 驗(yàn)收單(productcheckform)如表4-10:表4-10 驗(yàn)收單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵productorderformidstring是對應(yīng)訂單的主鍵resultint是驗(yàn)收結(jié)果(合格、不合格)reasonstring是不合格的原因datedate是填單日期worker_idstring是驗(yàn)收員編號9、 賠償單(compensateform)如表4-11:表4-11 賠償單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵productorderformidstring是對應(yīng)訂單的主鍵amountdouble是賠償數(shù)額reasons

52、tring是賠償原因datedate是填單日期worker_idstring是填表人編號10、付款單(paymentform)如表4-12:表4-12 付款單數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵productorderformidstring是對應(yīng)訂單的主鍵amountdouble是采購數(shù)量pricedouble是單價(jià)deadlinedate是交貨日期sumdouble是付款額datedate是填單日期stateint是付款單狀態(tài)(處理中、已處理)4.3.2 商品類1、商品類型(sp_type)如表4-13:表4-13 商品類型數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstri

53、ng否主鍵namestring是商品名稱descriptionstring是商品描述4.3.3 部門人員類1、國外采購單位(fdepartment)如表4-14:表4-14 國外采購單位據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵namestring是單位名稱descriptionstring是單位描述phone_numberstring是聯(lián)系方式leaderstring是負(fù)責(zé)人編號2、供貨商(provider)如表4-15:表4-15 供貨商數(shù)據(jù)庫表字段名稱數(shù)據(jù)類型允許空備注idstring否主鍵namestring是供貨商名稱leaderstring是負(fù)責(zé)人phonestring是聯(lián)系電話a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論