倉庫管理系統(tǒng) 畢業(yè)設計
《倉庫管理系統(tǒng) 畢業(yè)設計》由會員分享,可在線閱讀,更多相關《倉庫管理系統(tǒng) 畢業(yè)設計(44頁珍藏版)》請在裝配圖網上搜索。
1、 計算機與通信學院 本科生畢業(yè)設計說明書 倉庫管理系統(tǒng)倉庫管理系統(tǒng) 前前 言言隨著科學技術的不斷發(fā)展,我們的社會已經進入了一個信息化的社會,人們每天都要接收大量的信息和處理大量的數據,僅靠傳統(tǒng)的紙和筆已不能適應這個時代的要求,人們必須采取新的手段,于是信息技術進入我們的生活,計算機不再是簡單的計算工具,它已成為我們生活中處理大量信息的不可或缺的手段。在當今產業(yè)競爭越來越激烈的信息時代,企業(yè)經營除了降低成本,提高品質外,更需要以先進的管理理念來整合企業(yè)內部與外部資源。倉庫管理系統(tǒng)正是在這個背景下產生的。本系統(tǒng)正是針對倉庫部門的貨物信息管理,通過對倉庫基本信息出入庫信息等的系統(tǒng)界面設計,將會給管理
2、者帶來極大的方便,具有手工管理無法比擬的優(yōu)點,例如檢索速度快、查找方便、可靠性高、存儲量大、使用時間長等。用計算機管理取代傳統(tǒng)的手工操作,大大減少了管理人員的工作量,提高了工作效率,為獲取詳細的管理信息提供了保證,方便各類人員的查詢和信息保證,增強了管理工作的時效和人員主動性。倉庫管理主要擺闊兩方面:一是倉庫的基本信息,涉及人員信息、庫房信息、供貨商信息、客戶信息;另一項是倉庫業(yè)務管理,包括入庫管理、在庫管理、出庫管理、報表管理。在本系統(tǒng)中側重實現倉庫的基本信息管理。摘摘 要要倉庫管理系統(tǒng)是為了實現企業(yè)產品管理的系統(tǒng)化、規(guī)范化和自動化,從而提高企業(yè)管理效率而設計的。它完全取代了原來一直用人工管
3、理的工作方式,避免了由于管理人員的工作疏忽以及管理質量問題所造成的各種錯誤,為及時、準確、高效的完成倉庫管理提供了強有力的工具和管理手段。倉庫管理系統(tǒng)是一個中小型數據庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了倉庫管理的要求。整個系統(tǒng)由基本信息、單據中心、查詢統(tǒng)計、報表打印、維護設置、幫助等模塊組成。本系統(tǒng)是在以 MySql 作為后臺數據庫,以 J2EE 為編程語言來開發(fā)的。倉庫管理系統(tǒng)在運行階段,效果好,數據準確性高,提高了工作效率,同時也實現了倉庫管理計算機化。關鍵詞關鍵詞: 倉庫; 管理系統(tǒng); 數據庫AbstractThe administrative system of th
4、e warehouse is designed for realizing the systematization, standardization and automization of enterprises products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management originally, prevents from various kinds of mistakes becau
5、se of administrative staff neglect and the quality problem of management and offeres powerful tool and management way to complet storehouse management for prompt , accurate , high-efficient . The administrative system of the warehouse is a medium and small-scale database management system,it has not
6、 only beautiful interface, but also the high security and the simply operation , and meet the demand for storehouse management basically. Whole system is made up by basic information, document in the center, inquire statistics , report form type ,set up to maintain and module of helping etc.The Ware
7、house administrative system is designed with regarding MySql as the backstage database and regarding J2EE 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
8、management at the same time .Key word: The Warehouse ; Administrative System; The Database目目 錄錄摘 要.IABSTRACT .II第 1 章 緒論.1第 2 章 需求分析.22.1 倉庫管理系統(tǒng)概述.22.2 系統(tǒng)流程圖.22.3 數據流程圖.32.4 倉庫管理系統(tǒng)的角色定義.5第 3 章 總體設計.63.1 總體用例圖.63.2 用例說明.63.2.1 用戶從瀏覽器登錄.72.2.2 供貨商信息查詢用例概述.82.2.3 供貨商信息修改用例概述.92.2.4 供貨商信息添加用例概述.103.3 功能
9、模塊圖.11第 4 章 詳細設計.144.1ER 圖.144.2 數據庫設計.154.2.1 數據庫的邏輯設計.164.3 運行環(huán)境.20第 5 章 編碼.215.1 登陸的實現.215.1.1 登陸 action.215.1.2 登陸過濾器.225.1.3 登陸 DAO.235.2 供貨商的實現.235.2.1 供貨商查詢 Action.235.2.2 供貨商修改 Action.255.2.2 供貨商添加 Action.255.2.3 供貨商 DAO.26第 6 章 測試.306.1 登陸測試方案.306.2 數據錄入測試.306.3 查詢測試.306.4 測試結論.30第 7 章 使用說明
10、.317.1 系統(tǒng)功能簡介.317.2 運行環(huán)境簡介.317.3 系統(tǒng)運行與操作指南.327.4 操作演示.327.5 特色介紹.35第 8 章 總結.36參考文獻.37致 謝.381第第 1 章章 緒論緒論倉庫管理系統(tǒng)是現代倉儲企業(yè)進行貨物管理和處理的業(yè)務操作系統(tǒng)。它可以實現本地一個或幾個倉庫的精細化管理,也可實現制造企業(yè)、物流企業(yè)、連鎖業(yè)在全國范圍內、異地多點倉庫的管理;它可以對貨物存儲和出貨等進行動態(tài)安排,可以對倉儲作業(yè)流程的全過程進行電子化操作;可以與客服中心建立數據接口使客戶通過互聯網實現遠程貨物管理,可以與企業(yè)的ERP系統(tǒng)實現無縫連接。在現代企業(yè)中,倉庫管理是一項繁瑣復雜的工作,每
11、天要處理大量的單據數據。為及時結清每筆業(yè)務,盤點庫存和貨物流動情況,保證企業(yè)生產用料以及貨物安全,庫管人員要花費大量人力物力和時間來作數據記錄統(tǒng)計工作。眾所周知,倉庫管理是一種既麻煩又單調的工作,每天都是重復記錄一些貨物的存入與取出,而且貨物的種類繁多,存取有很大的隨機性,這樣為工作人員帶來了很大的不便,在操作過程中,由于人為的計算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經營者增加了很多成本。所以開發(fā)一個可行的倉庫管理系統(tǒng)是十分必要的。本系統(tǒng)以MySQL作為后臺數據庫,以java語言來開發(fā)的,不僅實現了倉庫管理的自動化,同時也提高了工作效率。本系統(tǒng)由以下幾個模塊組成
12、:基本信息管理、入庫管理、在庫管理、出庫管理、報表管理。2第第 2 章章 需求分析需求分析2.1 倉庫管理系統(tǒng)概述倉庫管理系統(tǒng)概述本系統(tǒng)是為物流管理而設計的高效管理系統(tǒng),系統(tǒng)功能強大,同時操作又比較簡單,而管理人員大多受到過系統(tǒng)的培訓,并能夠操作電腦,所以只要花很少的時間,就能夠讓他們熟悉本系統(tǒng)。系統(tǒng)開發(fā)的總體任務是實現各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。本倉庫管理系統(tǒng)需要完成功能主要有:倉庫管理各種信息的輸入,包括貨物、供應商、客戶、倉庫信息的輸入等。倉庫管理各種信息的查詢、統(tǒng)計、修改和維護,包括貨物、單據查詢,貨物出入、職員操作統(tǒng)計,各種信息的
13、修改和維護等。打印報表的生成。在貨物管理中加入最高儲備和最低儲備字段,對倉庫中的產品實現監(jiān)控和報警。操作日志的管理。倉庫管核對貨物清單程序入庫單庫存數據庫出庫單打印程序出庫單庫存查詢程序庫存分析程序查詢庫存信息庫存?zhèn)浞莩绦驇齑鎮(zhèn)浞輬髶p計劃表理系統(tǒng)的使用幫助。2.2 系統(tǒng)流程圖系統(tǒng)流程圖出庫單3圖 2-2 系統(tǒng)流程圖2.3 數據流程圖數據流程圖數據流圖是描述系統(tǒng)的邏輯模型的,圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中流動和處理的情況,它比口頭與文字的描述更直觀地顯示出來系統(tǒng)中數據的使用。數據流圖簡稱 DFD 圖,數據流圖有四種成分:源點或終點、處理、數據存儲表和數據流。圖中沒有任何具體的物
14、理元素,只是描述信息在系統(tǒng)中的流動和處理情況,即使不是專業(yè)的計算機技術人員也容易理解,是極好的理解工具。它能精確的描述系統(tǒng)的邏輯模型,描述數據在 MIS 中有輸入經過存儲、加工處理最后輸出的全過程,是設計者和用戶交流的很好的工具。仔細分析調查有關倉庫管理信息需求的基礎上,得到如圖 41 所示的本系統(tǒng)所處理的數據流程。4圖 2-3 倉庫管理系統(tǒng)數據流程圖通過對企業(yè)倉庫管理的內容和數據流程分析,設計數據項和數據結構如下:貨物信息,包括的數據項有編號、貨物名稱、貨物類別、貨物規(guī)格、計量單位、最高限量、最低限量、備注等。倉庫信息,包括的數據項有編號、倉庫名稱、倉庫地點、保管員編號、備注等。庫存狀況信息
15、,包括的數據項有編號、貨物編號、庫存數量、倉庫編號等。入庫單信息,包括的數據項有編號、貨物編號、經辦人編號、入庫時間、入庫單價、入庫數量、供應商編號、倉庫編號、定單狀況、其它金額、備注等。出庫單信息,包括的數據項有編號、貨物編號、經辦人編號、出庫時間、出庫單價、出庫數量、客戶編號、倉庫編號、定單狀況、其它金額、備注等。進行月盤點信息,包括的數據項有編號、倉庫編號、盤點時間、經辦人編號、盤點數據等。系統(tǒng)日志信息,包括的數據項有用戶名、操作時間、操作內容等。用戶管理信息,包括的數據項有用戶名、用戶密碼、用戶權限等。另外,還有借入單、借出單、報損單、調撥單信息等。它們與入庫單、出庫單信息基本類似,這
16、里不再一一例舉。52.4 倉庫管理系統(tǒng)的角色定義倉庫管理系統(tǒng)的角色定義本系統(tǒng)角色包括兩種,倉管部管理人員和管理部主管,其中,管理部主管擁有整個系統(tǒng)的最高權限。倉管部管理人員:負責倉庫的出入庫管理,可以根據流向單實現出/入庫操作。具體權限有:庫存信息管理庫檢信息維護入庫單信息維護出庫單信息維護報表信息管理進行密碼修改、清除表信息等系統(tǒng)設置客戶、供應商、庫房等基本信息的查詢?yōu)g覽等倉管部主管:負責整個山口倉管部門的日常運作和管理工作,主要包括:部門信息維護人員信息管理審批報表信息管理進行密碼修改、備份數據庫等系統(tǒng)設置6第第 3 章章 總體設計總體設計3.1 總體用例圖總體用例圖用例圖是一個系統(tǒng)建模的
17、啟始點,可以使用用例圖對將要開發(fā)系統(tǒng)的實際工作流程進行業(yè)務建模,從業(yè)務模型的基礎上過度到系統(tǒng)建模的開始,可以通過用例圖來搜集用戶的需求,明確和系統(tǒng)相關的用戶和其他系統(tǒng),同時確定系統(tǒng)將會提供什么功能,以及各個功能間的關系。圖 3-1 總體用例圖3.2 用例說明用例說明根據上述用例圖,對登陸和人員信息管理模塊做了如下用例說明:73.2.1 用戶從瀏覽器登錄用戶從瀏覽器登錄用例概述用例名稱用例名稱 用戶登陸主題領域主題領域用例定義用例定義 用戶登錄到系統(tǒng),獲得相應的界面和使用權限角色角色 倉管員或主管業(yè)務觸發(fā)業(yè)務觸發(fā)事件事件用戶準備開始使用系統(tǒng)進行業(yè)務處理或系統(tǒng)管理前置條件前置條件 系統(tǒng)中已為該用戶
18、建立系統(tǒng)用戶,并分配了相應權限結束條件結束條件 成功條件用戶登錄系統(tǒng),并獲得相應權限失敗條件1)系統(tǒng)中沒有該用戶;2)用戶名、密碼錯誤相關用例相關用例輸入概述輸入概述 用戶名、密碼、角色輸出概述輸出概述 與用戶權限相應的界面使用性備使用性備注注 本用例使用頻繁用例備注用例備注主事件流步驟步驟角色角色/系統(tǒng)系統(tǒng)描述描述數據項數據項備注備注1.角色啟動登錄程序2.系統(tǒng)顯示登錄界面;提示輸入用戶標識和保密字3.角色輸入用戶標識和保密字,登錄系統(tǒng)用戶名,密碼,角色4.系統(tǒng)驗證用戶是否合法用戶、保密字是否正確;返回用戶相應的界面、菜單如果不是合法用戶、或保密字不正確轉到A1。5.分支事件流編編號號主事件
19、流主事件流步驟號步驟號角色角色/系統(tǒng)系統(tǒng)條件條件描述描述數據項數據項轉去主轉去主事件流事件流步驟號步驟號備注備注A14系統(tǒng)不是合法用戶,用戶名、密碼錯誤,用戶名和密碼與角色不對應返回登錄失敗信息登錄失敗信息282.2.2 供貨商信息查詢用例概述供貨商信息查詢用例概述用例名稱用例名稱 供貨商信息查詢主題領域主題領域 供貨商信息查詢用例包用例定義用例定義 供貨商信息查詢角色角色 倉庫管理人員業(yè)務觸發(fā)事件業(yè)務觸發(fā)事件 進行供貨商信息查詢前置條件前置條件 有需要查詢的供貨商信息記錄結束條件結束條件 成功條件查詢到需要查詢的供貨商信息失敗條件未查詢到需要查詢的供貨商信息相關用例相關用例輸入概述輸入概述
20、所需查詢的供貨商信息輸出概述輸出概述 查詢結果使用性備注使用性備注用例備注用例備注主事件流主事件流步驟步驟角色角色/系統(tǒng)系統(tǒng)描述描述數據項數據項備注備注6.角色進入查詢界面7.系統(tǒng)顯示查詢界面8.角色輸入所需查詢的供貨商信息9.系統(tǒng)查詢是否成功查詢成功如果查詢成功轉到 A1如果查詢不成功轉到 A2分支事件流分支事件流編編號號主事件流主事件流步驟號步驟號角色角色/系統(tǒng)系統(tǒng)條件條件描述描述數據項數據項轉去主轉去主事件流事件流步驟號步驟號備注備注A14系統(tǒng)完成供貨商信息查詢返回成功信息查詢的供貨商信息2A24系統(tǒng)沒有完成供貨商信息查詢返回失敗信息查詢失敗的信息提示292.2.3 供貨商信息修改用例概
21、述供貨商信息修改用例概述用例名稱用例名稱 供貨商信息修改主題領域主題領域 供貨商信息修改用例包用例定義用例定義 供貨商信息修改角色角色 倉庫管理人員業(yè)務觸發(fā)事件業(yè)務觸發(fā)事件 進行供貨商信息修改前置條件前置條件 有需要修改的供貨商信息記錄結束條件結束條件 成功條件查詢到需要修改的供貨商信息失敗條件未查詢到需要修改的供貨商信息相關用例相關用例輸入概述輸入概述 所需修改的供貨商信息輸出概述輸出概述 修改結果使用性備注使用性備注用例備注用例備注主事件流主事件流步驟步驟角色角色/系統(tǒng)系統(tǒng)描述描述數據項數據項備注備注10.角色進入修改界面11.系統(tǒng)顯示修改界面12.角色輸入所需修改的供貨商信息13.系統(tǒng)修
22、改是否成功修改成功如果修改成功轉到 A1如果修改不成功轉到 A2分支事件流分支事件流編編號號主事件流主事件流步驟號步驟號角色角色/系統(tǒng)系統(tǒng)條件條件描述描述數據項數據項轉去主轉去主事件流事件流步驟號步驟號備注備注A14系統(tǒng)完成供貨商信息修改返回成功信息修改的供貨商信息2A24系統(tǒng)沒有完成供貨商信息修改返回失敗信息修改失敗的信息提示2102.2.4 供貨商信息添加用例概述供貨商信息添加用例概述用例名稱用例名稱 供貨商信息添加主題領域主題領域 供貨商信息添加用例包用例定義用例定義 供貨商信息角色角色 倉庫管理人員業(yè)務觸發(fā)事件業(yè)務觸發(fā)事件 進行供貨商信息添加前置條件前置條件 有需要添加的供貨商信息記錄
23、結束條件結束條件 成功條件查詢到需要添加的供貨商信息失敗條件未查詢到需要添加的供貨商信息相關用例相關用例輸入概述輸入概述 所需添加的供貨商信息輸出概述輸出概述 添加結果使用性備注使用性備注用例備注用例備注主事件流主事件流步驟步驟角色角色/系統(tǒng)系統(tǒng)描述描述數據項數據項備注備注14.角色進入添加界面15.系統(tǒng)顯示添加界面16.角色輸入所需添加的供貨商信息17.系統(tǒng)添加是否成功添加成功如果添加成功轉到 A1如果添加不成功轉到 A2分支事件流分支事件流編編號號主事件流主事件流步驟號步驟號角色角色/系統(tǒng)系統(tǒng)條件條件描述描述數據項數據項轉去主轉去主事件流事件流步驟號步驟號備注備注A14系統(tǒng)完成供貨商信息添
24、加返回成功信息添加的供貨商信息2A24系統(tǒng)沒有完成供貨商信息添加返回失敗信息添加失敗的信息提示2113.3 功能模塊圖功能模塊圖功能模塊:山口電腦倉庫管理系統(tǒng)包括倉管部信息管理、業(yè)務管理、系統(tǒng)維護等幾個功能模塊。倉管部信息管理倉管部業(yè)務管理山口電腦倉庫管理系統(tǒng)系統(tǒng)維護圖 3-3 總功能模塊圖1、倉管部信息管理模塊:為倉管部主管提供對倉管部信息的管理維護的功能。12 倉管部信息管理基本信息管理出庫信息維護入庫信息維護庫檢信息維護報表信息管理系統(tǒng)設置客戶信息維護供貨商信息維護庫房信息維護短線貨品信息維護部件、禮品信息維護修改密碼成品品信息維護庫存信息維護在庫信息管理倉管人員信息維護圖 3-3-1
25、倉管部模塊圖一、一、倉管部信息管理模塊,如圖所示,包括以下功能模塊:1.基本信息管理模塊:為管理員提供實現對客戶信息、供貨商信息、庫房信息和倉管人員信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。2.在庫信息管理模塊:a、庫存信息管理模塊:為管理員提供實現對短線貨物、貨物信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。b、庫檢信息管理模塊:為管理員提供實現對產品庫檢信息、部件庫檢信息、禮品庫檢信息的管理維護,包括對信息查詢、添加、修改和刪除等操作。3.出庫信息管理模塊:為管理員提供查詢、添加、修改和刪除出庫流向單(包括:產品出庫單、部件出庫單、禮品出庫單)的操作,其中添加和刪除
26、操作后的出庫貨檢單要交由管理部審核。4.入庫信息管理模塊:為管理員提供查詢、添加、修改和刪除入庫流向單(包括:部件入庫單、產品入庫單、禮品入庫單)的操作、其中添加和刪除操作后的入庫貨檢單要交由管理部審核。5.報表信息管理模塊:為管理員提供實現對報表信息的管理維護,包括對報表信息查詢、瀏覽和上交等操作。136.系統(tǒng)設置模塊:為管理員提供實現對密碼修改、清除表信息的功能管理部信息管理倉管部人員管理倉庫報表管理倉庫貨檢信息管理基本信息管理系統(tǒng)設置 修改密碼 備份數據庫恢復數據庫、圖 3-3-2 管理部模塊圖二、二、管理部信息管理模塊,如圖所示,包括以下功能模塊:1、倉管部人員管理模塊:為管理員提供實
27、現對倉庫部門信息的管理維護,包括對部門信息查詢、添加、修改和刪除等操作。2、倉庫報表管理模塊:為管理員提供實現對報表信息的管理維護,包括對報表的查詢、瀏覽和刪除等操作。3、倉庫貨檢信息管理模塊:為管理員提供實現對貨檢信息的管理維護,包括對在庫貨檢信息、入庫貨檢信息和出庫貨檢信息的審核操作。4、基本信息管理模塊:為管理員提供實現對基本信息進行添加、刪除、查詢和瀏覽功能、5、系統(tǒng)設置模塊:為管理員提供實現修改密碼、備份數據庫和恢復數據庫的功能14第第 4 章章 詳細設計詳細設計4.1ER 圖圖ER 圖就是實體關系圖,主要完成了對系統(tǒng)中數據部分設計。E-R 圖為實體-聯系圖,提供了表示實體型、屬性和
28、聯系的方法,用來描述現實世界的概念模型。構成 E-R 圖的基本要素是實體型、屬性和聯系。以下是系統(tǒng)的整個 ER 圖:圖 4-1 ER 圖154.2 數據庫設計數據庫設計數據庫設計(Database Design)是指根據用戶的需求,在某一具體的數據庫管理系統(tǒng)上,設計數據庫的結構和建立數據庫的過程。一般,數據庫的設計過程大致可分數據庫設計為 5個步驟:需求分析;調查和分析用戶的業(yè)務活動和數據的使用情況,弄清所用數據的種類、范圍、數量以及它們在業(yè)務活動中交流的情況,確定用戶對數據庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。概念設計;對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個
29、學校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節(jié),用一種抽象的形式表示出來。以擴充的實體(E-R 模型)聯系模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯系以及對信息的制約條件等,從而給出各部門內所用信息的局部描述(在數據庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。邏輯設計;主要工作是將現實世界的概念數據
30、模型設計成數據庫的一種邏輯模式,即適應于某種特定數據庫管理系統(tǒng)所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂“邏輯數據庫” 。物理設計;根據特定數據庫管理系統(tǒng)所提供的多種存儲結構和存取方法等依賴于具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(包括文件類型、索引結構和數據的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設計的結果就是所謂“物理數據庫” 。驗證設計;在上述設計的基礎上,收集數據并具體建立一個數據庫,運行一些典型的應用任務來驗證數據庫設計的正確性和合理性。一般,一個大型數據庫的設計過程往往
31、需要經過多次循環(huán)反復。當設計的某步發(fā)現問題時,可能就需要返回到前面去進行修改。因此,在做上述數據庫設計時就應考慮到今后修改設計的可能性和方便性。數據庫的完整性是指數據的正確性和有效性,是為防止數據庫中存在不符合語義規(guī)定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數據庫的完整性包括:實體完整性、參照完整性和用戶定義完整性。實體完整性(Entity Integrity) :現實世界的實體是可區(qū)分的,即它們具有某種唯一性標識。相應地,關系模型中主鍵應作為唯一性標識。因此實體完整性規(guī)則規(guī)定基本關系的所有主鍵(Primary Key)都不能取空值(NULL)。參照完整性(Refere
32、ntial Integrity):參照完整性維護表與表之間的相關性,通常用“主鍵(Primary Key)/外鍵(Foreign Key)”保證,其中 Foreign Key 可以取 NULL 值,或取其參照表中 Primary Key 的取值。用戶定義的完整性(User_defined Integrity ):針對某一具體數據的約束條件,由應用環(huán)境決定。數據庫完整性約束能夠防止合法用戶使用數據庫時向16數據庫中添加不合語義的數據。4.2.1數據庫的邏輯設計數據庫的邏輯設計倉庫管理系統(tǒng)所用的數據庫是 MySQL,如下是表在數據庫的邏輯表示:表 assembly 的結構字段名注釋類型長度是否主鍵
33、是否不為空id編號INTEGER11Inbill_id入庫單編號VARCHAR20Supplier_id供貨商編號VARCHAR20Depot_id庫房編號VARCHAR20Number數量INTEGER11Sumof_bad不合格數量INTEGER11Atcheck_date在庫貨檢日期DATE11In_date入庫日期DATE11Employee_id貨檢員編號char5表 product 的結構字段名注釋類型長度是否主鍵是否不為空id編號INTEGER11Makebill_id組裝單編號VARCHAR20Depot_id庫房編號VARCHAR20Check_id貨檢編號VARCHAR20
34、Number數量INTEGER11Sumof_bad不合格數量INTEGER11Make_date組裝日期DATE11Check_date貨檢日期DATE11表 assembly_product 的結構字段名注釋類型長度是否主鍵是否不為空id編號INTEGER11Assembly_id部件編號VARCHAR20Product_id成品編號VARCHAR20表 customer 的結構17字段名注釋類型長度是否主鍵是否不為空Customer_id客戶編號VARCHAR20name姓名VARCHAR20sex性別VARCHAR20credit信譽度INTEGER11phone電話號碼VARCHAR
35、20address地址VARCHAR20remark備注VARCHAR20表 depot 的結構字段名注釋類型長度是否主鍵是否不為空Depot_id庫房編號VARCHAR20Employee_id責任人編號VARCHAR20phone電話號碼VARCHAR20address地址VARCHAR20remark備注VARCHAR20表 employee 的結構字段名注釋類型長度是否主鍵是否不為空Employee_id人員編號VARCHAR20Inbill_id入庫單編號VARCHAR20Supplier_id供貨商編號VARCHAR20Depot_id庫房編號VARCHAR20Number數量IN
36、TEGER11Sumof_bad不合格數量INTEGER11Atcheck_date在庫貨檢日期DATE11In_date入庫日期DATE11Employee_id貨檢員編號VARCHAR518表 supplier 的結構字段名注釋類型長度是否主鍵是否不為空Supplier_id供貨商編號VARCHAR20name姓名VARCHAR20sex性別VARCHAR20credit信譽度INTEGER11phone電話號碼VARCHAR20address地址VARCHAR20remark備注VARCHAR20表 inbill 的結構字段名注釋類型長度是否主鍵是否不為空In_id入庫單編號VARCHA
37、R20Depot_id庫房編號VARCHAR20Refer_date入庫日期DATE11Wh_id提交人編號VARCHAR20Check_date貨檢日期DATE11Ch_id貨檢人編號VARCHAR20Audit_date審核日期DATE11M_id主管編號VARCHAR20In_state入庫單狀態(tài)VARCHAR20表 inlist 的結構字段名注釋類型長度是否主鍵是否不為空id編號INTEGER11In_id入庫單編號VARCHAR20Assembly_id部件編號VARCHAR20Supplier_id供貨商編號VARCHAR20Number數量INTEGER11Badnumber不合
38、格數量INTEGER11Good_rate合格率VARCHAR2019表 makebill 的結構字段名注釋類型長度是否主鍵是否不為空Makebill_id組裝單編號VARCHAR20Depot_id庫房編號VARCHAR20Product_id成品編號VARCHAR20Number數量INTEGER11Atcheck_date在庫貨檢日期DATE11Make_date組裝日期DATE11Manager_id主管編號VARCHAR20表 outbill 的結構字段名注釋類型長度是否主鍵是否不為空Outbill_id出庫單編號VARCHAR20Depot_id庫房編號VARCHAR20Refer
39、_date供貨商編號VARCHAR20Refer_id提交人編號VARCHAR20Audit_date審核日期DATE11Out_state出庫單狀態(tài)VARCHAR11Audit_id審核人編號VARCHAR20Customer_id客戶編號VARCHAR20表 outlist 的結構字段名注釋類型長度是否主鍵是否不為空id編號INTEGER11Outbill_id出庫單編號VARCHAR20Product_id成品編號VARCHAR20Number數量INTEGER1120表 report 的結構字段名注釋類型長度是否主鍵是否不為空Reportid報表編號VARCHAR20Reporttyp
40、e報表類型VARCHAR20Depotid庫房編號VARCHAR20beginDate起始日期DATE11endDate結束日期DATE11createTime創(chuàng)建日期DATE11referId提交人編號VARCHAR20checkState審核狀態(tài)VARCHAR20checkDate審核日期DATE11AuditId審核人編號VARCHAR20表 report_detail 的結構字段名注釋類型長度是否主鍵是否不為空id編號INTEGER11reportId報表編號VARCHAR20Depotid庫房編號VARCHAR20goodsName貨物名稱VARCHAR40goodsType貨物類型
41、VARCHAR30allNumber總數量INTEGER11badNumber不合格數量INTEGER11checkId審核人編號VARCHAR204.3 運行環(huán)境運行環(huán)境1.開發(fā)工具:Eclipse,2.軟件環(huán)境:Tomcat6.0,JDK5.0 以上,3.硬件環(huán)境:cpu:P3 2.0GHZ 以上Memory:512M 以上21第第 5 章章 編碼編碼5.1 登陸的實現登陸的實現 5.1.1 登陸登陸 actionimport javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRespons
42、e;import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.javateam3.struts.form.LoginForm;import mon.dao.LoginService;/* * MyEclipse
43、Struts * Creation date: 05-30-2009 * * XDoclet definition: * struts.action path=/login name=loginForm input=/webpage/login.jsp scope=request validate=true */public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpSer
44、vletResponse response) LoginForm loginForm = (LoginForm) form;try String userName=loginForm.getUser_name().trim(); String psw=loginForm.getPsw().trim(); LoginService loginService=new LoginService(); HttpSession session = request.getSession(true); if(loginService.login(userName, psw) session.setAttri
45、bute(username,userName); /如果登錄成功把登錄的名字放在session中以便在過濾器中判斷 return mapping.findForward(loginSuccess); /返回到登陸成功頁面 else22 session.invalidate(); request.setAttribute(loginError, 用戶或者密碼錯誤!); /返回到錯誤頁面 return mapping.findForward(loginError); catch(Exception e) e.printStackTrace(); return null;5.1.2 登陸過濾器登陸過
46、濾器import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.*;public class SecurityAndDeny implemen
47、ts Filter public void destroy() /注銷時調用 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)resp; HttpSession session = request.ge
48、tSession(false); /取出來session如果沒有得到空值 if (session= null|session.getAttribute(username)= null) /判斷是否登錄過如果沒有就重定向到登陸頁面 String temp=你還沒登陸請重新登陸!; temp=.URLEncoder.encode(temp.toString(),utf-8); response.sendRedirect(http:/localhost:8080/JT03EtpLgtWebProject03/login.jsp?loginErr=+temp); return; /如果登錄了就進入請求
49、頁面 chain.doFilter(req, resp); public void init(FilterConfig arg0) throws ServletException /初始化時調用的方法235.1.3 登陸登陸 DAOpublic Boolean login(String userName,String psw) Employee employee=new Employee(); employee.setPsw(psw) ; employee.setUserName(userName); List results=findByExample(employee); int leng
50、th=results.size(); if(length=1) return true; else return false; 5.2 供貨商的實現供貨商的實現5.2.1 供貨商查詢供貨商查詢 Actionpackage com.javateam3.whmsys.manager.basicinfo.supplyerinfo.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache
51、.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import mon.PageBean;import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.QueryForm;import com.javateam3.whmsys.manager.basicinfo.sup
52、plyerinfo.service.SupplierService;import mon.pojo.Supplier;import mon.utils.Tool;24public class QueryAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception QueryForm queryForm = (QueryForm) f
53、orm;SupplierService ss = new SupplierService();PageBean pageBean = new PageBean();List list = null;/存放查出來的spplier對象String crrPage = request.getParameter(cp);int currentPage = pageBean.getCurrentPage();int lineSize = pageBean.getLineSize();Supplier supplier = change(queryForm);if (crrPage != null) cu
54、rrentPage = Integer.parseInt(crrPage); else int allRecorders = ss.getCount(supplier);Tool.setALLRECORDERS(allRecorders);Tool.setPAGESIZE(allRecorders + lineSize - 1) / lineSize);pageBean.setAllRecorders(allRecorders);pageBean.setPageSize(allRecorders + lineSize - 1) / lineSize);list = ss.queryByExam
55、ple(supplier, currentPage, lineSize);pageBean.setCurrentPage(currentPage);request.setAttribute(pageBean, pageBean);request.setAttribute(list, list); /把查詢出來的supplier對象放在request里return mapping.findForward(supplierResult); /把form表單里的東西轉化為supplier對象public Supplier change(QueryForm queryForm) Supplier su
56、pplier = new Supplier();if (queryForm.getSupplierId() != null& !queryForm.getSupplierId().equals()supplier.setSupplierId(queryForm.getSupplierId();if (queryForm.getAddress() != null& !queryForm.getAddress().equals()supplier.setAddress(queryForm.getAddress();if (queryForm.getName() != null & !queryFo
57、rm.getName().equals()supplier.setName(queryForm.getName();if (queryForm.getCredit() != null & !queryForm.getCredit().equals()supplier.setCredit(queryForm.getCredit();if (queryForm.getPhone() != null & !queryForm.getPhone().equals()supplier.setPhone(queryForm.getPhone();25if (queryForm.getRemark() !=
58、 null & !queryForm.getRemark().equals()supplier.setRemark(queryForm.getRemark();return supplier;5.2.2 供貨商修改供貨商修改 Actionimport javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import o
59、rg.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import mon.pojo.Supplier;import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.ModifyForm;import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;public class ModifyAction extends
60、 Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ModifyForm modifyForm = (ModifyForm) form;Supplier supplier = new Supplier();supplier.setAddress(modifyForm.getAddress();supplier.setCredit(modifyForm.getCredit();sup
61、plier.setName(modifyForm.getName();supplier.setPhone(modifyForm.getPhone();supplier.setRemark(modifyForm.getRemark();supplier.setSupplierId(modifyForm.getSupplierId();SupplierService ss = new SupplierService();try ss.upDate(supplier);return mapping.findForward(success); catch (Exception e) e.printSt
62、ackTrace();return mapping.findForward(error);5.2.2 供貨商添加供貨商添加 Actionimport javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;26import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.
63、apache.struts.action.ActionMapping;import mon.pojo.Supplier;import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.AddForm;import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;public class AddAction extends Action public ActionForward execute(ActionMapping mapp
64、ing, ActionForm form,HttpServletRequest request, HttpServletResponse response) AddForm addForm = (AddForm) form;Supplier supplier = new Supplier();supplier.setAddress(addForm.getAddress();supplier.setCredit(addForm.getCredit();supplier.setName(addForm.getName();supplier.setPhone(addForm.getPhone();s
65、upplier.setRemark(addForm.getRemark();supplier.setSupplierId(addForm.getSupplierId();SupplierService ss = new SupplierService();try ss.insert(supplier);return mapping.findForward(success); catch (Exception e) e.printStackTrace(); /出現異常打印軌跡return mapping.findForward(error);5.2.3 供貨商供貨商 DAOpackage com
66、.javateam3.whmsys.manager.basicinfo.supplyerinfo.dao;import java.util.ArrayList;import java.util.List;import org.hibernate.Criteria;import org.hibernate.LockMode;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.criterion.Example;27import mon.dao.BaseHibernateDAO;import mon.pojo.Supplier;import mon.utils.UtilGetExample;public class SupplierDAO extends BaseHibernateDAO public static final String NAME = name;public static final String ADD
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。