版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計(jì)算機(jī)與通信學(xué)院</b></p><p> 本科生畢業(yè)設(shè)計(jì)說明書</p><p><b> 倉庫管理系統(tǒng)</b></p><p> 作 者: </p><p> 學(xué) 號: </p><p> 專 業(yè): 計(jì)
2、算機(jī)科學(xué)與技術(shù)</p><p> 班 級: </p><p> 指導(dǎo)教師: </p><p><b> 答辯時間: </b></p><p><b> 倉庫管理系統(tǒng)</b></p><p> Storage Management S
3、ystem</p><p><b> 前 言</b></p><p> 隨著科學(xué)技術(shù)的不斷發(fā)展,我們的社會已經(jīng)進(jìn)入了一個信息化的社會,人們每天都要接收大量的信息和處理大量的數(shù)據(jù),僅靠傳統(tǒng)的紙和筆已不能適應(yīng)這個時代的要求,人們必須采取新的手段,于是信息技術(shù)進(jìn)入我們的生活,計(jì)算機(jī)不再是簡單的計(jì)算工具,它已成為我們生活中處理大量信息的不可或缺的手段。在當(dāng)今產(chǎn)業(yè)競爭越
4、來越激烈的信息時代,企業(yè)經(jīng)營除了降低成本,提高品質(zhì)外,更需要以先進(jìn)的管理理念來整合企業(yè)內(nèi)部與外部資源。倉庫管理系統(tǒng)正是在這個背景下產(chǎn)生的。</p><p> 本系統(tǒng)正是針對倉庫部門的貨物信息管理,通過對倉庫基本信息﹑出入庫信息等的系統(tǒng)界面設(shè)計(jì),將會給管理者帶來極大的方便,具有手工管理無法比擬的優(yōu)點(diǎn),例如檢索速度快、查找方便、可靠性高、存儲量大、使用時間長等。用計(jì)算機(jī)管理取代傳統(tǒng)的手工操作,大大減少了管理人員的工
5、作量,提高了工作效率,為獲取詳細(xì)的管理信息提供了保證,方便各類人員的查詢和信息保證,增強(qiáng)了管理工作的時效和人員主動性。</p><p> 倉庫管理主要擺闊兩方面:一是倉庫的基本信息,涉及人員信息、庫房信息、供貨商信息、客戶信息;另一項(xiàng)是倉庫業(yè)務(wù)管理,包括入庫管理、在庫管理、出庫管理、報(bào)表管理。在本系統(tǒng)中側(cè)重實(shí)現(xiàn)倉庫的基本信息管理。</p><p><b> 摘 要</
6、b></p><p> 倉庫管理系統(tǒng)是為了實(shí)現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、規(guī)范化和自動化,從而提高企業(yè)管理效率而設(shè)計(jì)的。它完全取代了原來一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準(zhǔn)確、高效的完成倉庫管理提供了強(qiáng)有力的工具和管理手段。倉庫管理系統(tǒng)是一個中小型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了倉庫管理的要求。整個系統(tǒng)由基本信息、單據(jù)中心、
7、查詢統(tǒng)計(jì)、報(bào)表打印、維護(hù)設(shè)置、幫助等模塊組成。</p><p> 本系統(tǒng)是在以MySql作為后臺數(shù)據(jù)庫,以J2EE為編程語言來開發(fā)的。倉庫管理系統(tǒng)在運(yùn)行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時也實(shí)現(xiàn)了倉庫管理計(jì)算機(jī)化。</p><p> 關(guān)鍵詞: 倉庫; 管理系統(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章 總體設(shè)計(jì)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章 詳細(xì)設(shè)計(jì)14</p><p><b> 4.1ER圖14</b></p><p> 4.2數(shù)據(jù)庫設(shè)計(jì)15<
16、/p><p> 4.2.1數(shù)據(jù)庫的邏輯設(shè)計(jì)16</p><p> 4.3運(yùn)行環(huán)境20</p><p><b> 第5章 編碼21</b></p><p> 5.1登陸的實(shí)現(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供貨商的實(shí)現(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 運(yùn)行環(huán)境簡介31</p><p> 7.3 系統(tǒng)運(yùn)行與操作指南32</p><p> 7.4操作演示32</p><p> 7.5特色介紹35</p><p&
20、gt;<b> 第8章 總結(jié)36</b></p><p><b> 參考文獻(xiàn)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è)進(jìn)行貨物管理和處理的業(yè)務(wù)操作系統(tǒng)。它可以實(shí)現(xiàn)本地一個或幾個倉庫的精細(xì)化管理,也可實(shí)現(xiàn)制造企業(yè)、物流企業(yè)、連鎖業(yè)在全國范圍內(nèi)、異地多點(diǎn)倉庫的管理;它可以對貨物存儲和出貨等進(jìn)行動態(tài)安排,可以對倉儲作業(yè)流程的全過程進(jìn)行電子化操作;可以與客服中心建立數(shù)
22、據(jù)接口使客戶通過互聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程貨物管理,可以與企業(yè)的ERP系統(tǒng)實(shí)現(xiàn)無縫連接。</p><p> 在現(xiàn)代企業(yè)中,倉庫管理是一項(xiàng)繁瑣復(fù)雜的工作,每天要處理大量的單據(jù)數(shù)據(jù)。為及時結(jié)清每筆業(yè)務(wù),盤點(diǎn)庫存和貨物流動情況,保證企業(yè)生產(chǎn)用料以及貨物安全,庫管人員要花費(fèi)大量人力物力和時間來作數(shù)據(jù)記錄統(tǒng)計(jì)工作。</p><p> 眾所周知,倉庫管理是一種既麻煩又單調(diào)的工作,每天都是重復(fù)記錄一些貨物的存入
23、與取出,而且貨物的種類繁多,存取有很大的隨機(jī)性,這樣為工作人員帶來了很大的不便,在操作過程中,由于人為的計(jì)算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經(jīng)營者增加了很多成本。所以開發(fā)一個可行的倉庫管理系統(tǒng)是十分必要的。</p><p> 本系統(tǒng)以MySQL作為后臺數(shù)據(jù)庫,以java語言來開發(fā)的,不僅實(shí)現(xiàn)了倉庫管理的自動化,同時也提高了工作效率。本系統(tǒng)由以下幾個模塊組成:基本信息管理、入庫
24、管理、在庫管理、出庫管理、報(bào)表管理。</p><p><b> 第2章 需求分析</b></p><p> 2.1倉庫管理系統(tǒng)概述</p><p> 本系統(tǒng)是為物流管理而設(shè)計(jì)的高效管理系統(tǒng),系統(tǒng)功能強(qiáng)大,同時操作又比較簡單,而管理人員大多受到過系統(tǒng)的培訓(xùn),并能夠操作電腦,所以只要花很少的時間,就能夠讓他們熟悉本系統(tǒng)。</p>
25、<p> 系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成。本倉庫管理系統(tǒng)需要完成功能主要有:</p><p> ●倉庫管理各種信息的輸入,包括貨物、供應(yīng)商、客戶、倉庫信息的輸入等。</p><p> ●倉庫管理各種信息的查詢、統(tǒng)計(jì)、修改和維護(hù),包括貨物、單據(jù)查詢,貨物出入、職員操作統(tǒng)計(jì),各種信息的修改和維護(hù)等。&l
26、t;/p><p><b> ●打印報(bào)表的生成。</b></p><p> ●在貨物管理中加入最高儲備和最低儲備字段,對倉庫中的產(chǎn)品實(shí)現(xiàn)監(jiān)控和報(bào)警。</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ù)流圖有四種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲表和數(shù)據(jù)流。圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中的流動和處理情況,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,是極好的理解工具。它能精確的描述系統(tǒng)的邏輯模型,描述數(shù)據(jù)在MIS中有輸入經(jīng)過存儲、加工處理最后輸出的全過程,是設(shè)計(jì)者和用戶交流的很好的工具。</p><p> 仔細(xì)分析調(diào)查
29、有關(guān)倉庫管理信息需求的基礎(chǔ)上,得到如圖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ù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:</p><p> ●貨物信息,包括的數(shù)據(jù)項(xiàng)有編號、貨物名稱、貨物類別、貨物規(guī)格、計(jì)量單位、最高限量、最低限量、備注等。</p><
30、;p> ●倉庫信息,包括的數(shù)據(jù)項(xiàng)有編號、倉庫名稱、倉庫地點(diǎn)、保管員編號、備注等。</p><p> ●庫存狀況信息,包括的數(shù)據(jù)項(xiàng)有編號、貨物編號、庫存數(shù)量、倉庫編號等。</p><p> ●入庫單信息,包括的數(shù)據(jù)項(xiàng)有編號、貨物編號、經(jīng)辦人編號、入庫時間、入庫單價(jià)、入庫數(shù)量、供應(yīng)商編號、倉庫編號、定單狀況、其它金額、備注等。</p><p> ●出庫單信
31、息,包括的數(shù)據(jù)項(xiàng)有編號、貨物編號、經(jīng)辦人編號、出庫時間、出庫單價(jià)、出庫數(shù)量、客戶編號、倉庫編號、定單狀況、其它金額、備注等。</p><p> ●進(jìn)行月盤點(diǎn)信息,包括的數(shù)據(jù)項(xiàng)有編號、倉庫編號、盤點(diǎn)時間、經(jīng)辦人編號、盤點(diǎn)數(shù)據(jù)等。</p><p> ●系統(tǒng)日志信息,包括的數(shù)據(jù)項(xiàng)有用戶名、操作時間、操作內(nèi)容等。</p><p> ●用戶管理信息,包括的數(shù)據(jù)項(xiàng)有用戶名
32、、用戶密碼、用戶權(quán)限等。</p><p> 另外,還有借入單、借出單、報(bào)損單、調(diào)撥單信息等。它們與入庫單、出庫單信息基本類似,這里不再一一例舉。</p><p> 2.4倉庫管理系統(tǒng)的角色定義</p><p> 本系統(tǒng)角色包括兩種,倉管部管理人員和管理部主管,其中,管理部主管擁有整個系統(tǒng)的最高權(quán)限。</p><p><b>
33、 倉管部管理人員:</b></p><p> 負(fù)責(zé)倉庫的出入庫管理,可以根據(jù)流向單實(shí)現(xiàn)出/入庫操作。具體權(quán)限有:</p><p><b> ●庫存信息管理</b></p><p><b> ●庫檢信息維護(hù)</b></p><p><b> ●入庫單信息維護(hù)</b&
34、gt;</p><p><b> ●出庫單信息維護(hù)</b></p><p><b> ●報(bào)表信息管理</b></p><p> ●進(jìn)行密碼修改、清除表信息等系統(tǒng)設(shè)置</p><p> ●客戶、供應(yīng)商、庫房等基本信息的查詢?yōu)g覽等</p><p><b> 倉
35、管部主管:</b></p><p> ●負(fù)責(zé)整個山口倉管部門的日常運(yùn)作和管理工作,主要包括:</p><p><b> 部門信息維護(hù)</b></p><p><b> 人員信息管理</b></p><p><b> ●審批</b></p>&l
36、t;p><b> ●報(bào)表信息管理</b></p><p> ●進(jìn)行密碼修改、備份數(shù)據(jù)庫等系統(tǒng)設(shè)置</p><p><b> 第3章 總體設(shè)計(jì)</b></p><p><b> 3.1總體用例圖</b></p><p> 用例圖是一個系統(tǒng)建模的啟始點(diǎn),可以使用用例
37、圖對將要開發(fā)系統(tǒng)的實(shí)際工作流程進(jìn)行業(yè)務(wù)建模,從業(yè)務(wù)模型的基礎(chǔ)上過度到系統(tǒng)建模的開始,可以通過用例圖來搜集用戶的需求,明確和系統(tǒng)相關(guān)的用戶和其他系統(tǒng),同時確定系統(tǒng)將會提供什么功能,以及各個功能間的關(guān)系。</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è)務(wù)管理、系統(tǒng)維護(hù)等幾個功能模塊。</p><p> 圖3-3 總功能模塊圖</p><p> 1、倉管部信息管理模塊:為倉管部主管提供對倉管部信息的管理維護(hù)的功能。</p><p> 圖3-3-1 倉管部模塊圖</p><p> 一、倉管部信息管理模塊,如圖所示,包括以下功能模塊: &
42、lt;/p><p> 基本信息管理模塊:為管理員提供實(shí)現(xiàn)對客戶信息、供貨商信息、庫房信息和倉管人員信息的管理維護(hù),包括對信息查詢、添加、修改和刪除等操作。</p><p><b> 在庫信息管理模塊:</b></p><p> a、庫存信息管理模塊:為管理員提供實(shí)現(xiàn)對短線貨物、貨物信息的管理維護(hù),包括對信息查詢、添加、修改和刪除等操作。<
43、;/p><p> b、庫檢信息管理模塊:為管理員提供實(shí)現(xiàn)對產(chǎn)品庫檢信息、部件庫檢信息、禮品庫檢信息的管理維護(hù),包括對信息查詢、添加、修改和刪除等操作。</p><p> 出庫信息管理模塊:為管理員提供查詢、添加、修改和刪除出庫流向單(包括:產(chǎn)品出庫單、部件出庫單、禮品出庫單)的操作,其中添加和刪除操作后的出庫貨檢單要交由管理部審核。</p><p> 入庫信息管理
44、模塊:為管理員提供查詢、添加、修改和刪除入庫流向單(包括:部件入庫單、產(chǎn)品入庫單、禮品入庫單)的操作、其中添加和刪除操作后的入庫貨檢單要交由管理部審核。</p><p> 報(bào)表信息管理模塊:為管理員提供實(shí)現(xiàn)對報(bào)表信息的管理維護(hù),包括對報(bào)表信息查詢、瀏覽和上交等操作。</p><p> 系統(tǒng)設(shè)置模塊:為管理員提供實(shí)現(xiàn)對密碼修改、清除表信息的功能</p><p>
45、 、圖3-3-2 管理部模塊圖</p><p> 二、管理部信息管理模塊,如圖所示,包括以下功能模塊:</p><p> 1、倉管部人員管理模塊:為管理員提供實(shí)現(xiàn)對倉庫部門信息的管理維護(hù),包括對部門信息查詢、添加、修改和刪除等操作。</p><p> 2、倉庫報(bào)表管理模塊:為管理員提供實(shí)現(xiàn)對報(bào)表信息的管理維護(hù),包括對報(bào)表的查詢、瀏覽和刪除等操作。</p&
46、gt;<p> 3、倉庫貨檢信息管理模塊:為管理員提供實(shí)現(xiàn)對貨檢信息的管理維護(hù),包括對在庫貨檢信息、入庫貨檢信息和出庫貨檢信息的審核操作。</p><p> 4、基本信息管理模塊:為管理員提供實(shí)現(xiàn)對基本信息進(jìn)行添加、刪除、查詢和瀏覽功能、</p><p> 5、系統(tǒng)設(shè)置模塊:為管理員提供實(shí)現(xiàn)修改密碼、備份數(shù)據(jù)庫和恢復(fù)數(shù)據(jù)庫的功能</p><p>
47、<b> 第4章 詳細(xì)設(shè)計(jì)</b></p><p><b> 4.1ER圖</b></p><p> ER圖就是實(shí)體關(guān)系圖,主要完成了對系統(tǒng)中數(shù)據(jù)部分設(shè)計(jì)。E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系。以下是系統(tǒng)的整個ER圖:</p><
48、;p><b> 圖4-1 ER圖</b></p><p><b> 4.2數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 數(shù)據(jù)庫設(shè)計(jì)(Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫的結(jié)構(gòu)和建立數(shù)據(jù)庫的過程。一般,數(shù)據(jù)庫的設(shè)計(jì)過程大致可分?jǐn)?shù)據(jù)庫設(shè)計(jì)為5個步驟:</p><p>
49、 需求分析;調(diào)查和分析用戶的業(yè)務(wù)活動和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們在業(yè)務(wù)活動中交流的情況,確定用戶對數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。</p><p> 概念設(shè)計(jì);對用戶要求描述的現(xiàn)實(shí)世界(可能是一個工廠、一個商場或者一個學(xué)校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動情況、信息間的互相制約
50、關(guān)系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應(yīng)避開數(shù)據(jù)庫在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。以擴(kuò)充的實(shí)體—(E-R模型)聯(lián)系模型方法為例,第一步先明確現(xiàn)實(shí)世界各部門所含的各種實(shí)體及其屬性、實(shí)體間的聯(lián)系以及對信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現(xiàn)實(shí)世界的概念數(shù)據(jù)模型。</p>
51、<p> 邏輯設(shè)計(jì);主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時,可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計(jì)的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”。</p><p> 物理設(shè)計(jì);根據(jù)特定數(shù)據(jù)庫管理系統(tǒng)所提供的多種存儲結(jié)構(gòu)和存取方法等依賴于具體計(jì)算機(jī)結(jié)構(gòu)的各項(xiàng)物理設(shè)計(jì)措施,對具體的應(yīng)用任務(wù)選定最合適的物理存儲結(jié)構(gòu)
52、(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設(shè)計(jì)的結(jié)果就是所謂“物理數(shù)據(jù)庫”。</p><p> 驗(yàn)證設(shè)計(jì);在上述設(shè)計(jì)的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個數(shù)據(jù)庫,運(yùn)行一些典型的應(yīng)用任務(wù)來驗(yàn)證數(shù)據(jù)庫設(shè)計(jì)的正確性和合理性。一般,一個大型數(shù)據(jù)庫的設(shè)計(jì)過程往往需要經(jīng)過多次循環(huán)反復(fù)。當(dāng)設(shè)計(jì)的某步發(fā)現(xiàn)問題時,可能就需要返回到前面去進(jìn)行修改。因此,在做上述數(shù)據(jù)庫設(shè)計(jì)時就應(yīng)考慮到今后修改設(shè)計(jì)的
53、可能性和方便性。</p><p> 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和有效性,是為防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數(shù)據(jù)庫的完整性包括:實(shí)體完整性、參照完整性和用戶定義完整性。實(shí)體完整性(Entity Integrity) :現(xiàn)實(shí)世界的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。相應(yīng)地,關(guān)系模型中主鍵應(yīng)作為唯一性標(biāo)識。因此實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主
54、鍵(Primary Key)都不能取空值(NULL)。參照完整性(Referential Integrity):參照完整性維護(hù)表與表之間的相關(guān)性,通常用“主鍵(Primary Key)/外鍵(Foreign Key)”保證,其中Foreign Key可以取NULL值,或取其參照表中Primary Key的取值。用戶定義的完整性(User_defined Integrity ):針對某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定。數(shù)據(jù)庫完整性約束
55、能夠防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中添加不合語義的數(shù)據(jù)。</p><p> 4.2.1數(shù)據(jù)庫的邏輯設(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運(yùn)行環(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登陸的實(shí)現(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="你還沒登陸請重新登陸!!";</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> //如果登錄了就進(jìn)入請求頁面</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供貨商的實(shí)現(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的倉庫管理系統(tǒng)畢業(yè)論文
- 倉庫管理系統(tǒng)畢業(yè)論文
- 倉庫管理系統(tǒng) 畢業(yè)論文
- 倉庫管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-倉庫管理系統(tǒng)
- 畢業(yè)論文--倉庫管理系統(tǒng)
- java論壇管理系統(tǒng)——畢業(yè)論文
- java酒店管理系統(tǒng)畢業(yè)論文
- 倉庫管理系統(tǒng)畢業(yè)論文.doc
- 倉庫管理系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 企業(yè)倉庫管理系統(tǒng)畢業(yè)論文
- 基于.net的倉庫管理系統(tǒng)系統(tǒng)倉庫管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文----vb倉庫管理系統(tǒng)論文
- 倉庫管理系統(tǒng)-畢業(yè)論文開題報(bào)告
- 基于倉庫管理系統(tǒng)的畢業(yè)論文
- 倉庫管理系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- java學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 基于java的餐飲管理系統(tǒng)畢業(yè)論文
- 基于java的餐飲管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文范文——java論壇管理系統(tǒng)
評論
0/150
提交評論