java畢業(yè)論文--倉庫管理系統(tǒng)_第1頁
已閱讀1頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  計算機與通信學院</b></p><p>  本科生畢業(yè)設計說明書</p><p><b>  倉庫管理系統(tǒng)</b></p><p>  作 者: </p><p>  學 號: </p><p>  專 業(yè): 計

2、算機科學與技術(shù)</p><p>  班 級: </p><p>  指導教師: </p><p><b>  答辯時間: </b></p><p><b>  倉庫管理系統(tǒng)</b></p><p>  Storage Management S

3、ystem</p><p><b>  前 言</b></p><p>  隨著科學技術(shù)的不斷發(fā)展,我們的社會已經(jīng)進入了一個信息化的社會,人們每天都要接收大量的信息和處理大量的數(shù)據(jù),僅靠傳統(tǒng)的紙和筆已不能適應這個時代的要求,人們必須采取新的手段,于是信息技術(shù)進入我們的生活,計算機不再是簡單的計算工具,它已成為我們生活中處理大量信息的不可或缺的手段。在當今產(chǎn)業(yè)競爭越

4、來越激烈的信息時代,企業(yè)經(jīng)營除了降低成本,提高品質(zhì)外,更需要以先進的管理理念來整合企業(yè)內(nèi)部與外部資源。倉庫管理系統(tǒng)正是在這個背景下產(chǎn)生的。</p><p>  本系統(tǒng)正是針對倉庫部門的貨物信息管理,通過對倉庫基本信息﹑出入庫信息等的系統(tǒng)界面設計,將會給管理者帶來極大的方便,具有手工管理無法比擬的優(yōu)點,例如檢索速度快、查找方便、可靠性高、存儲量大、使用時間長等。用計算機管理取代傳統(tǒng)的手工操作,大大減少了管理人員的工

5、作量,提高了工作效率,為獲取詳細的管理信息提供了保證,方便各類人員的查詢和信息保證,增強了管理工作的時效和人員主動性。</p><p>  倉庫管理主要擺闊兩方面:一是倉庫的基本信息,涉及人員信息、庫房信息、供貨商信息、客戶信息;另一項是倉庫業(yè)務管理,包括入庫管理、在庫管理、出庫管理、報表管理。在本系統(tǒng)中側(cè)重實現(xiàn)倉庫的基本信息管理。</p><p><b>  摘 要</

6、b></p><p>  倉庫管理系統(tǒng)是為了實現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、規(guī)范化和自動化,從而提高企業(yè)管理效率而設計的。它完全取代了原來一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準確、高效的完成倉庫管理提供了強有力的工具和管理手段。倉庫管理系統(tǒng)是一個中小型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了倉庫管理的要求。整個系統(tǒng)由基本信息、單據(jù)中心、

7、查詢統(tǒng)計、報表打印、維護設置、幫助等模塊組成。</p><p>  本系統(tǒng)是在以MySql作為后臺數(shù)據(jù)庫,以J2EE為編程語言來開發(fā)的。倉庫管理系統(tǒng)在運行階段,效果好,數(shù)據(jù)準確性高,提高了工作效率,同時也實現(xiàn)了倉庫管理計算機化。</p><p>  關鍵詞: 倉庫; 管理系統(tǒng); 數(shù)據(jù)庫</p><p><b>  Abstract</b>&l

8、t;/p><p>  The administrative system of the warehouse is designed for realizing the systematization, standardization and automization of enterprise's products management and improving efficiency of enterpri

9、ses management. It completely replaces the working way of artificial management originally, prevents from various kinds of mistakes because of administrative staff neglect and the quality problem of management and offere

10、s powerful tool and management way to complet storehouse management for prompt , accu</p><p>  The Warehouse administrative system is designed with regarding MySql as the backstage database and regarding J2

11、EE as programming language . The administrative system is effectual, the high data accuracy during the course of operating , improves working efficiency and realizes computerization for storehouse management at the same

12、time .</p><p>  Key word: The Warehouse ; Administrative System; The Database</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII&

13、lt;/p><p><b>  第1章 緒論1</b></p><p>  第2章 需求分析2</p><p>  2.1倉庫管理系統(tǒng)概述2</p><p>  2.2系統(tǒng)流程圖2</p><p>  2.3數(shù)據(jù)流程圖3</p><p>  2.4倉庫管理系統(tǒng)的角色定

14、義5</p><p>  第3章 總體設計6</p><p>  3.1總體用例圖6</p><p><b>  3.2用例說明6</b></p><p>  3.2.1用戶從瀏覽器登錄7</p><p>  2.2.2供貨商信息查詢用例概述8</p><p>

15、  2.2.3供貨商信息修改用例概述9</p><p>  2.2.4 供貨商信息添加用例概述10</p><p>  3.3功能模塊圖11</p><p>  第4章 詳細設計14</p><p><b>  4.1ER圖14</b></p><p>  4.2數(shù)據(jù)庫設計15<

16、/p><p>  4.2.1數(shù)據(jù)庫的邏輯設計16</p><p>  4.3運行環(huán)境20</p><p><b>  第5章 編碼21</b></p><p>  5.1登陸的實現(xiàn)21</p><p>  5.1.1登陸action21</p><p>  5.1.2

17、登陸過濾器22</p><p>  5.1.3登陸DAO23</p><p>  5.2供貨商的實現(xiàn)23</p><p>  5.2.1供貨商查詢Action23</p><p>  5.2.2供貨商修改Action25</p><p>  5.2.2供貨商添加Action25</p><

18、;p>  5.2.3供貨商DAO26</p><p><b>  第6章 測試30</b></p><p>  6.1登陸測試方案30</p><p>  6.2 數(shù)據(jù)錄入測試30</p><p>  6.3 查詢測試30</p><p>  6.4測試結(jié)論30</p>

19、;<p>  第7章 使用說明31</p><p>  7.1 系統(tǒng)功能簡介31</p><p>  7.2 運行環(huán)境簡介31</p><p>  7.3 系統(tǒng)運行與操作指南32</p><p>  7.4操作演示32</p><p>  7.5特色介紹35</p><p&

20、gt;<b>  第8章 總結(jié)36</b></p><p><b>  參考文獻37</b></p><p><b>  致 謝38</b></p><p><b>  翻譯資料原文39</b></p><p><b>  翻譯資料譯

21、文45</b></p><p><b>  第1章 緒論</b></p><p>  倉庫管理系統(tǒng)是現(xiàn)代倉儲企業(yè)進行貨物管理和處理的業(yè)務操作系統(tǒng)。它可以實現(xiàn)本地一個或幾個倉庫的精細化管理,也可實現(xiàn)制造企業(yè)、物流企業(yè)、連鎖業(yè)在全國范圍內(nèi)、異地多點倉庫的管理;它可以對貨物存儲和出貨等進行動態(tài)安排,可以對倉儲作業(yè)流程的全過程進行電子化操作;可以與客服中心建立數(shù)

22、據(jù)接口使客戶通過互聯(lián)網(wǎng)實現(xiàn)遠程貨物管理,可以與企業(yè)的ERP系統(tǒng)實現(xiàn)無縫連接。</p><p>  在現(xiàn)代企業(yè)中,倉庫管理是一項繁瑣復雜的工作,每天要處理大量的單據(jù)數(shù)據(jù)。為及時結(jié)清每筆業(yè)務,盤點庫存和貨物流動情況,保證企業(yè)生產(chǎn)用料以及貨物安全,庫管人員要花費大量人力物力和時間來作數(shù)據(jù)記錄統(tǒng)計工作。</p><p>  眾所周知,倉庫管理是一種既麻煩又單調(diào)的工作,每天都是重復記錄一些貨物的存入

23、與取出,而且貨物的種類繁多,存取有很大的隨機性,這樣為工作人員帶來了很大的不便,在操作過程中,由于人為的計算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經(jīng)營者增加了很多成本。所以開發(fā)一個可行的倉庫管理系統(tǒng)是十分必要的。</p><p>  本系統(tǒng)以MySQL作為后臺數(shù)據(jù)庫,以java語言來開發(fā)的,不僅實現(xiàn)了倉庫管理的自動化,同時也提高了工作效率。本系統(tǒng)由以下幾個模塊組成:基本信息管理、入庫

24、管理、在庫管理、出庫管理、報表管理。</p><p><b>  第2章 需求分析</b></p><p>  2.1倉庫管理系統(tǒng)概述</p><p>  本系統(tǒng)是為物流管理而設計的高效管理系統(tǒng),系統(tǒng)功能強大,同時操作又比較簡單,而管理人員大多受到過系統(tǒng)的培訓,并能夠操作電腦,所以只要花很少的時間,就能夠讓他們熟悉本系統(tǒng)。</p>

25、<p>  系統(tǒng)開發(fā)的總體任務是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。本倉庫管理系統(tǒng)需要完成功能主要有:</p><p>  ●倉庫管理各種信息的輸入,包括貨物、供應商、客戶、倉庫信息的輸入等。</p><p>  ●倉庫管理各種信息的查詢、統(tǒng)計、修改和維護,包括貨物、單據(jù)查詢,貨物出入、職員操作統(tǒng)計,各種信息的修改和維護等。&l

26、t;/p><p><b>  ●打印報表的生成。</b></p><p>  ●在貨物管理中加入最高儲備和最低儲備字段,對倉庫中的產(chǎn)品實現(xiàn)監(jiān)控和報警。</p><p><b>  ●操作日志的管理。</b></p><p>  ●倉庫管理系統(tǒng)的使用幫助。</p><p><

27、b>  2.2系統(tǒng)流程圖</b></p><p><b>  圖2-2系統(tǒng)流程圖</b></p><p><b>  2.3數(shù)據(jù)流程圖</b></p><p>  數(shù)據(jù)流圖是描述系統(tǒng)的邏輯模型的,圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中流動和處理的情況,它比口頭與文字的描述更直觀地顯示出來系統(tǒng)中數(shù)

28、據(jù)的使用。</p><p>  數(shù)據(jù)流圖簡稱DFD圖,數(shù)據(jù)流圖有四種成分:源點或終點、處理、數(shù)據(jù)存儲表和數(shù)據(jù)流。圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中的流動和處理情況,即使不是專業(yè)的計算機技術(shù)人員也容易理解,是極好的理解工具。它能精確的描述系統(tǒng)的邏輯模型,描述數(shù)據(jù)在MIS中有輸入經(jīng)過存儲、加工處理最后輸出的全過程,是設計者和用戶交流的很好的工具。</p><p>  仔細分析調(diào)查

29、有關倉庫管理信息需求的基礎上,得到如圖4-1所示的本系統(tǒng)所處理的數(shù)據(jù)流程。</p><p>  圖2-3 倉庫管理系統(tǒng)數(shù)據(jù)流程圖</p><p>  通過對企業(yè)倉庫管理的內(nèi)容和數(shù)據(jù)流程分析,設計數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:</p><p>  ●貨物信息,包括的數(shù)據(jù)項有編號、貨物名稱、貨物類別、貨物規(guī)格、計量單位、最高限量、最低限量、備注等。</p><

30、;p>  ●倉庫信息,包括的數(shù)據(jù)項有編號、倉庫名稱、倉庫地點、保管員編號、備注等。</p><p>  ●庫存狀況信息,包括的數(shù)據(jù)項有編號、貨物編號、庫存數(shù)量、倉庫編號等。</p><p>  ●入庫單信息,包括的數(shù)據(jù)項有編號、貨物編號、經(jīng)辦人編號、入庫時間、入庫單價、入庫數(shù)量、供應商編號、倉庫編號、定單狀況、其它金額、備注等。</p><p>  ●出庫單信

31、息,包括的數(shù)據(jù)項有編號、貨物編號、經(jīng)辦人編號、出庫時間、出庫單價、出庫數(shù)量、客戶編號、倉庫編號、定單狀況、其它金額、備注等。</p><p>  ●進行月盤點信息,包括的數(shù)據(jù)項有編號、倉庫編號、盤點時間、經(jīng)辦人編號、盤點數(shù)據(jù)等。</p><p>  ●系統(tǒng)日志信息,包括的數(shù)據(jù)項有用戶名、操作時間、操作內(nèi)容等。</p><p>  ●用戶管理信息,包括的數(shù)據(jù)項有用戶名

32、、用戶密碼、用戶權(quán)限等。</p><p>  另外,還有借入單、借出單、報損單、調(diào)撥單信息等。它們與入庫單、出庫單信息基本類似,這里不再一一例舉。</p><p>  2.4倉庫管理系統(tǒng)的角色定義</p><p>  本系統(tǒng)角色包括兩種,倉管部管理人員和管理部主管,其中,管理部主管擁有整個系統(tǒng)的最高權(quán)限。</p><p><b> 

33、 倉管部管理人員:</b></p><p>  負責倉庫的出入庫管理,可以根據(jù)流向單實現(xiàn)出/入庫操作。具體權(quán)限有:</p><p><b>  ●庫存信息管理</b></p><p><b>  ●庫檢信息維護</b></p><p><b>  ●入庫單信息維護</b&

34、gt;</p><p><b>  ●出庫單信息維護</b></p><p><b>  ●報表信息管理</b></p><p>  ●進行密碼修改、清除表信息等系統(tǒng)設置</p><p>  ●客戶、供應商、庫房等基本信息的查詢?yōu)g覽等</p><p><b>  倉

35、管部主管:</b></p><p>  ●負責整個山口倉管部門的日常運作和管理工作,主要包括:</p><p><b>  部門信息維護</b></p><p><b>  人員信息管理</b></p><p><b>  ●審批</b></p>&l

36、t;p><b>  ●報表信息管理</b></p><p>  ●進行密碼修改、備份數(shù)據(jù)庫等系統(tǒng)設置</p><p><b>  第3章 總體設計</b></p><p><b>  3.1總體用例圖</b></p><p>  用例圖是一個系統(tǒng)建模的啟始點,可以使用用例

37、圖對將要開發(fā)系統(tǒng)的實際工作流程進行業(yè)務建模,從業(yè)務模型的基礎上過度到系統(tǒng)建模的開始,可以通過用例圖來搜集用戶的需求,明確和系統(tǒng)相關的用戶和其他系統(tǒng),同時確定系統(tǒng)將會提供什么功能,以及各個功能間的關系。</p><p>  圖3-1 總體用例圖</p><p><b>  3.2用例說明</b></p><p>  根據(jù)上述用例圖,對登陸和人員信

38、息管理模塊做了如下用例說明:</p><p>  3.2.1用戶從瀏覽器登錄</p><p><b>  用例概述</b></p><p><b>  主事件流</b></p><p><b>  分支事件流</b></p><p>  2.2.2供貨商

39、信息查詢用例概述</p><p><b>  主事件流</b></p><p><b>  分支事件流</b></p><p>  2.2.3供貨商信息修改用例概述</p><p><b>  主事件流</b></p><p><b>  分支

40、事件流</b></p><p>  2.2.4 供貨商信息添加用例概述</p><p><b>  主事件流</b></p><p><b>  分支事件流</b></p><p><b>  3.3功能模塊圖</b></p><p>  功

41、能模塊:山口電腦倉庫管理系統(tǒng)包括倉管部信息管理、業(yè)務管理、系統(tǒng)維護等幾個功能模塊。</p><p>  圖3-3 總功能模塊圖</p><p>  1、倉管部信息管理模塊:為倉管部主管提供對倉管部信息的管理維護的功能。</p><p>  圖3-3-1 倉管部模塊圖</p><p>  一、倉管部信息管理模塊,如圖所示,包括以下功能模塊: &

42、lt;/p><p>  基本信息管理模塊:為管理員提供實現(xiàn)對客戶信息、供貨商信息、庫房信息和倉管人員信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。</p><p><b>  在庫信息管理模塊:</b></p><p>  a、庫存信息管理模塊:為管理員提供實現(xiàn)對短線貨物、貨物信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。<

43、;/p><p>  b、庫檢信息管理模塊:為管理員提供實現(xiàn)對產(chǎn)品庫檢信息、部件庫檢信息、禮品庫檢信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。</p><p>  出庫信息管理模塊:為管理員提供查詢、添加、修改和刪除出庫流向單(包括:產(chǎn)品出庫單、部件出庫單、禮品出庫單)的操作,其中添加和刪除操作后的出庫貨檢單要交由管理部審核。</p><p>  入庫信息管理

44、模塊:為管理員提供查詢、添加、修改和刪除入庫流向單(包括:部件入庫單、產(chǎn)品入庫單、禮品入庫單)的操作、其中添加和刪除操作后的入庫貨檢單要交由管理部審核。</p><p>  報表信息管理模塊:為管理員提供實現(xiàn)對報表信息的管理維護,包括對報表信息查詢、瀏覽和上交等操作。</p><p>  系統(tǒng)設置模塊:為管理員提供實現(xiàn)對密碼修改、清除表信息的功能</p><p> 

45、 、圖3-3-2 管理部模塊圖</p><p>  二、管理部信息管理模塊,如圖所示,包括以下功能模塊:</p><p>  1、倉管部人員管理模塊:為管理員提供實現(xiàn)對倉庫部門信息的管理維護,包括對部門信息查詢、添加、修改和刪除等操作。</p><p>  2、倉庫報表管理模塊:為管理員提供實現(xiàn)對報表信息的管理維護,包括對報表的查詢、瀏覽和刪除等操作。</p&

46、gt;<p>  3、倉庫貨檢信息管理模塊:為管理員提供實現(xiàn)對貨檢信息的管理維護,包括對在庫貨檢信息、入庫貨檢信息和出庫貨檢信息的審核操作。</p><p>  4、基本信息管理模塊:為管理員提供實現(xiàn)對基本信息進行添加、刪除、查詢和瀏覽功能、</p><p>  5、系統(tǒng)設置模塊:為管理員提供實現(xiàn)修改密碼、備份數(shù)據(jù)庫和恢復數(shù)據(jù)庫的功能</p><p>

47、<b>  第4章 詳細設計</b></p><p><b>  4.1ER圖</b></p><p>  ER圖就是實體關系圖,主要完成了對系統(tǒng)中數(shù)據(jù)部分設計。E-R圖為實體-聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。構(gòu)成E-R圖的基本要素是實體型、屬性和聯(lián)系。以下是系統(tǒng)的整個ER圖:</p><

48、;p><b>  圖4-1 ER圖</b></p><p><b>  4.2數(shù)據(jù)庫設計</b></p><p>  數(shù)據(jù)庫設計(Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設計數(shù)據(jù)庫的結(jié)構(gòu)和建立數(shù)據(jù)庫的過程。一般,數(shù)據(jù)庫的設計過程大致可分數(shù)據(jù)庫設計為5個步驟:</p><p>

49、  需求分析;調(diào)查和分析用戶的業(yè)務活動和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們在業(yè)務活動中交流的情況,確定用戶對數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。</p><p>  概念設計;對用戶要求描述的現(xiàn)實世界(可能是一個工廠、一個商場或者一個學校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個概念模型應反映現(xiàn)實世界各部門的信息結(jié)構(gòu)、信息流動情況、信息間的互相制約

50、關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數(shù)據(jù)庫在計算機上的具體實現(xiàn)細節(jié),用一種抽象的形式表示出來。以擴充的實體—(E-R模型)聯(lián)系模型方法為例,第一步先明確現(xiàn)實世界各部門所含的各種實體及其屬性、實體間的聯(lián)系以及對信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現(xiàn)實世界的概念數(shù)據(jù)模型。</p>

51、<p>  邏輯設計;主要工作是將現(xiàn)實世界的概念數(shù)據(jù)模型設計成數(shù)據(jù)庫的一種邏輯模式,即適應于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時,可能還需為各種數(shù)據(jù)處理應用領域產(chǎn)生相應的邏輯子模式。這一步設計的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”。</p><p>  物理設計;根據(jù)特定數(shù)據(jù)庫管理系統(tǒng)所提供的多種存儲結(jié)構(gòu)和存取方法等依賴于具體計算機結(jié)構(gòu)的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結(jié)構(gòu)

52、(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設計的結(jié)果就是所謂“物理數(shù)據(jù)庫”。</p><p>  驗證設計;在上述設計的基礎上,收集數(shù)據(jù)并具體建立一個數(shù)據(jù)庫,運行一些典型的應用任務來驗證數(shù)據(jù)庫設計的正確性和合理性。一般,一個大型數(shù)據(jù)庫的設計過程往往需要經(jīng)過多次循環(huán)反復。當設計的某步發(fā)現(xiàn)問題時,可能就需要返回到前面去進行修改。因此,在做上述數(shù)據(jù)庫設計時就應考慮到今后修改設計的

53、可能性和方便性。</p><p>  數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和有效性,是為防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數(shù)據(jù)庫的完整性包括:實體完整性、參照完整性和用戶定義完整性。實體完整性(Entity Integrity) :現(xiàn)實世界的實體是可區(qū)分的,即它們具有某種唯一性標識。相應地,關系模型中主鍵應作為唯一性標識。因此實體完整性規(guī)則規(guī)定基本關系的所有主

54、鍵(Primary Key)都不能取空值(NULL)。參照完整性(Referential Integrity):參照完整性維護表與表之間的相關性,通常用“主鍵(Primary Key)/外鍵(Foreign Key)”保證,其中Foreign Key可以取NULL值,或取其參照表中Primary Key的取值。用戶定義的完整性(User_defined Integrity ):針對某一具體數(shù)據(jù)的約束條件,由應用環(huán)境決定。數(shù)據(jù)庫完整性約束

55、能夠防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。</p><p>  4.2.1數(shù)據(jù)庫的邏輯設計</p><p>  倉庫管理系統(tǒng)所用的數(shù)據(jù)庫是MySQL,如下是表在數(shù)據(jù)庫的邏輯表示:</p><p>  表assembly的結(jié)構(gòu)</p><p>  表product的結(jié)構(gòu)</p><p>  表assemb

56、ly_product的結(jié)構(gòu)</p><p>  表customer的結(jié)構(gòu)</p><p><b>  表depot的結(jié)構(gòu)</b></p><p>  表employee的結(jié)構(gòu)</p><p>  表supplier的結(jié)構(gòu)</p><p>  表inbill的結(jié)構(gòu)</p><p&

57、gt;  表inlist的結(jié)構(gòu)</p><p>  表makebill的結(jié)構(gòu)</p><p>  表outbill的結(jié)構(gòu)</p><p>  表outlist的結(jié)構(gòu)</p><p>  表report的結(jié)構(gòu)</p><p>  表report_detail的結(jié)構(gòu)</p><p><b>

58、;  4.3運行環(huán)境</b></p><p>  開發(fā)工具:Eclipse,</p><p>  軟件環(huán)境:Tomcat6.0,JDK5.0以上,</p><p>  硬件環(huán)境:cpu:P3 2.0GHZ以上 Memory:512M以上</p><p><b>  第5章 編碼</b></p>

59、<p><b>  5.1登陸的實現(xiàn)</b></p><p>  5.1.1登陸action</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletResponse;</p>

60、;<p>  import javax.servlet.http.HttpSession;</p><p>  import org.apache.struts.action.Action;</p><p>  import org.apache.struts.action.ActionForm;</p><p>  import org.apache

61、.struts.action.ActionForward;</p><p>  import org.apache.struts.action.ActionMapping;</p><p>  import com.javateam3.struts.form.LoginForm;</p><p>  import com.javateam3.whmsys.commo

62、n.dao.LoginService;</p><p><b>  /** </b></p><p>  * MyEclipse Struts</p><p>  * Creation date: 05-30-2009</p><p><b>  * </b></p><p>

63、;  * XDoclet definition:</p><p>  * @struts.action path="/login" name="loginForm" input="/webpage/login.jsp" scope="request" validate="true"</p><p

64、><b>  */</b></p><p>  public class LoginAction extends Action {</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequ

65、est request, HttpServletResponse response) {</p><p>  LoginForm loginForm = (LoginForm) form;</p><p><b>  try{</b></p><p>  String userName=loginForm.getUser_name().trim

66、();</p><p>  String psw=loginForm.getPsw().trim();</p><p>  LoginService loginService=new LoginService();</p><p>  HttpSession session = request.getSession(true);</p><p&g

67、t;  if(loginService.login(userName, psw)){</p><p>  session.setAttribute("username",userName);</p><p>  //如果登錄成功把登錄的名字放在session中以便在過濾器中判斷 </p><p>  return mappi

68、ng.findForward("loginSuccess");</p><p>  //返回到登陸成功頁面</p><p><b>  }else{</b></p><p>  session.invalidate();</p><p>  request.setAttribute("log

69、inError", "用戶或者密碼錯誤!!");</p><p><b>  //返回到錯誤頁面</b></p><p>  return mapping.findForward("loginError");</p><p><b>  }</b></p>&

70、lt;p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return null;</p><p><b>  }</b></p><p><

71、;b>  }</b></p><p>  5.1.2登陸過濾器</p><p>  import java.io.IOException;</p><p>  import javax.servlet.Filter;</p><p>  import javax.servlet.FilterChain;</p>

72、<p>  import javax.servlet.FilterConfig;</p><p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.ServletRequest;</p><p>  import javax.servlet.ServletRes

73、ponse;</p><p>  import javax.servlet.http.*;</p><p>  public class SecurityAndDeny implements Filter {</p><p>  public void destroy() {</p><p><b>  //注銷時調(diào)用</b

74、></p><p><b>  }</b></p><p>  public void doFilter(ServletRequest req, ServletResponse resp,</p><p>  FilterChain chain) throws IOException, ServletException {</p&g

75、t;<p>  HttpServletRequest request = (HttpServletRequest)req; </p><p>  HttpServletResponse response=(HttpServletResponse)resp; </p><p>  HttpSession session = request.getSession(fa

76、lse); </p><p>  //取出來session如果沒有得到空值</p><p>  if (session== null||session.getAttribute("username")== null) {</p><p>  //判斷是否登錄過如果沒有就重定向到登陸頁面 </p>&l

77、t;p>  String temp="你還沒登陸請重新登陸?。?quot;;</p><p>  temp=java.net.URLEncoder.encode(temp.toString(),"utf-8"); response.sendRedirect("http://localhost:8080/JT03EtpLgtWebProject03/login.jsp?

78、loginErr="+temp); </p><p><b>  return;</b></p><p><b>  }</b></p><p>  //如果登錄了就進入請求頁面</p><p>  chain.doFilter(req, resp);</p><p&g

79、t;<b>  }</b></p><p>  public void init(FilterConfig arg0) throws ServletException {</p><p>  //初始化時調(diào)用的方法</p><p><b>  }</b></p><p><b>  }&l

80、t;/b></p><p>  5.1.3登陸DAO</p><p>  public Boolean login(String userName,String psw)</p><p><b>  {</b></p><p>  Employee employee=new Employee();</p>

81、;<p>  employee.setPsw(psw) ;</p><p>  employee.setUserName(userName);</p><p>  List results=findByExample(employee);</p><p>  int length=results.size();</p><p>

82、  if(length==1)</p><p><b>  {</b></p><p>  return true;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</

83、b></p><p>  return false;</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  5.2供貨商的實現(xiàn)</b></p><p>  5.2.1供貨商查詢Action&l

84、t;/p><p>  package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.action;</p><p>  import java.util.List;</p><p>  import javax.servlet.http.HttpServletRequest;</p><p&g

85、t;  import javax.servlet.http.HttpServletResponse;</p><p>  import org.apache.struts.action.Action;</p><p>  import org.apache.struts.action.ActionForm;</p><p>  import org.apache.s

86、truts.action.ActionForward;</p><p>  import org.apache.struts.action.ActionMapping;</p><p>  import com.javateam3.whmsys.common.PageBean;</p><p>  import com.javateam3.whmsys.manage

87、r.basicinfo.supplyerinfo.form.QueryForm;</p><p>  import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;</p><p>  import com.javateam3.whmsys.common.pojo.Supplier;&l

88、t;/p><p>  import com.javateam3.whmsys.common.utils.Tool;</p><p>  public class QueryAction extends Action {</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm for

89、m,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p>  throws Exception {</p><p>  QueryForm queryForm = (QueryForm) form;</p><p>  SupplierServ

90、ice ss = new SupplierService();</p><p>  PageBean pageBean = new PageBean();</p><p>  List list = null;</p><p>  //存放查出來的spplier對象</p><p>  String crrPage = request.get

91、Parameter("cp");</p><p>  int currentPage = pageBean.getCurrentPage();</p><p>  int lineSize = pageBean.getLineSize();</p><p>  Supplier supplier = change(queryForm);</

92、p><p>  if (crrPage != null) {</p><p>  currentPage = Integer.parseInt(crrPage);</p><p><b>  } else {</b></p><p>  int allRecorders = ss.getCount(supplier);<

93、;/p><p>  Tool.setALLRECORDERS(allRecorders);</p><p>  Tool.setPAGESIZE((allRecorders + lineSize - 1) / lineSize);</p><p>  pageBean.setAllRecorders(allRecorders);</p><p>

94、  pageBean.setPageSize((allRecorders + lineSize - 1) / lineSize);</p><p><b>  }</b></p><p>  list = ss.queryByExample(supplier, currentPage, lineSize);</p><p>  pageBean

95、.setCurrentPage(currentPage);</p><p>  request.setAttribute("pageBean", pageBean);</p><p>  request.setAttribute("list", list);</p><p>  //把查詢出來的supplier對象放在requ

96、est里</p><p>  return mapping.findForward("supplierResult");</p><p><b>  }</b></p><p>  //把form表單里的東西轉(zhuǎn)化為supplier對象</p><p>  public Supplier change(

97、QueryForm queryForm) {</p><p>  Supplier supplier = new Supplier();</p><p>  if (queryForm.getSupplierId() != null</p><p>  && !queryForm.getSupplierId().equals(""

98、))</p><p>  supplier.setSupplierId(queryForm.getSupplierId());</p><p>  if (queryForm.getAddress() != null</p><p>  && !queryForm.getAddress().equals(""))</p>

99、;<p>  supplier.setAddress(queryForm.getAddress());</p><p>  if (queryForm.getName() != null && !queryForm.getName().equals(""))</p><p>  supplier.setName(queryForm.getN

100、ame());</p><p>  if (queryForm.getCredit() != null && !queryForm.getCredit().equals(""))</p><p>  supplier.setCredit(queryForm.getCredit());</p><p>  if (queryForm

101、.getPhone() != null && !queryForm.getPhone().equals(""))</p><p>  supplier.setPhone(queryForm.getPhone());</p><p>  if (queryForm.getRemark() != null && !queryForm.getR

102、emark().equals(""))</p><p>  supplier.setRemark(queryForm.getRemark());</p><p>  return supplier;</p><p><b>  }</b></p><p><b>  }</b>&

103、lt;/p><p>  5.2.2供貨商修改Action</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletResponse;</p><p>  import org.apache.stru

104、ts.action.Action;</p><p>  import org.apache.struts.action.ActionForm;</p><p>  import org.apache.struts.action.ActionForward;</p><p>  import org.apache.struts.action.ActionMapping

105、;</p><p>  import com.javateam3.whmsys.common.pojo.Supplier;</p><p>  import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.ModifyForm;</p><p>  import com.javateam3.whmsy

106、s.manager.basicinfo.supplyerinfo.service.SupplierService;</p><p>  public class ModifyAction extends Action {</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p&

107、gt;<p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  ModifyForm modifyForm = (ModifyForm) form;</p><p>  Supplier supplier = new Supplier();</p><p> 

108、 supplier.setAddress(modifyForm.getAddress());</p><p>  supplier.setCredit(modifyForm.getCredit());</p><p>  supplier.setName(modifyForm.getName());</p><p>  supplier.setPhone(modif

109、yForm.getPhone());</p><p>  supplier.setRemark(modifyForm.getRemark());</p><p>  supplier.setSupplierId(modifyForm.getSupplierId());</p><p>  SupplierService ss = new SupplierServi

110、ce();</p><p><b>  try {</b></p><p>  ss.upDate(supplier);</p><p>  return mapping.findForward("success");</p><p>  } catch (Exception e) {</p&g

111、t;<p>  e.printStackTrace();</p><p>  return mapping.findForward("error");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

112、  }</b></p><p>  5.2.2供貨商添加Action</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletResponse;</p><p>  import o

113、rg.apache.struts.action.Action;</p><p>  import org.apache.struts.action.ActionForm;</p><p>  import org.apache.struts.action.ActionForward;</p><p>  import org.apache.struts.action

114、.ActionMapping;</p><p>  import com.javateam3.whmsys.common.pojo.Supplier;</p><p>  import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.AddForm;</p><p>  import com.java

115、team3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;</p><p>  public class AddAction extends Action {</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form

116、,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  AddForm addForm = (AddForm) form;</p><p>  Supplier supplier = new Supplier();</p><p>  

117、supplier.setAddress(addForm.getAddress());</p><p>  supplier.setCredit(addForm.getCredit());</p><p>  supplier.setName(addForm.getName());</p><p>  supplier.setPhone(addForm.getPhon

118、e());</p><p>  supplier.setRemark(addForm.getRemark());</p><p>  supplier.setSupplierId(addForm.getSupplierId());</p><p>  SupplierService ss = new SupplierService();</p><

119、;p><b>  try {</b></p><p>  ss.insert(supplier);</p><p>  return mapping.findForward("success");</p><p>  } catch (Exception e) {</p><p>  e.pri

120、ntStackTrace();</p><p>  //出現(xiàn)異常打印軌跡</p><p>  return mapping.findForward("error");</p><p><b>  }</b></p><p><b>  }</b></p><p

121、><b>  }</b></p><p>  5.2.3供貨商DAO</p><p>  package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.dao;</p><p>  import java.util.ArrayList;</p><p>  

122、import java.util.List;</p><p>  import org.hibernate.Criteria;</p><p>  import org.hibernate.LockMode;</p><p>  import org.hibernate.Query;</p><p>  import org.hibernat

123、e.Session;</p><p>  import org.hibernate.Transaction;</p><p>  import org.hibernate.criterion.Example;</p><p>  import com.javateam3.whmsys.common.dao.BaseHibernateDAO;</p>&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論