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