版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于J2EE的網(wǎng)絡(luò)物流系統(tǒng)</p><p><b> 摘要 </b></p><p> 隨著電子商務(wù)技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,現(xiàn)代物流技術(shù)也在不斷進步。物流技術(shù)是指與物流要素活動有關(guān)的所有專業(yè)技術(shù)的總稱,包括各種操作方法、管理技能等,如流通加工技術(shù)、物品包裝技術(shù)、物品標識技術(shù)、物品實時跟蹤技術(shù),物流存儲技術(shù)等;物流技術(shù)還包括物流規(guī)劃、物流評價
2、、物流設(shè)計、物流策略等;當(dāng)計算機網(wǎng)絡(luò)技術(shù)的應(yīng)用普及后,物流技術(shù)中綜合了許多現(xiàn)代技術(shù)如GIS(地理信息系統(tǒng))、GPS(全球衛(wèi)星定位)、EDI(電子數(shù)據(jù)交換)、BAR CODE(條碼)等。物流業(yè)在采用某些現(xiàn)代信息技術(shù)方面的成功經(jīng)驗和規(guī)范集成,為電子商務(wù)的推廣普及鋪平了道路。例如世界零售業(yè)巨頭美國沃爾瑪早已采用GPS進行物流跟蹤和監(jiān)控來保證商品及時、可靠、安全的到達各個銷售地點。</p><p> 雖然GPS在商業(yè)方
3、面的應(yīng)用在我國目前來說還不太現(xiàn)實,成本也比較高。但是互聯(lián)網(wǎng)在我國的普及和發(fā)展已經(jīng)非常成熟和穩(wěn)固,我們利用現(xiàn)有的網(wǎng)絡(luò)技術(shù)也可以實現(xiàn)對物流的商品的跟蹤監(jiān)控!</p><p> 因此基于以上的考慮在開發(fā)網(wǎng)絡(luò)物流系統(tǒng)—倉儲管理中采用目前比較流行并且技術(shù)已經(jīng)十分成熟的Java三層構(gòu)架技術(shù)來實現(xiàn)倉儲管理對商品庫存信息、供應(yīng)商信息、商品信息、商品入庫信息、商品出庫信息的便捷管理,而數(shù)據(jù)庫則采用輕量級的數(shù)據(jù)庫MySql不但可是
4、對系統(tǒng)數(shù)據(jù)更高效的管理而且便于系統(tǒng)的移植和跨平臺操作,實現(xiàn)了倉儲管理的數(shù)字化、信息化,減少了人力,節(jié)省了財力,提高了企業(yè)運作的效率對有效控制商品庫存量提供了必要的信息情報為企業(yè)節(jié)省了不必要的浪費。因此網(wǎng)絡(luò)物流系統(tǒng)---倉儲管理實現(xiàn)了對商品基本信息、供應(yīng)商信息、出庫單信息、商品分類信息、倉儲管理信息和入庫單信息的查詢、錄入、修改等基本操作。但還有待于進一步發(fā)掘深層次的用戶需求進行二次開發(fā)完善其功能性,使該系統(tǒng)在操作方面更方便、操作界面更加
5、友好。</p><p> [關(guān)鍵詞] 電子商務(wù) 網(wǎng)絡(luò)技術(shù) 物流技術(shù)Java技術(shù)</p><p> 1.1 物流系統(tǒng)整合研究的意義</p><p> 物流系統(tǒng)整合的意義不單單是幾個單獨運行系統(tǒng)的簡單拼裝,而是在幾個系統(tǒng)之間數(shù)據(jù)的共享,資源的重新整合是提高效率和降低企業(yè)運行費用的關(guān)鍵。是對整個運行流程的全面控制、對原物資運行流程的改造。一個全
6、面的物流系統(tǒng)是包括對多方面內(nèi)容的管理,包括供應(yīng)鏈管理、貨物配送管理、訂單管理、供應(yīng)商管理、倉儲管理、以及在工作中涉及到的對工作人員的管理、運輸工具的管理等等。所以說物流系統(tǒng)的整合是一個龐大的、復(fù)雜的、全面的整合工作,特別是對制造行業(yè)的企業(yè)來說,自己的產(chǎn)品能否迅速、安全、可靠的運送到銷售地點、送到用戶的手中,是自己奠定在該行業(yè)地位取得用戶認可的關(guān)鍵,與此同時這樣是自己資金周轉(zhuǎn)的關(guān)鍵。只有照顧好我們的顧客,他們才能照顧好我們的利潤。在一個效
7、率和效果并重的世界里,時間、速度是致勝的關(guān)鍵!</p><p><b> 2.技術(shù)可行性分析</b></p><p> 2.1 Java技術(shù)簡介</p><p> Java語言從它向世人打招呼的那一天開始它就把自己定位在了致力于網(wǎng)絡(luò)應(yīng)用軟件開的語言,它的跨平臺、安全性、完全的面向?qū)ο?,使它成為了互連網(wǎng)應(yīng)用軟件開發(fā)的一個新的寵兒。Java是
8、一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言。具體來說,它具有如下特性:簡單性、面向?qū)ο?、分布式、解釋型、可靠、安全、平臺無關(guān)、可移植、高性能、多線程、動態(tài)性等。</p><p> 2.2 JSP和Servlet技術(shù)優(yōu)勢</p><p> JSP(Java Server Page)是由Sun公司倡導(dǎo),許多公司參與一起建立的動態(tài)網(wǎng)頁技術(shù)標準。JSP是Java陣營中最具代表性的解決方
9、案。Jsp不僅擁有Java一樣的面向?qū)ο笮?、便利性、跨平臺性等優(yōu)點和特性,還擁有Java Servlet的穩(wěn)定性并可以使用Servlet提供API.使用JavaBean可以將網(wǎng)頁和繁瑣的程序運算完全分離,使模塊開發(fā)、HTML及程序設(shè)計的工作分工明確,提高了開發(fā)的效率。目前比較流行的Web程序開發(fā)中,Jsp是比較熱門的一種動態(tài)網(wǎng)頁技術(shù),它依靠Java穩(wěn)定、安全、可移植性好的優(yōu)點成為大、中型網(wǎng)絡(luò)開發(fā)的首選。</p><p
10、> 對于用戶界面的更新,其實就是由 Web Server進行的,所以給人的感覺更新很快。所有的應(yīng)用都是基于服務(wù)器的,所以它們可以時刻保持最新版本。客戶端的接口不是很繁瑣,對于各種應(yīng)用易于部署、維護和修改. JSP的設(shè)計目標主要是提供一種更為簡便、有效的動態(tài)網(wǎng)頁編寫手段,并且增強網(wǎng)頁程序的獨立性、兼容性和可重用性。它是通過以下幾個方面加以實現(xiàn)的: </p><p> 簡便性和有效性:通過前面對 JSP的組
11、成的介紹,可以知道JSP動態(tài)網(wǎng)頁的編寫與一般的靜態(tài)HTML的網(wǎng)頁的編寫是十分相似的。只是在原來的HTML網(wǎng)頁中加入一些JSP專有的標簽,或是一些腳本程序(而且此項不是必需的)。這樣,一個熟悉HTML網(wǎng)頁編寫的設(shè)計人員可以很容易進行JSP網(wǎng)頁的開發(fā)。而且開發(fā)人員完全可以不自己編寫腳本程序,而只是通過JSP獨有的標簽利用別人已寫好的部件來實現(xiàn)動態(tài)網(wǎng)頁的編寫。這樣,一個不熟悉腳本語言的網(wǎng)頁開發(fā)者,完全可以利用JSP做出漂亮的動態(tài)網(wǎng)頁。而這在其
12、他的動態(tài)網(wǎng)頁開發(fā)中是不可思議的! </p><p> 程序的獨立性:JSP是Java API家族的一部分,它擁有一般的Java程序的跨平臺的特性,換句話說,就是擁有程序的對平臺的獨立性。即:Write once, Run anywhere! </p><p> 程序的兼容性:因為 JSP中的動態(tài)內(nèi)容可以各種形式進行顯示,所以它可以為各種客戶提供服務(wù):從使用HTML/DHTML的瀏覽器,
13、到使用WML的各種手提無線設(shè)備(如,移動電話和個人數(shù)字設(shè)備PDA),再到使用XML的B2B應(yīng)用,都可以使用JSP的動態(tài)頁面。 </p><p> 程序的可重用性:前面已經(jīng)提到,在 JSP頁面中可以不直接將腳本程序嵌入,而只是將動態(tài)的交互部分作為一個部件加以引用。這樣,一旦這樣的一個部件寫好,它可以為多個程序重復(fù)引用,實現(xiàn)了程序的可重用性?,F(xiàn)在,大量的標準JavaBean程序庫就是一個很好的例證。</p&g
14、t;<p> Servlet是Java技術(shù)對CGI編程的回答。Servlet程序在服務(wù)器端運行,動態(tài)地生成Web頁面。與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資能取得更高的效率。在傳統(tǒng)的CGI中,每個請求都要啟動一個新的進程,如果CGI程序本身的執(zhí)行時間較短,啟動進程所需要的開銷很可能反而超過實際執(zhí)行時間。而在Servl
15、et中,每個請求由一個輕量級的Java線程處理(而不是重量級的操作系統(tǒng)進程)。 </p><p> 在傳統(tǒng)CGI中,如果有N個并發(fā)的對同一CGI程序的請求,則該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對于Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇,比如緩沖以前的計算結(jié)果,保持數(shù)據(jù)庫連接的活動,等等。 </p>
16、<p> ?。牐燬ervlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會話狀態(tài)等。在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)。 </p><p>
17、?。牐?Servlet用Java編寫,Servlet API具有完善的標準。因此,為I-Planet Enterprise Server寫的Servlet無需任何實質(zhì)上的改動即可移植到Apache、Microsoft IIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet。不僅有許多廉價甚至免費的Web服務(wù)器可供個人或小規(guī)模網(wǎng)站使用,而且對于現(xiàn)有的服務(wù)器,如果它不支持Servlet的話,要加上這部分功能也往往是
18、免費的(或只需要極少的投資)。</p><p> 2.3 MySql和Apache Tomcat介紹</p><p> MySql數(shù)據(jù)庫和SQL Server,Oracle相比是一個輕量級的數(shù)據(jù)庫,由于MySql是一個開源的數(shù)據(jù)庫解決方案因此你可以很方便的修改相關(guān)的配置來滿足你開發(fā)的需要,雖然它的功能和SQL Server Oracle相比沒有它們那么強大但是在開發(fā)中小型B/S應(yīng)用系統(tǒng)
19、時,它完全可以滿足您的需要。它安裝的便捷性,有的版本是綠色安裝直接解壓出來就可以使用;它的跨平臺性也給用戶帶來了方便,最重要的是連接MySql數(shù)據(jù)庫的速度是其他數(shù)據(jù)庫不能比的,對應(yīng)連接速度有很高要求的開發(fā)可以考慮使用此數(shù)據(jù)庫。它最大支持5000萬條記錄,這完全可以滿足你的開發(fā)要求,它對多國語言的支持也方便了不同語種的開發(fā)。</p><p> Aapche的Tomcat是目前被廣泛使用的一款WebApplicat
20、ion服務(wù)器,它是Apache開源項目下的一個子項目。它不僅支持JSP、PHP而且經(jīng)過適當(dāng)?shù)呐渲煤笠部梢灾С諥SP,而且它也是一款跨平臺軟件,對于學(xué)習(xí)者和中小型應(yīng)用項目來說它都是大家的首選并且開發(fā)應(yīng)用已經(jīng)日趨成熟。雖然它在某些功能方面比不上BEA公司的WebLogi和IBM公司的**,但是它是開源免費的所以從這個方面來說它在中小型應(yīng)用中還是很有競爭力的。</p><p> 基于以上技術(shù)的可行性分析后我們決定在網(wǎng)
21、絡(luò)物流系統(tǒng)――倉儲管理的開發(fā)中采用JSP+Servlet+JavaBean,三層體系架構(gòu)的開發(fā)模式。在網(wǎng)絡(luò)軟件開發(fā)技術(shù)方面java有著無可厚非的地位,并且在目前已經(jīng)十分成熟的三層結(jié)構(gòu)在業(yè)界是指表示層(View),業(yè)務(wù)邏輯層(Business logic)以及基礎(chǔ)架構(gòu)層(Infrastructure)。一個最常用的,非常成熟的三層體系架構(gòu)就是,即表示層(View)、控制/中介層(Controller/Mediator) 、業(yè)務(wù)邏輯層(Ja
22、vaBusiness) 和數(shù)據(jù)源層(Data Source)。它其實是在三層架構(gòu)中增加了兩個中間層。控制/中介層位于表示層和領(lǐng)域?qū)又g,數(shù)據(jù)持久層位于領(lǐng)域?qū)雍突A(chǔ)架構(gòu)層之間。而輕量級架構(gòu)Jsp+Servlet+JavaBean可以實現(xiàn)J2EE三層結(jié)構(gòu),Jsp 用于表示層,Servlet用于控制層、業(yè)務(wù)處理層,而JavaBean 用于數(shù)據(jù)源層。</p><p> 3.物流系統(tǒng)倉儲管理需求分析</p>
23、<p> 3.1倉儲管理的特點</p><p> 倉儲管理屬于物流管理范疇。物流管理(Logistics Management)是為了滿足客戶的需求,對商品、服務(wù)和相關(guān)信息從產(chǎn)出點到消費點的合理、有效的流動和儲存,進行規(guī)劃、實施與控制的過程。</p><p> 倉儲管理(Warehousing Management)是物流系統(tǒng)的一部分,它從初始點到消費點存儲產(chǎn)品(原材料、
24、零部件、半成品、成品),提供存儲狀態(tài)、條件和處置等信息?,F(xiàn)代物流中的倉儲是在物流體系中是唯一的靜態(tài)環(huán)節(jié),隨著經(jīng)濟的發(fā)展,需求方式出現(xiàn)了個性化、多樣化的改變,生產(chǎn)方式也變?yōu)槎嗥贩N、小批量的柔性生產(chǎn)方式。物流的特征由少品種、大批量變?yōu)槎嗥贩N、少批量或多批次、小批量,倉庫的功能也從重視保管效率逐漸變?yōu)橹匾暳魍üδ艿膶崿F(xiàn)。儲存相當(dāng)于物流體系的一個節(jié)點。倉儲是物流中的重要環(huán)節(jié),儲存功能相對于整個物流體系來說,既有緩沖與調(diào)節(jié)的作用,也有創(chuàng)值與增效的
25、功能。倉儲管理在現(xiàn)代物流管理中處于重要地位,它不但起著物品儲藏的功能而且對財務(wù)控制、生產(chǎn)供應(yīng)、銷售支持都有很大的作用。合理的庫存控制對減少物品的資金占用有起著關(guān)鍵作用,而且合理的庫存是為生產(chǎn)有序進行提供了可能,商品的銷售也受庫存的影響。因此倉儲管理的控制是否合理、高效是提升企業(yè)競爭力的關(guān)鍵。</p><p> 倉儲管理研究的是商品流通過程中貨物儲存環(huán)節(jié)的管理.即研究商品流通過程中貨物儲存環(huán)節(jié)的業(yè)務(wù)經(jīng)活動,以及為
26、提高經(jīng)濟效益而進行的計劃、組織、指揮、監(jiān)督以及控制活動。倉儲管理主要是從整個商品流通過程的購、銷、儲、運各個環(huán)節(jié)的鏈式關(guān)系中,研究貨物儲存的收、管、發(fā)及其相關(guān)的經(jīng)營活動,以及圍繞貨物儲存業(yè)務(wù)所開展的對人、財、物的運用與管理。要包括商品在庫信息、入口信息、出庫信息、商品位置信息、倉庫位置信息以及縣官的負責(zé)人情況,供應(yīng)商信息、商品分類信息等。</p><p> 倉儲管理既具有一般管理的共性,也體現(xiàn)出其本身的管理特點
27、。從研究和實務(wù)角度來看,物流企業(yè)管理應(yīng)涉及以下諸方面的內(nèi)容:倉儲網(wǎng)點的布置,倉儲設(shè)施的選擇,庫場規(guī)模的確定,倉儲管理自動化,特殊商品的倉儲管理,庫場管理的組織方式,貨源組織,倉儲計劃,倉儲業(yè)務(wù),貨物包裝,貨物養(yǎng)護,庫場治安、消防和生產(chǎn)安全,倉儲成本核算,倉儲經(jīng)濟效益分析,倉儲貨物的保稅的類型,保稅制度和政策,保稅貨物的海關(guān)監(jiān)管,申請保稅倉庫的一般程序,倉儲管理的定量分析方法,倉儲管理中計算機的應(yīng)用以及對倉儲管理發(fā)展的研究。</p&
28、gt;<p> 現(xiàn)代物流具有高科技性和經(jīng)營的廣闊性以及立體性,通過現(xiàn)代信息技術(shù)和對物流流程的重新整合及各種資源的優(yōu)化配置,實現(xiàn)了物資的合理、經(jīng)濟、高效、準確、及時的流動,并使供應(yīng)商和用戶隨時掌握物資流動過程中的各種情況,及的流動,并使供應(yīng)商和用戶隨時掌握物資流動過程中的各種情況,及時進行調(diào)度,應(yīng)對各種突發(fā)事件,最終準確地履行供貨合同,現(xiàn)代物流業(yè)是對傳統(tǒng)物流業(yè)的發(fā)展,是時代發(fā)展的必然趨勢。</p><p
29、> 3.2對倉儲管理的解決方案</p><p> 互聯(lián)網(wǎng)技術(shù)發(fā)展到今天已經(jīng)十分成熟,網(wǎng)絡(luò)在各行各業(yè)的應(yīng)用已經(jīng)得到普及并且B/S結(jié)構(gòu)的網(wǎng)絡(luò)軟件在物流系統(tǒng)方面已經(jīng)得到應(yīng)用。比如說金蝶公司的K3就是一款在企業(yè)用應(yīng)方面的整和包括倉儲,財務(wù),客戶關(guān)系等。不但可以隨時掌控庫存,現(xiàn)金狀況而且對企業(yè)總體運行態(tài)勢得以詳盡了解。B/S架構(gòu)的應(yīng)用軟件在網(wǎng)絡(luò)辦公,網(wǎng)上購物,網(wǎng)上材料集中采購等方面的應(yīng)用還有很大的空間,因為它不像
30、C/S架構(gòu)的軟件有地域空間的限制,這使得它的應(yīng)用更加廣泛。這讓企業(yè)管理人員隨時隨地都能了解企業(yè)的運做狀況,使得問題的解決更加有實效性。</p><p> 在B/S模式的軟件開發(fā)中采用最多的是MVC設(shè)計模式。MVC是一種流行的設(shè)計模式,它是Model-View-Controller的簡稱,即模型-視圖-控制器。它把應(yīng)用程序分成三個層次或者模塊:視圖層、模型層、控制層,它們各自處理自己的任務(wù)。</p>
31、<p> 視圖:向用戶顯示數(shù)據(jù),接受用戶輸入,與模型層交互,向模型查詢業(yè)務(wù)狀態(tài),接受模型發(fā)出的數(shù)據(jù),更新顯示用戶界面。</p><p> 模型:模型是應(yīng)用程序的主體,它用于表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個模型可以同時為多個視圖提供數(shù)據(jù),從而提高了代碼的可重用性。</p><p> 控制器:控制器,顧名思義起控制作用。它接受用戶輸入,并調(diào)用模型和視圖來完成用戶請求。在用戶提交表
32、單時,控制器本身不做任何處理和輸出工作。控制器所做的僅僅時:接受請求,然后調(diào)用模型組件處理請求,最后調(diào)用視圖來顯示模型處理后返回的數(shù)據(jù)。</p><p><b> 其結(jié)構(gòu)如下所示:</b></p><p> MVC模式的使用范圍很廣,這與其具有眾多有點時分不開的,具體來講,MVC有如下優(yōu)點:</p><p> (1)多個視圖共享一個模型。
33、使得同一個模型可以被不同的視圖重用,大大提高了代碼的可重用性。</p><p> (2)由于MVC的各個模塊相對獨立,改變其中一個不會影響其他兩個,所以開發(fā)人員可以構(gòu)建松散耦合的構(gòu)件。</p><p> (3)控制器提高了應(yīng)用程序的靈活性和可配置性??刂破骺梢赃B接不同的模型和視圖,去完成用戶的需求,這樣可以為構(gòu)造應(yīng)用程序提高強有力的手段。</p><p> 因
34、此在開發(fā)網(wǎng)絡(luò)物流系統(tǒng)-----倉儲管理時,采用JSP+Servlet+JavaBean,三層體系架構(gòu)的B/S開發(fā)模式。JSP+Servlet+JavaBean三層體系架構(gòu)的開發(fā)模式在企業(yè)信息化應(yīng)用開發(fā)中已經(jīng)十分完善,已經(jīng)成為網(wǎng)絡(luò)應(yīng)用軟件開發(fā)的主流技術(shù)。不論是在安全性方面還是在開發(fā)的模塊化,面向?qū)ο蠡兴加泻艽蟮膬?yōu)勢所以應(yīng)用此技術(shù)開發(fā)的人也越來越多,使次技術(shù)更趨于完善。</p><p> JSP+Servlet
35、+JavaBean實現(xiàn)了MVC模式:在這種模式中JSP負責(zé)生成動態(tài)網(wǎng)頁,Servlet負責(zé)流程控制,JavaBean負責(zé)業(yè)務(wù)邏輯。在這中JSP Model2模式中流程控制圖如下:</p><p> 4.物流系統(tǒng)倉儲管理系統(tǒng)分析</p><p> 在需求分析確定之后需要對系統(tǒng)進行整體分析和設(shè)計。這包括系統(tǒng)功能的描述、對功能模塊的劃分對系統(tǒng)流程的分析下面首先對系統(tǒng)功能進行描述。</p
36、><p> 4.1系統(tǒng)功能模塊劃分</p><p> 模塊劃分時描述一個系統(tǒng)需求的一個過程,需要將需求分析中的感性描述進行抽象,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)中一個關(guān)鍵過程。分析的根本目的時在開發(fā)者和提出需求的人員之間建立一種理解和溝通的機制。因此,物流系統(tǒng)的倉儲管理需求分析也是根據(jù)開發(fā)者和實際用戶需求一起來完成的。根據(jù)日常倉儲管理的業(yè)務(wù)邏輯把系統(tǒng)劃分如下:</p>&
37、lt;p><b> 用戶操作:</b></p><p><b> 錄入出庫商品信息</b></p><p><b> 查詢出庫單信息</b></p><p><b> 錄入入庫商品信息</b></p><p><b> 查詢?nèi)霂靻?/p>
38、信息</b></p><p><b> 查詢商品位置信息</b></p><p><b> 查詢商品信息</b></p><p><b> 查詢供應(yīng)商信息</b></p><p><b> 管理操作:</b></p>&l
39、t;p> 出庫單商品信息刪除/修改</p><p> 入庫單商品信息刪除/修改</p><p> 供應(yīng)商信息添加/刪除/修改</p><p><b> 添加商品分類信息</b></p><p> 倉庫位置信息添加/刪除/修改</p><p> 職員信息查詢/添加/修改/刪除<
40、;/p><p><b> 用戶權(quán)限管理</b></p><p> 這個系統(tǒng)的模塊結(jié)構(gòu)如下:</p><p> 5.物流系統(tǒng)倉儲管理數(shù)據(jù)庫設(shè)計</p><p> 數(shù)據(jù)庫在整個系統(tǒng)設(shè)計中起著舉足輕重的作用,任何數(shù)據(jù)都要在數(shù)據(jù)庫中進行存儲以保證數(shù)據(jù)在以后的操作實現(xiàn)成為可能。數(shù)據(jù)庫設(shè)計是程序功能性設(shè)計的基礎(chǔ),只有數(shù)據(jù)庫設(shè)計完
41、后程序員才能進行功能性設(shè)計,程序員根據(jù)數(shù)據(jù)庫結(jié)構(gòu)實現(xiàn)相應(yīng)的軟件功能。</p><p> 網(wǎng)絡(luò)物流系統(tǒng)---倉儲管理的數(shù)據(jù)庫名稱為Logistic(物流),使用此數(shù)據(jù)庫的網(wǎng)絡(luò)軟件為 網(wǎng)絡(luò)物流系統(tǒng),它在服務(wù)器上的部署名為Logistic。</p><p> 下面介紹該系統(tǒng)的數(shù)據(jù)庫整體設(shè)計,該系統(tǒng)采用輕量化的數(shù)據(jù)庫解決方案,采用MySql數(shù)據(jù)庫。因為該系統(tǒng)是整個物流系統(tǒng)的一個功能模塊要實現(xiàn)的
42、是倉儲管理,所以數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)涉及到,職員信息、供應(yīng)商信息、商品信息、商品出庫單信息、商品入庫單信息、倉儲位置信息、商品在倉庫中的位置信息等。</p><p><b> 5.1數(shù)據(jù)表設(shè)計</b></p><p> 表5-1 網(wǎng)絡(luò)物流系統(tǒng)(倉儲管理模塊)整個數(shù)據(jù)庫的結(jié)構(gòu)如下:</p><p> 網(wǎng)絡(luò)物流系統(tǒng)(倉儲管理模塊)數(shù)據(jù)庫結(jié)構(gòu)圖如
43、下:</p><p> 5.2 數(shù)據(jù)字典設(shè)計 </p><p> 網(wǎng)絡(luò)物流系統(tǒng)(倉儲管理模塊)數(shù)據(jù)表結(jié)構(gòu)設(shè)計如下:</p><p> 表5-4:CarManageTable(車輛管理表)(注:CarDriverId、CarTeamId為外鍵)</p><p> 表5-5 :CarTeamInfoTable(車隊信息表)(注:Charg
44、eId為外鍵)</p><p> 表5-6:CommCateTable(商品分類表)</p><p> 表5-7:DepartmentInfoTable(部門信息表)</p><p> 表5-9:DiplomaInfoTable(學(xué)歷信息表)</p><p> 表5-10:JobsInfoTable(職務(wù)信息表)</p>
45、<p> 表5-11:EmployeeInfoTable(職員信息表)(注:DepartmentId,JobsId為外鍵)</p><p> 表5-13:GoodsInfoTable(商品信息表)</p><p> (注:GoodsCateId、GoodsSupplyId、GoodsStockId、StockRegionId、TypeId為外鍵)</p>&
46、lt;p> 表5-14:GoodsLocationTable(商品在庫區(qū)域表)</p><p> 表5-15:GoodsRowsTable(商品擺放排號表)</p><p> 表5-16:GoodsSeatsTable(商品擺放座號表)</p><p> 表5-17:LoginTable (職務(wù)信息表)(注:EmployeeId為外鍵)</p&g
47、t;<p> 表5-18:MessageInfoTable(公告信息表)</p><p> 表5-20:StockInInfoTable(入庫單信息表) (注:ChargId、GoodsId、TypeId為外鍵)</p><p> 表5-21:StockOutInfoTable(出庫單信息表)</p><p> (注:ChargeId、Good
48、sId、GoodsReceiveId、TypeId、CommodityId)</p><p> 表5-22:StockRegionInfoTable(商品在庫位置表)</p><p> 表5-23:TypeTable(商品型號信息表)</p><p> 表5-24:SupplyTable(供應(yīng)商信息表)</p><p> 表5-25:
49、WareHouseInfoTable(倉儲信息表)</p><p> 6.物流系統(tǒng)倉儲管理功能性計</p><p> 6.1 系統(tǒng)功能簡介</p><p> 網(wǎng)絡(luò)物流系統(tǒng)倉儲管理的實現(xiàn)的主要功能是實現(xiàn)商品在庫信息的管理、商品出庫管理和商品入庫管理、商品在庫信息的查詢,還包括商品分類信息的管理,倉儲位置信息的管理,倉儲負責(zé)人的管理,公告信息管理等。并包括對用戶的
50、權(quán)限控制,用戶根據(jù)在權(quán)限分配后進行不同的操作。系統(tǒng)登陸主界面如下示意圖:圖6-1</p><p> 下圖為系統(tǒng)主操作界面: 圖6-2</p><p> 6.2 系統(tǒng)功能模塊設(shè)計 </p><p> 6.2.1 公告信息管理</p><p> 公告管理的主要功能是擁有管理員權(quán)限的用戶向普通用戶發(fā)布相關(guān)的
51、工作信息、通告等屬于一個信息發(fā)布的留言板。</p><p> 公告信息發(fā)布示意圖如下:圖6-3</p><p> 表6-1 :公告信息發(fā)布模塊信息描述</p><p> 公告信息發(fā)布功能模塊代碼如下</p><p> MessageInSave.java(Servlet轉(zhuǎn)發(fā)器代碼)</p><p>
52、package com.logistic.servlet;</p><p> import java.io.IOException;</p><p> import javax.servlet.RequestDispatcher;</p><p> import javax.servlet.ServletException;</p><p&
53、gt; import javax.servlet.http.HttpServlet;</p><p> import javax.servlet.http.HttpServletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> import javax.serv
54、let.http.HttpSession;</p><p> import com.logistic.data.DataConnect;</p><p> import java.text.SimpleDateFormat;</p><p> import java.util.Calendar;</p><p> import com
55、.logistic.business.MessageManager;</p><p> import java.sql.Statement;</p><p> import java.sql.ResultSet;</p><p> public class MessageInSave extends HttpServlet {</p><p
56、> private static final long serialVersionUID = -2305260907601477327L;</p><p> HttpSession session=null;</p><p> DataConnect dc=new DataConnect();</p><p> Statement stat=nul
57、l;</p><p> ResultSet rs=null;</p><p> int id=0; //生成公告編號的臨時變量;</p><p> String mid=null; //公告編號</p><p> String
58、 eid=null; //公告發(fā)布者編號</p><p> String mtitle=null; //公告標題</p><p> String mtime=null; //公告發(fā)布時間</p><p> String mconten
59、t=null; //公告內(nèi)容</p><p> int flag=0; //標識公告信息發(fā)布是否成功的標志</p><p> //發(fā)布成功flag>0,否則flag<0;</p><p> RequestDispatcher requestdispatcher; </p>
60、<p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> request.setCharacterEncoding("GB2312");
61、</p><p> response.setContentType("text/html; charset=gb2312");</p><p> session=request.getSession();</p><p> /*---取得messageinfotable表的MessageId并轉(zhuǎn)換成整型,并生成下條記錄的GoodsId---
62、*/</p><p> String sql="select * from messageinfotable order by ID desc limit 1";</p><p><b> try{</b></p><p> stat=dc.getStmtread();</p><p> rs
63、 =stat.executeQuery(sql);</p><p> rs.previous();</p><p> while(rs.next()){</p><p> id=Integer.valueOf(rs.getInt("MessageId"));</p><p><b> }</b&g
64、t;</p><p><b> if(id>0){</b></p><p><b> id+=1;</b></p><p><b> }else{</b></p><p> id=10000+1;</p><p><b> }&
65、lt;/b></p><p> }catch(Exception ex){ex.printStackTrace();}finally{dc.close();}</p><p> /*-----------------------獲取提交信息把數(shù)據(jù)插入數(shù)據(jù)庫-------------------------*/</p><p> mid=String.va
66、lueOf(id);</p><p> eid=(String)session.getAttribute("employeeid");</p><p> mtitle=(String)request.getParameter("messagetitle"); mtime=(String)newSimpleDateFormat("yy
67、yy-MM-ddHH:mm:ss").format(Calendar.getIn stance().getTime());</p><p> mcontent=(String)request.getParameter("messagecontent");</p><p> /*----判斷登陸用戶的loginid是否存在,公告標題是否為null,公
68、告內(nèi)容是否為空-----*/</p><p> if(eid==null||mtitle==null||mcontent==null){</p><p> session.setAttribute("errors", "公告信息添加失敗!");</p><p> requestdispatcher=request.get
69、RequestDispatcher("/errors/errorpage.jsp");</p><p> requestdispatcher.forward(request, response);</p><p><b> }else{</b></p><p><b> try{</b></
70、p><p><b> flag=-10;</b></p><p> MessageManager mm=new MessageManager();</p><p> flag=mm.AddMessage(mid, eid, mtitle, mtime, mcontent);</p><p> if(flag>0
71、){</p><p> session.setAttribute("success", "公告信息添加成功!");</p><p> requestdispatcher=request.getRequestDispatcher("/viewpage/datainput/addmessageinfo.jsp");</p&g
72、t;<p> requestdispatcher.forward(request, response);</p><p><b> }else{</b></p><p> session.setAttribute("errors", "公告信息添加失敗!"); requestdispatcher=
73、request.getRequestDispatcher("/errors/errorpage.jsp");</p><p> requestdispatcher.forward(request, response);</p><p><b> }</b></p><p> }catch(Exception ex){e
74、x.printStackTrace();}</p><p><b> }</b></p><p><b> }</b></p><p> public void doGet(HttpServletRequest request, HttpServletResponse response)</p><
75、;p> throws ServletException, IOException {</p><p> doPost(request,response);</p><p><b> }</b></p><p><b> }</b></p><p> IMessageDAO.java(
76、公告信息發(fā)布的接口文件代碼)</p><p> package com.logistic.dao;</p><p> import java.util.Vector;</p><p> public interface IMessageDAO {</p><p> //獲得公告信息列表</p><p> pu
77、blic Vector MessageSearch(String strsql,int page);</p><p><b> //添加公告信息</b></p><p> public int AddMessage(String messageid,String employeeid,String mpostdatetime,String messagetitl
78、e,String messagecontent);</p><p><b> //刪除公告信息</b></p><p> public int DelMessage(String messageid)</p><p><b> }</b></p><p> MessageManager.ja
79、va(公告信息管理的業(yè)務(wù)功能模塊代碼如下)</p><p> package com.logistic.business;</p><p> import com.logistic.data.DataConnect;</p><p> import com.logistic.model.MessageInfo;</p><p> im
80、port java.sql.ResultSet;</p><p> import java.sql.Statement;</p><p> import com.logistic.business.PageAble;</p><p> import java.util.Vector;</p><p> import com.logis
81、tic.dao.IMessageDAO;</p><p> public class MessageManager implements IMessageDAO{</p><p> DataConnect dc=new DataConnect();</p><p> ResultSet rs=null;</p><p> Stat
82、ement stat=null;</p><p> *********************************************************</p><p> 參數(shù)名稱:strsql(SQL查詢語句) 參數(shù)類型:String</p><p> 參數(shù)名稱:page (跳轉(zhuǎn)頁面的標志) 參數(shù)類型:Int</p>
83、;<p> 返回值: items (返回公告信息) 類型: Vector</p><p> =*********************************************************</p><p> public Vector MessageSearch(String strsql,int page){</p>
84、<p> Vector items=new Vector();</p><p><b> try{</b></p><p> stat=dc.getStmtread();//獲得數(shù)據(jù)庫連接</p><p> rs=stat.executeQuery(strsql);//執(zhí)行SQL語句</p>
85、<p> PageAble pgb=new PageAble(rs);//設(shè)置分頁</p><p> pgb.setPagesize(5);//設(shè)置每頁顯示記錄數(shù)</p><p> pgb.setCurrentpage(1);//設(shè)置起始頁</p><p> pgb.gotoPage(page);
86、//設(shè)置跳轉(zhuǎn)頁</p><p> rs.absolute(pgb.getRowscount());//進行游標定位</p><p><b> int i=0;</b></p><p><b> do{</b></p><p> items.add(newMessageInfo(rs.
87、getString("ID"),rs.getString("MessageId"),</p><p> rs.getString("EmployeeId"),rs.getString("MessageTitle"),rs.getString</p><p> ("MessageTime"
88、),rs.getString("MessageContent")));</p><p> }while(rs.next()&&i<pgb.getCurrentPageRowsCount());</p><p> }catch(Exception ex){ex.printStackTrace();}finally{dc.close();}<
89、/p><p> return items;//返回公告信息</p><p><b> }</b></p><p> *********************************************************</p><p> 參數(shù)名稱:messageid (公告信息編號) 參數(shù)類
90、型:String</p><p> 參數(shù)名稱:employeeid (發(fā)布者編號) 參數(shù)類型:String</p><p> 參數(shù)名稱:mpostdatetime (公告發(fā)布時間) 參數(shù)類型:String</p><p> 參數(shù)名稱:messagetitle (公告標題) 參數(shù)類型: String</p><p> 參
91、數(shù)名稱messagecontent(公告內(nèi)容) 參數(shù)類型: String</p><p> 返回值: flag 類型: Int</p><p> flag>0(公告信息添加成功) flag<0(公告信息添加失敗)</p><p> ***********************
92、**********************************</p><p> public int AddMessage(String messageid,String employeeid,String mpostdatetime,String messagetitle,String messagecontent){</p><p> int flag=-10; //表
93、示公告信息添加是否成功的標志</p><p><b> try{</b></p><p> Stringmid=messageid;</p><p> String eid=employeeid;</p><p> String mdt=mpostdatetime;</p><p>
94、 String mt=messagetitle;</p><p> String mc=messagecontent;</p><p> Stringsqls="insert into messageinfotable(MessageId,EmployeeId,MessageTitle,</p><p> MessageTime,Message
95、Content)values('"+mid+"','"+eid+"','"+mdt+"','"+mt+"','"</p><p><b> +mc+"')";</b></p><p&
96、gt; flag=0; </p><p> flag=dc.updata(sqls);</p><p> if(flag>0){</p><p> System.out.print("公告信息添加成功!");</p><p><b> }else{</b></p>
97、<p> System.out.print("公告信息添加失敗!");</p><p><b> }</b></p><p> }catch(Exception ex){ex.printStackTrace();}finally{dc.close();}</p><p> return flag;<
98、;/p><p><b> }</b></p><p> *********************************************************</p><p> 參數(shù)名稱:messageid(公告信息編號)參數(shù)類型:String</p><p> 返回值: flag
99、 類型: Int</p><p> flag>0(公告信息刪除成功) flag<0(公告信息刪除失敗)</p><p> 開發(fā)日期:2007-05-03</p><p> *********************************************************</p><p
100、> public int DelMessage(String messageid){</p><p> String delmessage="delete from messageinfotable where MessageId="+messageid;</p><p> int flag=0;//標識公告信息刪除是否成功</p>&l
101、t;p><b> try{</b></p><p> flag=dc.updata(delmessage);</p><p> if(flag>0){</p><p> System.out.println("公告信息刪除成功,編號:"+messageid);</p><p>&l
102、t;b> }else{</b></p><p> System.out.println("公告信息刪除失敗,編號:"+messageid);</p><p><b> }</b></p><p> }catch(Exception ex){ex.printStackTrace();}finally{
103、dc.close();}</p><p> return flag;</p><p><b> }</b></p><p><b> }</b></p><p> 6.2.2 商品信息管理</p><p> 商品信息管理主要對商品詳細信息的存儲和統(tǒng)計,商品信息錄入
104、界面設(shè)計如下:</p><p> 商品信息錄入示意圖如下:圖6-4 </p><p> 表6-2:商品信息錄入模塊信息描述</p><p> GoodsInfoSave.java(Servlet轉(zhuǎn)發(fā)器代碼):</p><p> package com.logistic.servlet;</p><p>
105、; import java.io.IOException;</p><p> import java.lang.NumberFormatException;</p><p> import javax.servlet.RequestDispatcher;</p><p> import javax.servlet.ServletException;</
106、p><p> import javax.servlet.http.HttpServlet;</p><p> import javax.servlet.http.HttpServletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> impo
107、rt javax.servlet.http.HttpSession;</p><p> import com.logistic.data.DataConnect;</p><p> import com.logistic.business.GoodsManager;</p><p> import java.sql.Statement;</p>
108、<p> import java.sql.ResultSet;</p><p> public class GoodsInfoSave extends HttpServlet {</p><p> private static final long serialVersionUID = -2305260907601477327L;</p><p>
109、 HttpSession session=null;</p><p> DataConnect dc=new DataConnect();</p><p> Statement stat=null;</p><p> ResultSet rs=null;</p><p> int goodsid;//生
110、成商品信息編號的臨時變量</p><p> String id=null;//商品信息編號</p><p> String name=null;//商品名稱</p><p> String cateid=null;//商品分類編號</p><p> String supplyid=n
111、ull;//商品的供應(yīng)商編號</p><p> String abc=null;//商品ABC分類</p><p> String province=null;//商品產(chǎn)地省</p><p> String city=null;//商品產(chǎn)地市</p><p> String st
112、ockid=null;//商品所在倉庫編號</p><p> float price=0;//商品單價</p><p> int stocknum=0;//商品庫存數(shù)量</p><p> int flag=0;//表示商品是否添加成功</p><p> String
113、 orderdate=null;//商品定購日期</p><p> String stockindate=null;//商品入庫日期</p><p> String unit=null;//商品單位</p><p> String regionid=null;//商品在庫位置信息</p><
114、p> String typeid=null;//商品型號編號</p><p> RequestDispatcher requestdispatcher;</p><p> public GoodsInfoSave() {</p><p><b> super();</b></p><p><
115、;b> }</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> request.setCharact
116、erEncoding("GB2312");</p><p> response.setContentType("text/html; charset=gb2312");</p><p> session=request.getSession();</p><p> /*--------取得goodsinfotable表的
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流倉儲管理系統(tǒng)畢業(yè)設(shè)計----基于j2ee的網(wǎng)絡(luò)物流系統(tǒng)
- 畢業(yè)設(shè)計論文 基于j2ee的網(wǎng)絡(luò)在線考試系統(tǒng)設(shè)計
- 基于j2ee的絡(luò)物流系統(tǒng)設(shè)計
- 基于j2ee的家庭財務(wù)系統(tǒng)畢業(yè)設(shè)計
- 基于j2ee的簡歷投遞管理系統(tǒng)畢業(yè)設(shè)計
- 基于j2ee的問卷調(diào)查系統(tǒng)的畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---j2ee的教學(xué)評估系統(tǒng)
- 畢業(yè)設(shè)計----基于j2ee的博客系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計基于j2ee的博客系統(tǒng)的設(shè)計與實現(xiàn)
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設(shè)計
- 畢業(yè)設(shè)計論文---基于j2ee架構(gòu)的在線招聘系統(tǒng)
- 基于j2ee架構(gòu)的電子商務(wù)系統(tǒng)畢業(yè)設(shè)計
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設(shè)計論文 (2)
- 基于j2ee的卷煙物流成本管理系統(tǒng)
- 基于j2ee的企業(yè)人事信息管理系統(tǒng)畢業(yè)設(shè)計
- 基于j2ee的網(wǎng)絡(luò)保險系統(tǒng)的設(shè)計與實現(xiàn)
- 基于J2EE的畢業(yè)設(shè)計指導(dǎo)系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于J2EE的網(wǎng)絡(luò)考試系統(tǒng)設(shè)計與開發(fā).pdf
- 基于j2ee框架的元器件管理系統(tǒng)畢業(yè)設(shè)計論文
- 基于j2ee框架的個人博客系統(tǒng)項目畢業(yè)設(shè)計論文
評論
0/150
提交評論