版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
62/65目錄TOC\o"1-3"\h\u253621項(xiàng)目介紹 191971.1項(xiàng)目名稱 126361.2項(xiàng)目主題 132751.2.1課題來(lái)源 149061.2.2研究現(xiàn)狀 126631.3設(shè)計(jì)目的和意義 2107021.3.1可行性研究 240152相關(guān)理論和技術(shù) 3223952.1C/S模式 37002.2SQLServer2008 3277122.3JDK 4215842.4APACHE 4151013需求分析 4174853.1任務(wù)概述 4252243.1.1目標(biāo) 4170913.1.2運(yùn)行環(huán)境 4299483.2業(yè)務(wù)流程分析 567903.3數(shù)據(jù)流分析 657493.3.1數(shù)據(jù)編碼 6147063.3.2數(shù)據(jù)字典 6140283.4功能需求分析 7193924概要設(shè)計(jì) 8192315邏輯設(shè)計(jì) 94406界面設(shè)計(jì) 9264706.1登陸界面 9105246.2管理員界面 1077176.3倉(cāng)庫(kù)管理界面 1164596.4零件管理界面 12318607總結(jié) 1422058參考文獻(xiàn) 1522059附錄 161項(xiàng)目介紹1.1項(xiàng)目名稱倉(cāng)庫(kù)貨物管理系統(tǒng)1.2項(xiàng)目主題1.2.1課題來(lái)源隨著計(jì)算機(jī)信息技術(shù)的不斷普及與發(fā)展,計(jì)算機(jī)的信息管理系統(tǒng)對(duì)企事業(yè)的重要性顯得越來(lái)越重要。倉(cāng)庫(kù)貨物管理系統(tǒng)作為一個(gè)企業(yè)不可或缺的一部分,他的功能與發(fā)揮的作用對(duì)于企業(yè)的決策者和管理者來(lái)說(shuō)都是至關(guān)重要的一部分。人們一直以來(lái)使用的傳統(tǒng)人工管理倉(cāng)庫(kù)的方式,這種管理方式有著諸多缺點(diǎn),如查詢、錄入的效率低下、保密性不好等。并且隨著時(shí)間的不斷推移產(chǎn)生的文檔,數(shù)據(jù)對(duì)管理者的更新、維護(hù)帶來(lái)巨大的挑戰(zhàn)與困難。所以需要開發(fā)一個(gè)倉(cāng)庫(kù)貨物管理系統(tǒng)為企業(yè)用戶提供充足的信息和查詢、管理手段。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)產(chǎn)品倉(cāng)庫(kù)信息進(jìn)行管理,具有人工管理無(wú)法比擬的有點(diǎn),它檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等諸多有點(diǎn),可以減少更多人力物力的投入。管理信息化也是企業(yè)倉(cāng)庫(kù)管理科學(xué)化、正規(guī)化,與世界接軌的重要條件。倉(cāng)庫(kù)管理涉及貨物管理、盤點(diǎn)管理、倉(cāng)庫(kù)管理、入庫(kù)管理、出庫(kù)管理、庫(kù)存管理等業(yè)務(wù),這些業(yè)務(wù)涉及大量的數(shù)據(jù)和信息,而且對(duì)這些數(shù)據(jù)的信息的準(zhǔn)確性、及時(shí)性都要求非常高,任何錯(cuò)誤和遺漏都會(huì)造成公司的損失,若采用純?nèi)斯さ姆椒ㄟM(jìn)行管理有一定的難度。因此,采用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)倉(cāng)庫(kù)管理是很有必要的,是提高企業(yè)管理水平的有效方法。1.2.2研究現(xiàn)狀現(xiàn)在國(guó)內(nèi)外對(duì)此類系統(tǒng)的開發(fā)與研究也是很有實(shí)用性的,基本上能滿足各類企業(yè)也的自身特點(diǎn),來(lái)進(jìn)行倉(cāng)庫(kù)方面的管理,同時(shí),改進(jìn)系統(tǒng)又都在不斷地深入與發(fā)展,來(lái)使用更多的企業(yè),一般都能運(yùn)用于各企業(yè)的倉(cāng)庫(kù)管理,但是都沒有針對(duì)大眾的廣泛應(yīng)用,只能運(yùn)用某個(gè)企業(yè)或單位,這還需要進(jìn)一步開發(fā)與實(shí)踐。我國(guó)物流的發(fā)展在整體上和發(fā)達(dá)國(guó)家相比無(wú)論是發(fā)展規(guī)模還是發(fā)展的程度都有著不小的差距。在管理方面,發(fā)達(dá)國(guó)家的倉(cāng)庫(kù)基本上已經(jīng)電子化、無(wú)紙化,國(guó)內(nèi)倉(cāng)庫(kù)基本上仍然是臺(tái)賬管理,絕大多數(shù)倉(cāng)庫(kù)沒有信息化的系統(tǒng)。今后此類的軟件將會(huì)向條形碼倉(cāng)庫(kù)管理系統(tǒng)發(fā)展,現(xiàn)階段,伴隨著物流及管理信息化、網(wǎng)絡(luò)化的發(fā)展,應(yīng)用條形二維碼進(jìn)行倉(cāng)庫(kù)管理、實(shí)現(xiàn)倉(cāng)庫(kù)作業(yè)自動(dòng)化,將是一個(gè)必然的發(fā)展趨勢(shì),也是需要迫切解決的一個(gè)現(xiàn)實(shí)問題。條形碼管理在計(jì)算機(jī)信息化技術(shù)日益普及的今天有著十分重要的意義,商品貼上條形碼不僅可以減少輸入貨物信息的時(shí)間,還可以減少人工輸入造成的錯(cuò)誤。補(bǔ)單可以提高作業(yè)效率,還能確保貨物信息輸入的正確性。另外,倉(cāng)庫(kù)管理需要實(shí)現(xiàn)信息化和可視化,將來(lái)企業(yè)倉(cāng)庫(kù)將不是個(gè)單純的倉(cāng)庫(kù),他將擁有一個(gè)實(shí)實(shí)在在裝著貨物的倉(cāng)庫(kù),還擁有一個(gè)數(shù)據(jù)眾多管理方便的數(shù)據(jù)倉(cāng)庫(kù),對(duì)其中的貨物進(jìn)行編碼、管理。形象的說(shuō),貨架上的號(hào)碼就是貨物的地址,從而避免了貨物的分揀和提取時(shí)的翻箱倒柜式的查找。倉(cāng)庫(kù)管理的信息化在高速發(fā)展的信息時(shí)代勢(shì)在必行而且將給企業(yè)帶來(lái)極大的幫助。1.3設(shè)計(jì)目的和意義在這樣一個(gè)信息化的時(shí)代,將計(jì)算機(jī)管理應(yīng)用于倉(cāng)庫(kù)的日常管理已是大勢(shì)所趨,它可以為企業(yè)帶來(lái)意想不到的效益,同時(shí)為企業(yè)的飛速發(fā)展打好堅(jiān)實(shí)的基礎(chǔ)。采用計(jì)算機(jī)管理信息系統(tǒng)已成為倉(cāng)庫(kù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理帶來(lái)了明顯的經(jīng)濟(jì)效益和社會(huì)效益。主要體現(xiàn)在:可以減少輸入庫(kù)過(guò)程中繁瑣的流程,提高倉(cāng)庫(kù)人員的工作效率。倉(cāng)庫(kù)管理系統(tǒng)實(shí)現(xiàn)自動(dòng)化之后,完全有能力減少出入庫(kù)管理以及庫(kù)存管理中的諸多問題,不但節(jié)約開支、提高企業(yè)效率,還可以減輕工作人員的壓力。倉(cāng)庫(kù)貨物管理系統(tǒng)主要目的是為了實(shí)現(xiàn)企業(yè)倉(cāng)庫(kù)管理系統(tǒng)化、規(guī)范化和自動(dòng)化,從而提高企業(yè)管理效率、增加企業(yè)收入。它完全可以用來(lái)取代原來(lái)倉(cāng)庫(kù)中使用人工管理的方式,并且可以避免由于人為失誤造成的損失,為及時(shí)、準(zhǔn)確、高效的完成倉(cāng)庫(kù)管理提供了強(qiáng)有力的工具和管理手段。倉(cāng)庫(kù)管理系統(tǒng)是一個(gè)中小型數(shù)據(jù)管理系統(tǒng),它易上手、已操作、界面美觀、安全性強(qiáng)。整個(gè)系統(tǒng)將由貨物管理、出入庫(kù)管理、基本資料管理、倉(cāng)區(qū)管理等模塊,用戶通過(guò)相應(yīng)的模塊,對(duì)倉(cāng)庫(kù)里的物品的基本情況進(jìn)行操作,通過(guò)簡(jiǎn)單的操作即可輕松的管理倉(cāng)庫(kù)。1.3.1可行性研究倉(cāng)庫(kù)管理系統(tǒng)是為了實(shí)現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而提高企業(yè)管理效率而設(shè)計(jì)的。它完全取代了原來(lái)一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯(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ù)管理的要求。本系統(tǒng)的開發(fā)語(yǔ)言采用的是JAVA,開發(fā)環(huán)境采用的是JDK,數(shù)據(jù)庫(kù)采用SQLServer5.0,具有一般系統(tǒng)的數(shù)據(jù)功能,如數(shù)據(jù)查詢,修改和刪除等。倉(cāng)庫(kù)管理系統(tǒng)在運(yùn)行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時(shí)也實(shí)現(xiàn)了倉(cāng)庫(kù)管理計(jì)算機(jī)化。2相關(guān)理論和技術(shù)2.1C/S模式C/S模式分為客戶機(jī)和服務(wù)器兩層,客戶機(jī)具有了一定的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)處理能力。通過(guò)將應(yīng)用軟件的算法和數(shù)據(jù)合理分配給客戶端和服務(wù)端的方法,可以降低服務(wù)器的負(fù)載,發(fā)揮客戶端的能力。本文要研究的倉(cāng)庫(kù)系統(tǒng)就適用于倉(cāng)庫(kù)這樣用戶數(shù)目不多的局域網(wǎng)中。C/S模式只依賴于企業(yè)內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng),即無(wú)論企業(yè)是否能夠上網(wǎng),都不影響其應(yīng)用。綜合考慮以上的因素,本系統(tǒng)最終決定采用C/S模式開發(fā),充分發(fā)揮客戶端的處理能力。2.2SQLServer2008SQL是英文StructuredQueryLanguage的縮寫,就是人們所說(shuō)的結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。雖然許多數(shù)據(jù)庫(kù)在SQL的基礎(chǔ)上進(jìn)行了改進(jìn)和升級(jí),但是包括增、刪】改、查等標(biāo)準(zhǔn)的SQL命令仍然可以用來(lái)完成幾乎所有的數(shù)據(jù)庫(kù)操作。這個(gè)平臺(tái)是可信任、高效、只能的,使得企業(yè)的倉(cāng)庫(kù)貨物管理系統(tǒng)使用他時(shí)可以有很高的安全性、可靠性,并且可以降低開發(fā)管理數(shù)據(jù)基本設(shè)施的成本。2.3JDKJDK是Java語(yǔ)言的軟件開發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK(JavaDevelopmentKit)是SunMicrosystems針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的JavaSDK(Softwaredevelopmentkit)。JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(kù)(rt.jar)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運(yùn)行效率要比SunJDK包含的JVM高出許多。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比SunJDK好很多。但不管怎么說(shuō),我們還是需要先把SunJDK掌握好。從SUN的JDK5.0開始,提供了泛型等非常實(shí)用的功能,其版本信息也不再延續(xù)以前的1.2,1.3,1.4,而是變成了5.0,6.0了。從6.0開始,其運(yùn)行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。JDK本身使用了Java語(yǔ)言編寫,在我們下載的安裝包里,有一個(gè)src.zip,里面就是JDK的源代碼。版本SE(J2SE),standardedition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本,從JDK5.0開始,改名為JavaSE。EE(J2EE),enterpsiseedtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK5.0開始,改名為JavaEE。ME(J2ME),microedtion,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK5.0開始,改名為JavaME。2.4APACHEApacheHTTPServer(簡(jiǎn)稱Apache)是Apache軟件基金會(huì)的一個(gè)開放源碼的網(wǎng)頁(yè)服務(wù)器,可以在大多數(shù)計(jì)算機(jī)操作系統(tǒng)中運(yùn)行,由于其多平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過(guò)簡(jiǎn)單的API擴(kuò)展,將Perl/Python等解釋器編譯到服務(wù)器中。ApacheHTTP服務(wù)器是一個(gè)模塊化的服務(wù)器,源于NCSAhttpd服務(wù)器,經(jīng)過(guò)多次修改,成為世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上。Apache源于NCSAhttpd服務(wù)器,經(jīng)過(guò)多次修改,成為世界上最流行的Web服務(wù)器軟件之一。Apache取自“apatchyserver”的讀音,意思是充滿補(bǔ)丁的服務(wù)器,因?yàn)樗亲杂绍浖圆粩嘤腥藖?lái)為它開發(fā)新的功能、新的特性、修改原來(lái)的缺陷。Apache的特點(diǎn)是簡(jiǎn)單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來(lái)使用。3需求分析3.1任務(wù)概述經(jīng)過(guò)調(diào)查,對(duì)倉(cāng)庫(kù)管理的業(yè)務(wù)流程進(jìn)行分析。庫(kù)存的變化通常是通過(guò)入庫(kù)、出庫(kù)操作來(lái)進(jìn)行。系統(tǒng)對(duì)每個(gè)入庫(kù)操作均要求用戶填寫入庫(kù)單,對(duì)每個(gè)出庫(kù)操作均要求用戶填寫出庫(kù)單。在出入庫(kù)操作同時(shí)可以進(jìn)行增加、刪除和修改等操作。用戶可以隨時(shí)進(jìn)行各種查詢、統(tǒng)計(jì)、報(bào)表打印、賬目核對(duì)等工作。另外,也可以用圖表形式來(lái)反映查詢結(jié)果。3.1.1目標(biāo)①界面設(shè)計(jì)要求盡量友好、美觀,應(yīng)提供登錄界面,并考慮用戶權(quán)限問 題;②對(duì)各種信息應(yīng)提供錄入、刪除和查詢功能;③具有對(duì)零件的基本信息進(jìn)行統(tǒng)計(jì)的功能;④具有管理員的基本信息進(jìn)行統(tǒng)計(jì)的功能;⑤具有倉(cāng)庫(kù)的基本信息進(jìn)行統(tǒng)計(jì)的功能;3.1.2運(yùn)行環(huán)境Windows7操作系統(tǒng)、MicrosoftSQLServer5.0數(shù)據(jù)庫(kù)管理系統(tǒng)、Myeclipse6.0、Tomacat5.5.28、IE瀏覽器、JDK、JDBC3.2業(yè)務(wù)流程分析倉(cāng)庫(kù)貨物管理系統(tǒng)主要業(yè)務(wù)流程如下:銷售商提出訂單,倉(cāng)庫(kù)業(yè)務(wù)員進(jìn)行審核,確認(rèn)訂單無(wú)誤、貨物數(shù)量足夠出庫(kù),則通過(guò)審核,向銷售商發(fā)貨,修改數(shù)據(jù)庫(kù)數(shù)據(jù)后完成出庫(kù)流程。出庫(kù)流程圖如圖所示。倉(cāng)庫(kù)業(yè)務(wù)員向供貨商發(fā)出訂單,供貨商根據(jù)訂單向倉(cāng)庫(kù)發(fā)貨,形成發(fā)貨單,經(jīng)倉(cāng)庫(kù)管理員審核,修改數(shù)據(jù)庫(kù)數(shù)據(jù)后完成入庫(kù)流程。3.3數(shù)據(jù)流分析3.3.1數(shù)據(jù)編碼為了數(shù)據(jù)流圖更加易懂以及數(shù)據(jù)項(xiàng)、數(shù)據(jù)流便于使用,要對(duì)數(shù)據(jù)進(jìn)行編碼,用一個(gè)編碼符合代表一條信息或一串?dāng)?shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行編碼可以方便地進(jìn)行分類操作。以下是系統(tǒng)分析過(guò)程中常用的數(shù)據(jù)編碼:3.3.2數(shù)據(jù)字典數(shù)據(jù)字典是數(shù)據(jù)庫(kù)的重要組成部分。它存放有數(shù)據(jù)庫(kù)所用的有關(guān)信息,對(duì)用戶來(lái)說(shuō)是一組只讀的表。下面是對(duì)數(shù)據(jù)流圖中出現(xiàn)的部分?jǐn)?shù)據(jù)流和數(shù)據(jù)項(xiàng)的描述,方便讀者快速了解數(shù)據(jù)流組成和數(shù)據(jù)項(xiàng)內(nèi)容。數(shù)據(jù)流①入庫(kù)信息說(shuō)明:即將加入倉(cāng)庫(kù)的貨物的信息數(shù)據(jù)流來(lái)源:入庫(kù)信息表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:入庫(kù)編號(hào)+貨物編號(hào)+數(shù)量+單價(jià)+總金額+入庫(kù)時(shí)間+經(jīng)辦人+保管人+入庫(kù)倉(cāng)庫(kù)+備注②出庫(kù)信息數(shù)據(jù)流來(lái)源:出庫(kù)信息表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:出庫(kù)編號(hào)+貨物編號(hào)+數(shù)量+單價(jià)+總金額+出庫(kù)時(shí)間+經(jīng)辦人+保管人+出庫(kù)倉(cāng)庫(kù)+備注③貨物信息說(shuō)明:對(duì)倉(cāng)庫(kù)中的縮影貨物的信息的統(tǒng)計(jì)數(shù)據(jù)流來(lái)源:貨物信息表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:貨物編號(hào)+貨物名稱+貨物型號(hào)+類型+單價(jià)+倉(cāng)庫(kù)編號(hào)④客戶信息說(shuō)明:所有客戶及供應(yīng)商的信息。數(shù)據(jù)流來(lái)源:客戶信息表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:客戶編號(hào)+客戶名稱+客戶地址+客戶電話+客戶類型⑤倉(cāng)庫(kù)信息數(shù)據(jù)流來(lái)源:倉(cāng)庫(kù)信息表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:倉(cāng)庫(kù)編號(hào)+倉(cāng)庫(kù)名稱+倉(cāng)庫(kù)狀態(tài)+倉(cāng)庫(kù)管理員⑥庫(kù)存信息數(shù)據(jù)流來(lái)源:庫(kù)存表數(shù)據(jù)流流向:倉(cāng)庫(kù)管理員數(shù)據(jù)流組成:庫(kù)存編號(hào)+倉(cāng)庫(kù)編號(hào)+貨物編號(hào)+在庫(kù)數(shù)量+預(yù)警標(biāo)志位+最大在庫(kù)量+最小在庫(kù)量數(shù)據(jù)項(xiàng)①貨物編號(hào)數(shù)據(jù)項(xiàng)別名:貨號(hào)說(shuō)明:倉(cāng)庫(kù)中的貨物的唯一標(biāo)識(shí)類型:字符型長(zhǎng)度:16②入庫(kù)編號(hào)數(shù)據(jù)項(xiàng)別名:無(wú)說(shuō)明:貨物的入庫(kù)流水號(hào)類型:字符型長(zhǎng)度:16③倉(cāng)庫(kù)編號(hào)數(shù)據(jù)項(xiàng)別名:無(wú)說(shuō)明:倉(cāng)庫(kù)的編號(hào)類型:字符型長(zhǎng)度:16④盤點(diǎn)單編號(hào)數(shù)據(jù)項(xiàng)別名:無(wú)說(shuō)明:倉(cāng)庫(kù)盤點(diǎn)單的流水類型:字符型長(zhǎng)度:163.4功能需求分析需求分析是通過(guò)對(duì)功能的描述,說(shuō)明項(xiàng)目系統(tǒng)或設(shè)計(jì)中要實(shí)現(xiàn)的各功能模塊。不論是系統(tǒng)或設(shè)計(jì)的介紹,功能描述都是不可缺少的。同事對(duì)要解決的問題進(jìn)行分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),得到什么結(jié)果,最后應(yīng)該輸出什么。倉(cāng)庫(kù)貨物管理系統(tǒng)主要針對(duì)于日常庫(kù)存信息的管理,它針對(duì)倉(cāng)庫(kù)日常發(fā)生的業(yè)務(wù),主要模塊為貨物管理、出入庫(kù)管理、倉(cāng)庫(kù)管理,用戶通過(guò)相應(yīng)的模塊,對(duì)倉(cāng)庫(kù)里的物品的基本情況進(jìn)行操作,對(duì)庫(kù)存數(shù)量進(jìn)行查詢,用戶通過(guò)簡(jiǎn)單的操作即可輕松的管理倉(cāng)庫(kù)。本次設(shè)計(jì)索要實(shí)現(xiàn)的功能主要分為出入庫(kù)管理、基本資料管理、倉(cāng)區(qū)管理、系統(tǒng)管理等功能模塊來(lái)實(shí)現(xiàn)倉(cāng)庫(kù)的綜合管理。本系統(tǒng)可以方便快捷地實(shí)現(xiàn)庫(kù)管理中的出庫(kù)入庫(kù)、庫(kù)存管理等操作,使企業(yè)的的倉(cāng)庫(kù)井井有條,更實(shí)時(shí)準(zhǔn)確地管理倉(cāng)庫(kù)。出入庫(kù)管理中包含出庫(kù)管理、入庫(kù)管理、庫(kù)存管理、盤點(diǎn)管理。出庫(kù)管理:出庫(kù)管理是對(duì)系統(tǒng)中貨物的出庫(kù)管理,可以對(duì)倉(cāng)庫(kù)中的貨物出庫(kù)情況進(jìn)行查看,并可以添加新的入庫(kù)信息。入庫(kù)管理:入庫(kù)管理是對(duì)系統(tǒng)中貨物的入庫(kù)管理,可以對(duì)倉(cāng)庫(kù)中的貨物入庫(kù)情況進(jìn)行查看,并可以添加新的入庫(kù)信息。庫(kù)存管理:在庫(kù)管理是對(duì)系統(tǒng)中庫(kù)存信息的管理,可以對(duì)倉(cāng)庫(kù)中的庫(kù)存信息進(jìn)行查看,并可以添加新的庫(kù)存信息。盤點(diǎn)管理:盤點(diǎn)管理包含基本的盤點(diǎn)管理和盤點(diǎn)明細(xì)管理,可以對(duì)貨物盤點(diǎn)信息進(jìn)行查看和添加。倉(cāng)區(qū)管理中包含倉(cāng)庫(kù)管理、倉(cāng)區(qū)管理。倉(cāng)庫(kù)管理:倉(cāng)庫(kù)管理是對(duì)系統(tǒng)中倉(cāng)庫(kù)信息的管理,可以對(duì)倉(cāng)庫(kù)信息進(jìn)行查看,并可以添加新的倉(cāng)庫(kù)信息。倉(cāng)區(qū)管理:倉(cāng)區(qū)管理是對(duì)系統(tǒng)中倉(cāng)區(qū)信息的管理,可以對(duì)倉(cāng)庫(kù)中的倉(cāng)區(qū)信息進(jìn)行倉(cāng)庫(kù),并可以添加新的倉(cāng)區(qū)信息。根據(jù)對(duì)各大超市進(jìn)行的調(diào)查和分析,倉(cāng)庫(kù)管理系統(tǒng)應(yīng)該具有以下功能:①倉(cāng)庫(kù)中的貨物信息的錄入、修改、刪除和查詢。②倉(cāng)庫(kù)的信息的的錄入、修改、刪除、查詢和統(tǒng)計(jì)。③管理者的信息的錄入、修改、刪除和查詢。④供貨商的信息的錄入、修改、刪除、查詢和統(tǒng)計(jì)。1)功能劃分倉(cāng)庫(kù)管理系統(tǒng)主要實(shí)現(xiàn)以下四方面的功能:a.登陸b.注冊(cè)c.查詢d.修改2)功能描述倉(cāng)庫(kù)管理包括登陸、注冊(cè)、查詢、修改四方面功能。登陸,分為普通管理員登陸和超級(jí)管理員登陸。查詢,分為員工對(duì)系統(tǒng)功能分析中的各項(xiàng)功能進(jìn)行查詢,倉(cāng)庫(kù)查詢和物品查詢。修改,主要實(shí)現(xiàn)添加,修改和刪除。4概要設(shè)計(jì)集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,得到如下圖所示的系統(tǒng)功能模塊圖。倉(cāng)庫(kù)管理系統(tǒng)倉(cāng)庫(kù)管理系統(tǒng)登錄注冊(cè)查詢修改管理員1管理員2員工查詢倉(cāng)庫(kù)查詢商品查詢添加修改刪除圖1功能模塊圖5邏輯設(shè)計(jì)根據(jù)數(shù)據(jù)庫(kù)需求分析,本系統(tǒng)的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)如下。零件信息設(shè)計(jì)管理員信息設(shè)計(jì)倉(cāng)庫(kù)信息設(shè)計(jì)6界面設(shè)計(jì)6.1登陸界面6.2管理員界面6.2.1管理員信息界面6.2.2管理員信息錄入6.3倉(cāng)庫(kù)管理界面6.3.1倉(cāng)庫(kù)信息界面6.3.2倉(cāng)庫(kù)信息錄入6.4零件管理界面6.4.1零件信息界面6.4.2零件信息錄入7總結(jié)經(jīng)過(guò)兩周的課程設(shè)計(jì),倉(cāng)庫(kù)管理系統(tǒng)終于完成,在一次次的調(diào)試后,程序比較完善,并且利用數(shù)據(jù)庫(kù)的相關(guān)知識(shí),存儲(chǔ)信息。我們做的倉(cāng)庫(kù)貨物管理系統(tǒng)可以完成完成以下功能:1)用戶的登錄2)管理員信息的錄入、查詢和刪除3)倉(cāng)庫(kù)信息的錄入和查詢4)零件信息的錄入和查詢?cè)诖舜握n程設(shè)計(jì)中,有時(shí)一個(gè)簡(jiǎn)單的錯(cuò)誤,就要花很長(zhǎng)時(shí)間去找。程序?qū)懛ㄉ嫌泻芏嗖煌?,有時(shí)候找到了錯(cuò)誤,但卻不知道如何去處理,因此在這個(gè)過(guò)程中,我充分利用了網(wǎng)絡(luò)上的資源,最終這些問題都被一一解決了。JAVA語(yǔ)言、數(shù)據(jù)庫(kù)有了更深一步的了解。本程序的最大優(yōu)點(diǎn)是一個(gè)界面可以完成所有的信息操作,有完整的操作信息,操作簡(jiǎn)便,數(shù)據(jù)完整??傮w來(lái)說(shuō),我的作品不夠完美,例如無(wú)法將數(shù)據(jù)在退出程序后仍然儲(chǔ)存在數(shù)據(jù)庫(kù)中,而且對(duì)數(shù)據(jù)的操作過(guò)于簡(jiǎn)單,僅僅局限于添加,刪除,以及簡(jiǎn)單修改。最重要的是對(duì)數(shù)據(jù)的操作存在安全隱患,程序的漏洞是操作者可以修改任何人的信息。所以作品完成至今,我們心中仍然有更多的想法去實(shí)現(xiàn),我們將利用更多的時(shí)間與精力去不斷完善此程序。8參考文獻(xiàn)(1)數(shù)據(jù)庫(kù)原理及應(yīng)用教程——王預(yù)主編,清華大學(xué)出版社(2)Java程序設(shè)計(jì)基礎(chǔ)(第4版)——陳國(guó)君主編,清華大學(xué)出版社(3)崔勁松.基于VB的倉(cāng)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)[J].菏澤學(xué)院學(xué)報(bào),2013,S1:126-128.(4)馬麗.基于.NET的倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].科教文匯(下旬刊),2009,10:281-282.(5)曾佑新.數(shù)據(jù)庫(kù)在倉(cāng)庫(kù)管理中的應(yīng)用[J].華東交通大學(xué)學(xué)報(bào),1996,S1:31-33+41.9附錄Clientimportjava.awt.Container;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassClient{ publicstaticLoginlogn=newLogin(); publicstaticvoidmain(String[]args) { logn.setTitle("倉(cāng)庫(kù)管理系統(tǒng)"); logn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); logn.setSize(280,250); logn.setVisible(true); }}guestimportjavax.swing.*;importjavax.swing.*;@SuppressWarnings({"unused","serial"})publicclassguestextendsJFrame{ publicstaticGepersonpanel3=newGeperson(); //publicstaticgroupinfpane4=newgroupinf(); publicstaticCangkupanel5=newCangku(); //publicstaticsportinfpane6=newsportinf(); publicstaticLingjianpane16=newLingjian(); //publicstaticsportinfpane1=newsportinf();publicstaticJPanelcontPane1=newJPanel();publicstaticJPanelcontPane2=newJPanel();publicstaticJPanelcontPane3=newJPanel();publicstaticJPanelcontPane4=newJPanel();publicstaticJPanelcontPane5=newJPanel();publicstaticJPanelcontPane6=newJPanel();privateJTabbedPanetabp=newJTabbedPane(); publicguest(){ contPane2.add(panel3); tabp.addTab("個(gè)人信息",null,contPane2); contPane3.add(panel5); tabp.addTab("倉(cāng)庫(kù)信息",null,contPane3); contPane4.add(pane16); tabp.addTab("零件信息",null,contPane4); add(tabp); }}manageimportjavax.swing.*;importjavax.swing.event.*;importjavax.swing.table.DefaultTableModel;importjava.awt.*;importstaticnet.mindview.until.SwingConsole.*;importjavax.swing.table.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;@SuppressWarnings({"unused","serial"})publicclassmanageextendsJFrame{ publicstaticGepersonpane3=newGeperson(); publicstaticGepersoninfpane4=newGepersoninf(); publicstaticCangkupane5=newCangku(); publicstaticCangkuinfpane6=newCangkuinf(); publicstaticLingjianpane11=newLingjian(); publicstaticLingjianinfpane12=newLingjianinf();publicstaticJPanelcontPanel1=newJPanel();publicstaticJPanelcontPanel2=newJPanel();publicstaticJPanelcontPanel3=newJPanel();publicstaticJPanelcontPanel4=newJPanel();publicstaticJPanelcontPanel5=newJPanel();publicstaticJPanelcontPanel6=newJPanel();privateJTabbedPanetabp=newJTabbedPane(); publicmanage(){ setTitle("倉(cāng)庫(kù)管理系統(tǒng)"); contPanel2.add(pane3);//pane3的對(duì)象是geperson類 tabp.addTab("管理員信息",null,contPanel2);// contPanel3.add(pane5);//pane5的對(duì)象是Cangku類 tabp.addTab("倉(cāng)庫(kù)信息",null,contPanel3); contPanel6.add(pane11);//pane11的對(duì)象是lingjian類 tabp.addTab("零件信息",null,contPanel6); add(tabp); }}Loginimportjavax.swing.*;importstaticnet.mindview.until.SwingConsole.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassLoginextendsJFrame{ privatestaticfinallongserialVersionUID=1L; privateJLabelusr=newJLabel("用戶名:"); privateJTextFieldusrnm=newJTextField(10); privateJLabelpwd=newJLabel("密碼:"); privateJPasswordFieldpswd=newJPasswordField(10); privateJButtonlogin=newJButton("登錄"); privateActionListenerb1=newActionListener(){ @SuppressWarnings("deprecation") publicvoidactionPerformed(ActionEvente){ /*if(usrnm.getText().equals("guest")&&pswd.getText().equals("123")) { JOptionPane.showMessageDialog(null,"倉(cāng)庫(kù)管理系統(tǒng)","提示",JOptionPane.INFORMATION_MESSAGE); run(newguest(),600,400,"倉(cāng)庫(kù)管理"); Client.logn.setVisible(false); }*/ if(usrnm.getText().equals("gsj")&&pswd.getText().equals("123456")) { JOptionPane.showMessageDialog(null,"倉(cāng)庫(kù)管理系統(tǒng)","提示",JOptionPane.INFORMATION_MESSAGE); run(newmanage(),750,620,"倉(cāng)庫(kù)管理系統(tǒng)"); Client.logn.setVisible(false); } else{ JOptionPane.showMessageDialog(null,"用戶名或密碼錯(cuò)誤","提示",JOptionPane.WARNING_MESSAGE); } } }; publicLogin(){ setLayout(null); usr.setBounds(40,20,60,20); usrnm.setBounds(100,20,100,20); pwd.setBounds(40,60,60,20); pswd.setBounds(100,60,100,20); login.setBounds(100,100,60,20); login.addActionListener(b1); add(usr); add(usrnm); add(pwd); add(pswd); add(login); } }Cangkuimportjava.awt.Container;importjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassCangkuextendsJPanel{ privateJLabelshc=newJLabel("查詢倉(cāng)庫(kù)"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "倉(cāng)庫(kù)編號(hào)","倉(cāng)庫(kù)名稱","所在地","管理員姓名","聯(lián)系電話" }; privateString[]descripton={"所有內(nèi)容","管理員姓名","倉(cāng)庫(kù)名稱"}; privateJComboBoxschcdn=newJComboBox(descripton); privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECT*FROMcangku"; if(condition==1) query="SELECT*FROMcangkuWHEREid='"+cdtn.getText()+"'"; if(condition==2) query="SELECT*FROMcangkuWHEREuname='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("id"),relt.getString("uname"),relt.getString("address"),relt.getString("pname"),relt.getString("phone")}); //model.addRow(newObject[]{relt.getString("1"),relt.getString("2"),relt.getString("3"),relt.getString("4")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel3.add(manage.pane6); manage.contPanel3.add(manage.pane5); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; publicCangku(){ setPreferredSize(newDimension(550,450)); setLayout(newFlowLayout()); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(scrollpane); }} @SuppressWarnings("serial") classCangkuinfextendsJPanel{ // "倉(cāng)庫(kù)編號(hào)","倉(cāng)庫(kù)名稱","所在地","管理員姓名","聯(lián)系電話" privateJLabelspnum=newJLabel("倉(cāng)庫(kù)編號(hào)"), spname=newJLabel("倉(cāng)庫(kù)名稱"), lhrcd=newJLabel("所在地"), lxren=newJLabel("管理員姓名"), lxdian=newJLabel("聯(lián)系電話"); privateJTextFieldsnum=newJTextField(20), sname=newJTextField(20), lhrecord=newJTextField(20), lxre=newJTextField(20), lxdia=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel3.remove(manage.pane6); manage.contPanel3.remove(manage.pane5); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsanum=snum.getText(); Stringsaname=sname.getText(); Stringsaage=lhrecord.getText(); Strings1=lxre.getText(); Strings2=lxdia.getText(); Stringinsert="INSERTINTOcangkuvalues('"+sanum+"','"+saname+"','"+saage+"','"+s1+"','"+s2+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); manage.contPanel3.remove(manage.pane6); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; publicCangkuinf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); //sav.addActionListener(b1); ext.addActionListener(b1); add(spnum); add(snum); add(spname); add(sname); add(lhrcd); add(lhrecord); add(lxren); add(lxre); add(lxdian); add(lxdia); add(sav); add(ext); }}Gepersonimportjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassGepersonextendsJPanel{ privateJLabelshc=newJLabel("查詢管理員"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"), del=newJButton("刪除"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "姓名","性別","電話","電子郵件" }; privateString[]descripton={"所有內(nèi)容","姓名","性別","電話"}; privateJComboBoxschcdn=newJComboBox(descripton);privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECTname,sex,phone,emailFROMgeperson"; if(condition==1) query="SELECTname,sex,phone,emailFROMgepersonWHEREuname='"+cdtn.getText()+"'"; if(condition==2) query="SELECTname,sex,phone,emailFROMgepersonWHEREsex='"+cdtn.getText()+"'"; if(condition==3) query="SELECTname,sex,phone,emailFROMgepersonWHEREexperience='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("name"),relt.getString("sex"),relt.getString("phone"),relt.getString("email")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel2.remove(manage.pane3); manage.contPanel2.add(manage.pane4); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; privateActionListenerb4=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) JOptionPane.showMessageDialog(null,"請(qǐng)輸入刪除屬性","提示",JOptionPane.ERROR_MESSAGE); if(condition==1){ query="deleteFROMgepersonWHEREnamelike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } if(condition==2){ query="deleteFROMgepersonWHEREsexlike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } if(condition==3){ query="deleteFROMgepersonWHEREphonelike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } }catch(Exceptionf){ f.printStackTrace(); } if(model.getRowCount()==0) JOptionPane.showMessageDialog(null,"沒有相應(yīng)記錄","提示",JOptionPane.WARNING_MESSAGE); } }; publicGeperson(){ setPreferredSize(newDimension(750,400)); setLayout(newFlowLayout()); shc.setBounds(50,20,60,20);//左,上,右,下 schcdn.setBounds(110,20,90,20); cdtn.setBounds(210,20,60,20); sch.setBounds(290,20,60,20); adds.setBounds(420,20,60,20); del.setBounds(490,20,60,20); scrollpane.setBounds(30,50,700,500); del.addActionListener(b4); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(del); add(scrollpane); } }classGepersoninfextendsJPanel{ privatestaticfinallongserialVersionUID=1L; //"姓名","性別","電話","電子郵件" privateJLabelgrpname=newJLabel("姓名"), dist=newJLabel("性別"), dianhua=newJLabel("電話"), mail=newJLabel("電子郵件"); privateJTextFieldgname=newJTextField(20), adist=newJTextField(20), dianha=newJTextField(20), mal=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsaname=gname.getText(); Stringsbegnum=adist.getText(); Stringsdianhua=dianha.getText(); Stringsmail=mal.getText(); if(saname.equals("")||saname.equals("")) { JOptionPane.showMessageDialog(null,"姓名不能為空不能為空","提示",JOptionPane.ERROR_MESSAGE); return; } Stringinsert="INSERTINTOgepersonvalues('"+saname+"','"+sbegnum+"','"+sdianhua+"','"+smail+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); gname.setText(null); adist.setText(null); dianha.setText(null); mal.setText(null); manage.contPanel2.remove(manage.pane3); manage.contPanel2.add(manage.pane4); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel2.remove(manage.pane4); manage.contPanel2.add(manage.pane3); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; publicGepersoninf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); ext.addActionListener(b1); add(grpname); add(gname); add(dist); add(adist); add(dianhua); add(dianha); add(mail); add(mal); add(sav); add(ext); }}Lingjianimportjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassLingjianextendsJPanel{ privateJLabelshc=newJLabel("查詢零件"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "零件編號(hào)","零件名稱","零件價(jià)格","庫(kù)存數(shù)量" }; privateString[]descripton={"所有內(nèi)容","零件編號(hào)","零件名稱"}; privateJComboBoxschcdn=newJComboBox(descripton); privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECT*FROMlingjian"; if(condition==1) query="SELECT*FROMlingjainWHEREid='"+cdtn.getText()+"'"; if(condition==2) query="SELECT*FROMlingjianWHEREuname='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("id"),relt.getString("uname"),relt.getString("price"),relt.getString("amount")}); //model.addRow(newObject[]{relt.getString("1"),relt.getString("2"),relt.getString("3"),relt.getString("4")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel6.add(manage.pane12); manage.contPanel6.add(manage.pane11); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; publicLingjian(){ setPreferredSize(newDimension(550,450)); setLayout(newFlowLayout()); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(scrollpane); }} @SuppressWarnings("serial") classLingjianinfextendsJPanel{ // "零件編號(hào)","零件名稱","零件價(jià)格","庫(kù)存數(shù)量" privateJLabelspnum=newJLabel("零件編號(hào)"), spname=newJLabel("零件名稱"), lxren=newJLabel("零件價(jià)格"), lxdian=newJLabel("庫(kù)存數(shù)量"); privateJTextFieldsnum=newJTextField(20), sname=newJTextField(20), lxre=newJTextField(20), lxdia=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel6.remove(manage.pane12); manage.contPanel6.remove(manage.pane11); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsanum=snum.getText(); Stringsaname=sname.getText(); Strings1=lxre.getText(); Strings2=lxdia.getText(); Stringinsert="INSERTINTOlingjianvalues('"+sanum+"','"+saname+"','"+s1+"','"+s2+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); manage.contPanel6.remove(manage.pane12); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; publicLingjianinf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); //sav.addActionListener(b1); ext.addActionListener(b1); add(spnum); add(snum); add(spname); add(sname); add(lxren); add(lxre); add(lxdian); add(lxdia); add(sav); add(ext); }}SqlFunctionimportjavax.swing.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassSqlFunction{ privateStringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; privateStringurl="jdbc:sqlserver://localhost:1433;databaseName=cangku"; privateStringuser="sa"; privateStringpasswor
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 粟丘疹的臨床護(hù)理
- 帶狀皰疹后神經(jīng)痛的臨床護(hù)理
- 《保利房產(chǎn)》課件
- 加減應(yīng)用題課件
- 績(jī)效激勵(lì)措施計(jì)劃
- 制定適合企業(yè)發(fā)展的招聘計(jì)劃
- 讓社團(tuán)活動(dòng)更具吸引力的策略計(jì)劃
- 班級(jí)成果展示會(huì)的組織與策劃計(jì)劃
- 賽車贊助合同三篇
- 噴氣織機(jī)相關(guān)行業(yè)投資方案
- 知識(shí)圖譜構(gòu)建實(shí)踐建設(shè)方案
- 2024年度跨國(guó)業(yè)務(wù)代理合同3篇
- 內(nèi)科危重患者的護(hù)理
- 紀(jì)念抗日救亡一二九運(yùn)動(dòng)弘揚(yáng)愛國(guó)精神宣傳課件
- 大學(xué)生心理健康(上海交通大學(xué))知到智慧樹章節(jié)答案
- 16大家排好隊(duì) 說(shuō)課稿-2024-2025學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- 鑄牢中華民族共同體意識(shí)-形考任務(wù)2-國(guó)開(NMG)-參考資料
- 2025人教版九年級(jí)英語(yǔ)全冊(cè)知識(shí)點(diǎn)清單
- 交通運(yùn)輸行業(yè)員工安置方案
- 委托融資協(xié)議三篇
- 新《高等教育學(xué)》考試復(fù)習(xí)題及答案
評(píng)論
0/150
提交評(píng)論