




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z.1緒論隨著社會(huì)經(jīng)濟(jì)的不斷發(fā)展,各個(gè)企業(yè)也面臨著各種機(jī)遇和挑戰(zhàn)。為了能夠在這個(gè)信息化的時(shí)代繼續(xù)發(fā)展下去,就必須緊跟上時(shí)代的腳步。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,現(xiàn)代物流技術(shù)也在不斷的更新?lián)Q代。傳統(tǒng)的人工記載的辦公方法已經(jīng)無法滿足很多企業(yè)的需要,因此,每個(gè)企業(yè)都需要一個(gè)自動(dòng)化的倉庫管理系統(tǒng)。倉庫是每個(gè)企業(yè)都必須謹(jǐn)慎管理的地方,因?yàn)樨浳锸瞧髽I(yè)最基本的本錢,只有很好地管理好自己企業(yè)的貨物,才能在競(jìng)爭(zhēng)如此激烈的社會(huì)中謀得一片天地。本課題正是根據(jù)這一理念,開發(fā)了一個(gè)功能比較完善,基本能滿足企業(yè)要求的倉庫管理系統(tǒng)。1.1 系統(tǒng)開發(fā)背景隨著計(jì)算機(jī)技術(shù)的發(fā)展,一個(gè)嶄新的信息化的世界已經(jīng)展現(xiàn)在我們眼前。如今,你
2、可以隨處看到很多不同種類的信息管理系統(tǒng)。商品是企業(yè)的根本,倉庫是企業(yè)用來保存商品的地方。因此,倉庫對(duì)于企業(yè)十分重要。所以說一個(gè)成功的企業(yè)必定會(huì)有一個(gè)好的倉庫,而一個(gè)好的倉庫就肯定會(huì)有一個(gè)先進(jìn)的倉庫管理系統(tǒng)作為支撐。但是,傳統(tǒng)簡(jiǎn)單、靜態(tài)的倉庫管理系統(tǒng),因?yàn)槠洳痪邆湫畔⒐蚕砉δ埽覠o法保證貨物的正確的進(jìn)庫、庫存控制和發(fā)貨等問題,已經(jīng)無法確保企業(yè)資源的高效利用;而且,傳統(tǒng)的倉庫管理系統(tǒng)存在維護(hù)困難、開發(fā)復(fù)雜等缺點(diǎn),極大的浪費(fèi)企業(yè)的人力、物力,因此已經(jīng)跟不上時(shí)代的步伐。所以說,一個(gè)成功的企業(yè)需要一個(gè)現(xiàn)代的倉庫管理系統(tǒng)來保證企業(yè)產(chǎn)品的精細(xì)化管理,保證最大化利用企業(yè)資源。1.2 系統(tǒng)開發(fā)目的倉庫是所有企業(yè)
3、都不可缺少的部分,因此,一個(gè)企業(yè)想要蓬勃發(fā)展,管理好自己的倉庫就顯得十分重要。但是倉庫中的貨物總是不斷變動(dòng)的,因此,就需要有人將倉庫中貨物的增減情況進(jìn)行記錄。但是傳統(tǒng)的人工記錄的方法存在著許多問題,比如信息安全行性低、查詢效率低等。因此,對(duì)于一個(gè)想要不斷發(fā)展的企業(yè)來說,這種人工記錄的方式必須淘汰。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的使用已經(jīng)十分普遍,每個(gè)企業(yè)都擁有計(jì)算機(jī)。使用計(jì)算機(jī)對(duì)庫存信息進(jìn)行管理有著很多人工記錄所無法比擬的優(yōu)點(diǎn),比如查詢快捷、信息安全性高、添加刪除方便等?;谝陨线@些原因,我開發(fā)了一個(gè)倉庫管理系統(tǒng)。本系統(tǒng)能夠保證貨物的正確的進(jìn)庫、庫存控制和發(fā)貨。并且,系統(tǒng)維護(hù)簡(jiǎn)單,不需要?jiǎng)佑?/p>
4、太多的人力、物力,可以有效的幫助企業(yè)管理好倉庫。1.3 系統(tǒng)開發(fā)平臺(tái)本系統(tǒng)采用B/S的三層架構(gòu),系統(tǒng)使用MyEclipse開發(fā)工具,基于J2EE平臺(tái),采用MVC開發(fā)模式,JSP、Struts技術(shù),選用SQL Server 2000作為系統(tǒng)的數(shù)據(jù)庫平臺(tái)。MyEclipse全名MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse 。MyEclipse企業(yè)級(jí)工作平臺(tái)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以極大的提高在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器整合方面的工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼功能、調(diào)試功能、測(cè)試功能
5、、發(fā)布功能等,完整支持HTML、 Struts、JSP、CSS、Javascript、SQL、Hibernate等框架。JSP技術(shù)JSP技術(shù)是主流Web開發(fā)技術(shù)中使用最為廣泛的一種,它是由Sun公司推出的一款基于Java語言的Web開發(fā)技術(shù)。在Sun公司的倡導(dǎo)下,許多公司都參與到了JSP的開發(fā)之中,使得JSP成為了動(dòng)態(tài)網(wǎng)頁技術(shù)的標(biāo)準(zhǔn)。JSP技術(shù)不僅繼承了Java語言的強(qiáng)大功能,可以方便的開發(fā)出先進(jìn)、安全和跨平臺(tái)的電子商務(wù)系統(tǒng),而且還擁有Java Servlet的穩(wěn)定性,并可以使用Servlet提供API。JSP是目前比較熱門的一款Web網(wǎng)頁開發(fā)技術(shù),由它開發(fā)出的系統(tǒng)具有良好的擴(kuò)充性,實(shí)用性較高
6、。JSP技術(shù)使用Java編程語言編寫類*ML的tags和scriptlets來封裝動(dòng)態(tài)網(wǎng)頁產(chǎn)生的處理邏輯。JSP技術(shù)將網(wǎng)頁的設(shè)計(jì)和顯示與網(wǎng)頁邏輯分離開來,并且設(shè)計(jì)成支持可重用的基于組件,這些功能極大的提高了基于Web的應(yīng)用程序的開發(fā)效率。當(dāng)有訪問JSP頁面的請(qǐng)求發(fā)送到Web服務(wù)器時(shí),首先將其中的程序段進(jìn)行執(zhí)行,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以用來進(jìn)行數(shù)據(jù)庫、重新定向網(wǎng)頁等操作,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。2St
7、ruts2Struts2框架是在Struts1和WebWork框架的基礎(chǔ)上開發(fā)出來的,它吸收了2個(gè)框架的優(yōu)點(diǎn)。Struts1框架和WebWork框架是2個(gè)完全不同的框架。因此,雖然Struts2感覺上好像是Struts1的升級(jí)版,但是卻和Struts1相比,在設(shè)計(jì)理念上有著本質(zhì)的不同。在體系結(jié)構(gòu)和運(yùn)行流程上Struts2和WebWork非常相似,因此,可以將Struts2理解成是繼承了WebWork的血統(tǒng)。Struts2框架大致是由核心控制器、業(yè)務(wù)控制器和用戶實(shí)現(xiàn)的業(yè)務(wù)邏輯組件3個(gè)部分組成。其中,F(xiàn)ilterDispatcher充當(dāng)著核心控制器,該控制器作為一個(gè)Filter運(yùn)行在Web應(yīng)用中,
8、并負(fù)責(zé)攔截用戶的所有請(qǐng)求。用戶使用軟件時(shí),如果請(qǐng)求最后是以.action”結(jié)尾,則,該請(qǐng)求就將轉(zhuǎn)入到Struts2框架中進(jìn)行處理。用戶自己實(shí)現(xiàn)的Action類的實(shí)例其實(shí)就是業(yè)務(wù)控制器,在這些Action類中,一般都包含一個(gè)e*ecute()方法,該方法的返回值一般都是一個(gè)字符串,就是一般我們所說的邏輯視圖名,并且,總有一個(gè)實(shí)際要轉(zhuǎn)到的視圖資源和這些邏輯視圖名相對(duì)應(yīng)。雖然Struts2在核心控制器和業(yè)務(wù)控制器方面為用戶提供了很多幫助,但是在業(yè)務(wù)邏輯組件方面,它確沒有提供太多的幫助。業(yè)務(wù)邏輯組件其實(shí)只是一個(gè)表現(xiàn)層的框架,因此在實(shí)際開發(fā)過程中,當(dāng)控制器需要獲取業(yè)務(wù)邏輯組件時(shí),通常都要通過Factor
9、y模式來獲取所需的業(yè)務(wù)邏輯組件實(shí)例。3Microsoft SQL Server2000Microsoft SQL Server 2000是一款由微軟公司開發(fā)的數(shù)據(jù)庫產(chǎn)品。它擁有很多的分類,但基本都是產(chǎn)品規(guī)格上的改變,部包含的服務(wù)不同。一般有企業(yè)版,各人版,移動(dòng)版以及搜索引擎類等版本。其中,企業(yè)版相對(duì)與其它幾個(gè)版本來說,功能比較齊全,但是確不能在Window*P下安裝,這點(diǎn)比較遺憾。Microsoft SQL Server 2000的主要作用是對(duì)程序所需要的數(shù)據(jù)進(jìn)行存儲(chǔ)、分析、查詢、修改等操作。Microsoft SQL Server 2000簡(jiǎn)化了之前版本數(shù)據(jù)庫中的管理和優(yōu)化功能,并且極大的提
10、高了在線商務(wù)應(yīng)用程序成功部署所需的可靠性和伸縮性。其中,日志傳送、在線備份和故障切換群集等功能用以提高可靠性的特性。并且,對(duì)32顆CPU和64 GB RAM的支持也在很大程度上改進(jìn)在伸縮性方面。通過對(duì)數(shù)據(jù)文件尺寸的自動(dòng)管理、基于向?qū)У臄?shù)據(jù)庫拷貝、自動(dòng)存管理和簡(jiǎn)化的故障切換群集安裝與管理等一系列的自動(dòng)優(yōu)化和改進(jìn)后的管理特性,使得用戶能夠迅速部署并有效管理在線商務(wù)應(yīng)用程序。Microsoft SQL Server還提供了數(shù)據(jù)庫完整性保護(hù)。在SQL Server中,為了對(duì)實(shí)現(xiàn)數(shù)據(jù)庫完整性的約束,則通過檢查(Check)約束、默認(rèn)值(Default)約束、用戶定義的數(shù)據(jù)類型、規(guī)則(Rule)、存儲(chǔ)過程
11、(Stored procedure)、觸發(fā)器(Trigger)等技術(shù)來實(shí)現(xiàn),從而使數(shù)據(jù)庫中的數(shù)據(jù)達(dá)到一致、正確,以提高數(shù)據(jù)庫系統(tǒng)的性能。2系統(tǒng)需求分析需求分析是系統(tǒng)開發(fā)的首要步驟,也是直接影響系統(tǒng)整體性能和功能的關(guān)鍵步驟。系統(tǒng)的需求分析主要是對(duì)系統(tǒng)的可行性、性能和功能進(jìn)行具體地分析。不合理的需求分析,會(huì)使系統(tǒng)的開發(fā)環(huán)節(jié)出現(xiàn)許多錯(cuò)誤和走許多彎路,導(dǎo)致系統(tǒng)開發(fā)時(shí)間長(zhǎng),效率低,系統(tǒng)質(zhì)量受到影響。2.1運(yùn)行環(huán)境分析硬件需求 CPU:1G以上 存:512M以上 硬盤:1G以上系統(tǒng)環(huán)境 操作系統(tǒng):Window *P/Window2000 數(shù)據(jù)庫:SQL Server 2000 開發(fā)工具:MyEclipse
12、 開發(fā)語言:Java2.2功能模塊分析(1)功能分析系統(tǒng)具有倉庫管理系統(tǒng)的基本功能。系統(tǒng)分為兩個(gè)部分,一個(gè)是用戶部分:用戶可以使用用戶名和密碼登錄系統(tǒng)進(jìn)行操作。一個(gè)是系統(tǒng)部分:這部分包括對(duì)商品的入庫、出庫操作,在庫貨物查詢等功能。(2)模塊分析登錄模塊:倉庫管理人員進(jìn)入系統(tǒng)必須經(jīng)過登錄。添加商品信息模塊:新入庫的商品,在進(jìn)入倉庫之前,必須經(jīng)過倉庫管理人員的進(jìn)行添加。入庫模塊:倉庫中已有的商品才能進(jìn)行的操作,主要是入庫數(shù)量上的變化。商品類別管理模塊:商品類別來區(qū)分各種商品,將商品分類管理。2.3系統(tǒng)目的分析倉儲(chǔ)物流在企業(yè)的整個(gè)供應(yīng)鏈中起到一個(gè)至關(guān)重要的作用,如果不能正確的保證貨物的入庫,庫存貨物
13、的發(fā)貨,將導(dǎo)致企業(yè)管理費(fèi)用的增加。并且,倉庫管理人員的工作時(shí)間會(huì)延長(zhǎng),工作的效率不高。開發(fā)這個(gè)系統(tǒng),主要的目的就是幫助倉庫管理人員提高工作效率,降低工作時(shí)間,實(shí)現(xiàn)倉庫貨物在管理上的系統(tǒng)化,規(guī)化和自動(dòng)化。2.4性能分析本系統(tǒng)操作簡(jiǎn)單,界面美觀,使用本系統(tǒng)的倉庫管理人員不需要掌握太多的專業(yè)知識(shí)便可熟練使用。系統(tǒng)能夠迅速的將倉庫管理人員對(duì)商品信息的操作(包括商品的入庫、出庫,商品信息的修改和刪除,商品類別的添加和刪除等)顯示在對(duì)應(yīng)的頁面中,達(dá)到即時(shí)操作,即時(shí)顯示”的效果。系統(tǒng)功能完善,包括了一般倉庫管理系統(tǒng)的所有功能,完全能夠滿足用戶的需要。3系統(tǒng)設(shè)計(jì)系統(tǒng)的設(shè)計(jì)是系統(tǒng)開發(fā)中的一個(gè)重要環(huán)節(jié)。本章將主要
14、介紹一個(gè)基于B/S架構(gòu)的倉庫管理系統(tǒng)的總體結(jié)構(gòu)、系統(tǒng)架構(gòu)和數(shù)據(jù)庫設(shè)計(jì)。總體結(jié)構(gòu)主要介紹了各個(gè)模塊之間的關(guān)系,數(shù)據(jù)庫設(shè)計(jì)主要說明了表的建立和數(shù)據(jù)之間的關(guān)系。3.1 總體結(jié)構(gòu)本系統(tǒng)包含了倉庫管理系統(tǒng)所需要的基本功能,能夠滿足一般用戶對(duì)于倉庫管理的需要,能有效的提高倉庫管理人員的工作效率。根據(jù)系統(tǒng)的需求分析,系統(tǒng)大體分為以下幾個(gè)模塊:登錄模塊、添加商品信息模塊、出庫模塊、入庫模塊、商品類別管理模塊。其中,各個(gè)模塊又有不同的子模塊??傮w結(jié)構(gòu)如圖3.1所示。倉庫管理系統(tǒng)登入商品信息查詢商品入庫新入庫商品管理商品類別管理出庫商品信息查詢刪除信息商品出庫添加刪除圖3.1 總體結(jié)構(gòu)圖3.2 系統(tǒng)架構(gòu)系統(tǒng)是基于
15、B/S結(jié)構(gòu)開發(fā)的,B/S結(jié)構(gòu)分為表示層、業(yè)務(wù)層、數(shù)據(jù)層三層。其中:(1)表示層:作為用戶的接口層,負(fù)責(zé)用戶與整個(gè)系統(tǒng)交互,利用JSP技術(shù)來實(shí)現(xiàn)。(2)業(yè)務(wù)層:作為業(yè)務(wù)邏輯的封裝層,采用Struts2框架,頁面接受到用戶請(qǐng)求后,將數(shù)據(jù)層取到的數(shù)據(jù)進(jìn)行處理,最后把處理結(jié)果在表示層中顯示出來。(3)數(shù)據(jù)層:作為數(shù)據(jù)的存儲(chǔ)層,采用SQL Server 2000數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的管理。3.3數(shù)據(jù)庫設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)從系統(tǒng)的需求出發(fā),用數(shù)據(jù)流的形式將設(shè)計(jì)對(duì)象表達(dá)成完整的抽象實(shí)體。但不涉及模塊部的細(xì)節(jié)。它的描述工具是E-R圖,如圖3.2所示。管理人員貨物用戶名密 碼商品名稱商品商品類別商品數(shù)量生產(chǎn)廠家入
16、庫出庫MN修改刪除管理添加圖3.2 系統(tǒng)E-R圖邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)的描述方法是基本表,它反映了系統(tǒng)中所涉及數(shù)據(jù)的邏輯結(jié)構(gòu)。根據(jù)系統(tǒng)中數(shù)據(jù)信息的特點(diǎn),將數(shù)據(jù)的概念模型轉(zhuǎn)換為關(guān)系模型。(1)用戶信息關(guān)系模式,其中用戶名為關(guān)系主鍵。用戶(用戶ID、用戶名、密碼)(2)商品信息關(guān)系模式,其中商品為關(guān)系主鍵。商品(商品、商品名、生產(chǎn)產(chǎn)地、商品數(shù)量、類別ID)(3)商品類別信息關(guān)系模式,其中類別ID為關(guān)系主鍵。商品類別(類別ID、類別名)(4) 出庫商品信息關(guān)系模式,其中商品為關(guān)系主鍵。出庫商品(商品、商品名、生產(chǎn)產(chǎn)地、出庫數(shù)量、類別ID)表3.1商品信息表(kehu)列名數(shù)據(jù)類型可否為空說明IDVar
17、char(50)NOT NULL商品IDnameVarchar(50)NULL商品名稱fromVarchar(50)NULL生產(chǎn)廠家numberChar(10)NULL商品數(shù)量sortIDint(4)NULL商品類別ID表3.2商品出庫信息表(outkehu)列名數(shù)據(jù)類型可否為空說明IDVarchar(50)NOT NULL商品IDnameVarchar(50)NULL商品名稱fromVarchar(50)NULL生產(chǎn)廠家numberChar(10)NULL商品數(shù)量sortIDint(4)NULL商品類別ID表3.3倉庫管理員信息表(abc)列名數(shù)據(jù)類型可否為空說明userIDchar(10)
18、NOT NULL管理員IDusernamechar(10)NULL管理員passwordchar(10)NULL密碼表3.4商品類別管理信息表(sort)列名數(shù)據(jù)類型可否為空說明sortIDInt(4)NOT NULL商品類別IDsortNameChar(10)NULL商品類別名稱物理結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用Microsoft SQL Server 2000數(shù)據(jù)庫系統(tǒng),系統(tǒng)提供了良好的數(shù)據(jù)庫管理功能來管理商品數(shù)據(jù)。數(shù)據(jù)庫名為fmw,表名分別為kehu、abc、outkehu、sort。數(shù)據(jù)的備份和恢復(fù)采用數(shù)據(jù)庫系統(tǒng)本身提供的數(shù)據(jù)導(dǎo)入/導(dǎo)出工具來完成,形成相應(yīng)的數(shù)據(jù)文件。其中數(shù)據(jù)文件名為fmw_Dat
19、a.MDF;日志文件名為fmw_Log.LDF。4 系統(tǒng)實(shí)現(xiàn)該系統(tǒng)實(shí)現(xiàn)了倉庫管理系統(tǒng)的基本功能,包括商品的入庫、出庫,商品信息的修改和刪除,商品類別的添加、刪除。用戶(即倉庫管理人員)登錄后可以進(jìn)入系統(tǒng)使用主界面,在主界面上,倉庫管理人員可以對(duì)本系統(tǒng)的各個(gè)界面進(jìn)行操作。數(shù)據(jù)庫連接和頁面顯示 數(shù)據(jù)庫連接本系統(tǒng)與數(shù)據(jù)庫的連接方式,包括對(duì)數(shù)據(jù)庫中的信息進(jìn)行添加、刪除、修改,都封裝在一個(gè)名為DBOper.java的文件中,以便倉庫管理人員在計(jì)算機(jī)上運(yùn)行本系統(tǒng)時(shí),對(duì)數(shù)據(jù)庫進(jìn)行必要的操作。具體代碼如下。import java.sql.*;publicclass DBOper public DBOper()
20、 try Class.forName(.microsoft.jdbc.sqlserver.SQLServerDriver); catch(ClassNotFoundE*ception e) private Connection getConnection()Connection conn = null;tryconn=DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=fmw, sa, sa);/填寫相關(guān)的數(shù)據(jù)庫名和數(shù)據(jù)庫用戶名和密碼 Statement stmt=conn.createStatemen
21、t(); catch(SQLE*ception e) System.out.println(e.getMessage(); return conn;public ResultSet e*ecuteQuery(String sql) ResultSet rs=null;try Connection conn=this.getConnection(); Statement stmt=conn.createStatement(); rs=stmt.e*ecuteQuery(sql); catch(SQLE*ception e) System.out.println(e.getMessage(); r
22、eturn rs; /用于執(zhí)行Insert、Update、Delete語句以及SQL DDL語句publicint e*ecuteUpdate(String sql)int num = 0;try Connection conn=this.getConnection();/初始化數(shù)據(jù)庫的連接 Statement stmt=conn.createStatement();/執(zhí)行一個(gè)連接 num =stmt.e*ecuteUpdate(sql);/執(zhí)行sql的操作 catch(SQLE*ception e) System.out.println(e.getMessage(); return num;
23、/關(guān)閉一個(gè)連接privatevoidcloseConn(Connection conn)if(null != conn)try conn.close(); catch (SQLE*ception e) e.printStackTrace();/關(guān)閉一個(gè)連接privatevoidcloseStam(Statement stmt)if(null != stmt)try stmt.close(); catch (SQLE*ception e) e.printStackTrace(); 頁面顯示本系統(tǒng)的頁面顯示很多都是采用的分頁顯示。因?yàn)?,在一般的情況下,倉庫中的商品補(bǔ)可能只有一種,因此,要將商品的信
24、息分開顯示出來就需要用到分頁查詢的功能。具體代碼如下。public List queryByPage (int pageSize, int pageNow) List list = new ArrayList () ; try if (this.getConnection()!=null & pageSize0 & pageNow0) pstmt = this.getConnection().prepareStatement( select * from kehu order by ID limit +(pageNow*pageSizeSize)+,+pageSize );/以商品ID為標(biāo)準(zhǔn)查
25、詢數(shù)據(jù)表kehu中的商品信息rs = pstmt.e*ecuteQuery () ; while (rs.ne*t() kehu = new Kehu () ; kehu.setID (rs.getInt(1) ; kehu.setname (rs.getString(2) ; kehu.setfrom (rs.getString(3) ; kehu.setnumber (rs.getString(4) ; kehu.setSortID (rs.getString(5) ; list.add (kehu) ; catch(SQLE*ception e) e.printStackTrace()
26、; return list ; 4.2 登錄模塊本系統(tǒng)是一個(gè)單用戶系統(tǒng)。倉庫管理人員使用用戶名和密碼登入系統(tǒng)之后,可進(jìn)入主界面對(duì)系統(tǒng)進(jìn)行操作。登錄界面設(shè)計(jì),如圖4.1所示。圖4.1 用戶登錄界面當(dāng)倉庫管理人員登錄系統(tǒng),必須輸入正確的用戶名和密碼,當(dāng)輸入的用戶名或者密碼錯(cuò)誤時(shí),就會(huì)出現(xiàn)登錄失敗的情況。實(shí)現(xiàn)判斷登錄人員用戶名和密碼是否錯(cuò)誤功能的主要代碼如下。public String e*ecute() throws E*ceptionDBOper dbOper=new DBOper();String sql=select * from abc where username=+username+
27、and password=+password+;/查詢數(shù)據(jù)表abc中是否有這個(gè)用戶名和密碼ResultSet rs=dbOper.e*ecuteQuery(sql);System.out.println(sql);if(rs.ne*t()return main;elsereturn error;/查詢結(jié)果如果有則返回到main,沒有,則返回error,這兩個(gè)返回值對(duì)應(yīng)兩個(gè)JSP頁面4.3 主界面模塊當(dāng)倉庫管理人員用正確的用戶名和密碼登錄進(jìn)系統(tǒng)之后,即可直接進(jìn)入到主界面。在主界面上,有各個(gè)子功能界面的超選項(xiàng),包括商品信息查詢、商品入庫、新商品入庫管理、商品類別管理、商品出庫信息查詢。當(dāng)倉庫管理人
28、員完成工作后,即可選擇退出。主界面如圖4.2所示。圖4.2 應(yīng)用界面4.4 商品信息查詢模塊本模塊主要功能為商品信息查詢。倉庫管理人員進(jìn)入該頁面后,可以在本模塊的界面中查詢到所有商品的信息,并且還有關(guān)于商品出庫和修改商品信息操作的超選項(xiàng)。界面如圖4.3所示。圖4.3 商品信息界面從圖中可以看到,倉庫管理人員可以看到所有商品的信息。這個(gè)主要由action包中的ShowGoodsAction.java類來實(shí)現(xiàn)的。ShowGoodsAction.java類的作用是創(chuàng)建一個(gè)鏈表,將要顯示的商品信息放入這個(gè)鏈表中。具體代碼為:ShowGoodsAciton.java:publicclass ShowGo
29、odsAction public String e*ecute() throws E*ceptionDBOper db = new DBOper();ResultSet rs = db.e*ecuteQuery(select * from kehu );/查詢kehu這個(gè)表ArrayList listGoods = newArrayList();/創(chuàng)建一個(gè)名為listGoods的鏈表while (rs.ne*t()Goods goods = new Goods();goods.setID(rs.getString(1);goods.setname(rs.getString(2);goods.s
30、etnumber(rs.getString(4);goods.setSortID(rs.getString(5);goods.setfrom(rs.getString(3);listGoods.add(goods);/將取出的商品信息放到listGoods這個(gè)鏈表中ActionConte*t actionConte*t = ActionConte*t.getConte*t();Map map = actionConte*t.getApplication();map.put(listGoods, listGoods);/將鏈表里的容放到map對(duì)象里return success;商品出庫當(dāng)倉庫管理
31、人員需要對(duì)在庫商品進(jìn)行出庫操作時(shí),只需在商品查詢界面的相應(yīng)的商品信息后點(diǎn)擊出庫操作的選項(xiàng)。點(diǎn)擊出庫選項(xiàng)之后,便進(jìn)入到商品出庫操作界面,界面如圖4.4所示。圖4.4 商品出庫界面當(dāng)倉庫管理人員點(diǎn)擊確定之后,頁面會(huì)根據(jù)倉庫管理人員輸入的數(shù)量,對(duì)數(shù)據(jù)庫中該商品的數(shù)量進(jìn)行刪減。完成該功能所需的代碼如下。publicclassDeleteWaresAction private String ID;private String number1;public String e*ecute() throws E*ceptionDBOper dbOper=new DBOper();String sql=upda
32、te kehu set number=number - +number1+ where ID=+ID+ ;/以商品ID為條件,將該商品在原有數(shù)量的基礎(chǔ)上,減去輸入的數(shù)量int num=dbOper.e*ecuteUpdate(sql);System.out.println(sql);if(num!=0)returnsuccess;elsereturnerror;public String getID() returnID;publicvoid setID(String ID) this.ID = ID;商品信息修改 當(dāng)倉庫管理人員需要對(duì)現(xiàn)在倉庫中的商品信息進(jìn)行修改時(shí),只需在商品信息查詢界面的相
33、應(yīng)的商品信息后點(diǎn)擊修改操作的選項(xiàng)。修改選項(xiàng)是一個(gè)超,它觸發(fā)了一個(gè)action,將倉庫管理人員所選的這一行商品信息顯示出來。如圖4.5所示。圖4.5 商品信息修改界面從圖中可以看到,頁面上顯示了將要修改的*一行商品的所有信息,并且可以直接在方框進(jìn)行修改。完成這個(gè)功能的代碼如下。publicclass Modify2Action private String ID;private String name1;private String from1;private String number1;public String e*ecute() throws E*ceptionDBOper dbOper
34、=new DBOper();String sql=update kehu set name=+name1+, from=+from1+, number=+number1+where ID=+ID+ ;/以商品ID為標(biāo)記,替換商品的信息,因?yàn)樯唐稩D為主鍵,不能替換int num=dbOper.e*ecuteUpdate(sql);System.out.println(sql);if(num!=0)returnsuccess;elsereturnerror;public String getID() returnID;publicvoid setID(String ID) this.ID = I
35、D;4.5 商品入庫模塊 當(dāng)有倉庫中已有的貨物進(jìn)入倉庫時(shí),倉庫管理人員可以使用主界面上的商品入庫”操作選項(xiàng)進(jìn)入商品入庫界面。在這個(gè)界面中,倉庫管理人員可以看到現(xiàn)有商品的所有信息,并且可以在相應(yīng)的商品信息后面點(diǎn)擊入庫操作選項(xiàng)進(jìn)行商品的入庫操作。該界面如圖4.6所示。圖4.6 商品入庫界面圖中的商品信息的顯示的方法和代碼,參照4.4商品信息查詢界面。商品入庫 當(dāng)點(diǎn)擊了上圖中的入庫”操作選項(xiàng)之后,就進(jìn)入了商品入庫操作的界面,在這個(gè)界面,倉庫管理人員只需輸入新入庫的該商品的數(shù)量即可。該界面如圖4.7所示。圖4.7 商品入庫操作界面當(dāng)倉庫管理人員輸入數(shù)量后,點(diǎn)擊確定,即完成了對(duì)商品的入庫操作。完成該功能
36、的代碼可參照完成圖4.3功能所用的代碼。之前很多次提到點(diǎn)擊操作選項(xiàng)顯示*一個(gè)商品的全部信息的操作功能,實(shí)現(xiàn)這個(gè)功能的代碼如下。publicclass ModifyAction String ID;public String e*ecute() throws E*ceptionGoods goods=new Goods();DBOper db = new DBOper();String sql=select * from kehu where ID=+ID+;/從數(shù)據(jù)庫中查詢所選商品ID的商品的信息System.out.println(sql);ResultSet rs = db.e*ecute
37、Query(sql);ArrayList listGoods1 = newArrayList();/創(chuàng)建一個(gè)鏈表while (rs.ne*t()goods.setID(rs.getString(1);goods.setname(rs.getString(2);goods.setnumber(rs.getString(4);goods.setSortID(rs.getString(5);goods.setfrom(rs.getString(3);listGoods1.add(goods);Map request = (Map)ActionConte*t.getConte*t().get(requ
38、est);request.put(listGoods1, listGoods1);/將鏈表里的容放到request對(duì)象里,使網(wǎng)頁能夠取出returnsuccess;public String getID() returnID;publicvoid setID(String ID) this.ID = ID;4.6 新商品入庫管理模塊當(dāng)有新的商品進(jìn)入倉庫中時(shí),倉庫管理人員需點(diǎn)擊主界面的新商品入庫管理”選項(xiàng)。在進(jìn)行添加商品信息的操作過程中,商品的類別選擇是根據(jù)一個(gè)連接著sort”數(shù)據(jù)表的下拉框來選擇的。當(dāng)將新入庫的商品的信息填寫完畢之后,點(diǎn)擊確定將新入庫的商品的信息添加到管理商品信息的數(shù)據(jù)表keh
39、u”中。界面如圖4.8所示。圖4.8 新商品入庫操作界面當(dāng)點(diǎn)擊確定”之后,就將倉庫管理人員輸入的新入庫商品的信息保存到了數(shù)據(jù)庫中,功能實(shí)現(xiàn)的具體代碼如下。import;import;import ado.DBOper;import.opensymphony.*work2.*;publicclass AddAction private String ID=null;private String name=null;private String from=null;private String number=null;privateint sortID;/初始化商品的信息public String
40、 e*ecute() throws E*ceptionDBOper dbOper=new DBOper();/實(shí)例化一個(gè)DBOperString sql=insert into kehu (ID,name,from,number,sortID) values (+ID+ ,+ +name+,+ +from+,+ +number+,+ +sortID+);/將填寫的信息保存到kehu數(shù)據(jù)表中int num=dbOper.e*ecuteUpdate(sql);if(num!=0)return success2;elsereturn error;public String getID() return ID;publicvoid setID(String ID) this.ID = ID;4.7 商品類別管理模塊在本文4.6章新商品入庫管理模塊中,我已經(jīng)提到商品的類別選擇是由一個(gè)連接著sort” 數(shù)據(jù)表的下拉框來選擇的。因此,必定有一個(gè)管理著商品類別的界面。界面如圖4.9所示。圖4.9 商品類別管理界面如圖可見,商品類別的管理有添加和刪除兩個(gè)方面。點(diǎn)擊上圖的增加商品類別”選項(xiàng)可進(jìn)行商品類別的添加操作,操作的實(shí)現(xiàn)界面可參照本文4.5章的圖4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾自治區(qū)塔城地區(qū)塔城市2022-2023學(xué)年高二上學(xué)期期中語文含解析
- 廣東省汕頭市2023-2024學(xué)年高三上學(xué)期12月期中考?xì)v史含解析
- 小學(xué)生養(yǎng)成教育冠軍演講
- 茅臺(tái)學(xué)院《汽車電控原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 襄陽職業(yè)技術(shù)學(xué)院《綜合保稅區(qū)運(yùn)營(yíng)實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州康大職業(yè)技術(shù)學(xué)院《安全化工基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 萊蕪職業(yè)技術(shù)學(xué)院《花卉學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 永州職業(yè)技術(shù)學(xué)院《分析力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島理工大學(xué)《現(xiàn)當(dāng)代文學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海交通職業(yè)技術(shù)學(xué)院《日語專業(yè)認(rèn)知教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 第16課《經(jīng)濟(jì)危機(jī)與資本主義國(guó)家的應(yīng)對(duì)》中職高一下學(xué)期高教版(2023)世界歷史全一冊(cè)
- 貨運(yùn)車隊(duì)的管理制度模版(2篇)
- 2024年貴州省貴陽市中考生物試卷(附答案)
- 《威尼斯商人》課本劇劇本:一場(chǎng)人性與金錢的較量(6篇)
- 管道、閥門安裝方案
- 旅游業(yè)游客滿意度調(diào)查與管理制度
- 2024年公路水運(yùn)工程試驗(yàn)檢測(cè)師《道路工程》考試題庫大全(含真題等)-中(多選題)
- 噴繪設(shè)備買賣合同三篇
- 四年級(jí)語文下冊(cè) 第19課《小英雄雨來》同步訓(xùn)練題(含答案)(部編版)
- 高中英語:倒裝句專項(xiàng)練習(xí)(附答案)
- 2024年全國(guó)職業(yè)院校技能大賽中職(電子產(chǎn)品設(shè)計(jì)與應(yīng)用賽項(xiàng))考試題庫(含答案)
評(píng)論
0/150
提交評(píng)論