倉庫管理系統(tǒng)(數(shù)據(jù)庫)_第1頁
倉庫管理系統(tǒng)(數(shù)據(jù)庫)_第2頁
倉庫管理系統(tǒng)(數(shù)據(jù)庫)_第3頁
倉庫管理系統(tǒng)(數(shù)據(jù)庫)_第4頁
倉庫管理系統(tǒng)(數(shù)據(jù)庫)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一章引言系統(tǒng)開發(fā)的背景率系統(tǒng)開發(fā)的意義與目的開發(fā)工具簡介SQLServers012:作為新一代的數(shù)據(jù)平臺產(chǎn)品,SQL作為新一代的數(shù)據(jù)平臺產(chǎn)品,SQLServer2012不僅延續(xù)現(xiàn)有數(shù)據(jù)平臺的強(qiáng)最高級別的支持—專門針對關(guān)鍵業(yè)務(wù)應(yīng)用的多種功能與解決方案可以提供最高級別的可用性及性能。在業(yè)界領(lǐng)先的商業(yè)智能領(lǐng)域,SQL最高級別的支持—專門針對關(guān)鍵業(yè)務(wù)應(yīng)用的多種功能與解決方案可以提供最高級別的可用性及性能。在業(yè)界領(lǐng)先的商業(yè)智能領(lǐng)域,SQLServer2012提供了更與公有云之間數(shù)據(jù)的擴(kuò)展與應(yīng)用的遷移。SQLServer2012提供對企業(yè)基礎(chǔ)架構(gòu)絡(luò)環(huán)境的數(shù)據(jù)的交互,全面的自助分析等創(chuàng)新功能。針對大數(shù)據(jù)以及數(shù)據(jù)倉庫,絡(luò)環(huán)境的數(shù)據(jù)的交互,全面的自助分析等創(chuàng)新功能。針對大數(shù)據(jù)以及數(shù)據(jù)倉庫,SQLSQLServer2012TBTB全面端到端的解決方案。作為微軟的信息平臺解決方案,SQL信息平臺解決方案,SQLServer2012的發(fā)布,可以幫助數(shù)以千計(jì)的企業(yè)用戶突破性地快速實(shí)現(xiàn)各種數(shù)據(jù)體驗(yàn),完全釋放對企業(yè)的洞察力。SQLServer2012破性地快速實(shí)現(xiàn)各種數(shù)據(jù)體驗(yàn),完全釋放對企業(yè)的洞察力。SQLServer2012含企業(yè)版(Enterprise)、標(biāo)準(zhǔn)版(Standard),另外新增了商業(yè)智能版(Business含企業(yè)版(Enterprise)、標(biāo)準(zhǔn)版(Standard),另外新增了商業(yè)智能版(BusinessIntelligence)。微軟表示,SQLServer2012Intelligence)。微軟表示,SQLServer2012Web版本以及精簡版。版本以及精簡版。1.3.2程序編寫語言:JAVAJAVAC++JAVA語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。JAVA具有簡單性、面JAVAWeb程序等。集成開發(fā)環(huán)境:Eclipse:EclipseEclipseJava言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,EclipseEclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java開發(fā)工具(JavaDevelopmentTools,JDT)。EclipseEclipse(IDE)JavaC++Python的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺,但是眾多插件的支持使得的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺,但是眾多插件的支持使得EclipseEclipseIDEEclipseIDE操作系統(tǒng)Windows10:Windows10是Windows10是美國微軟公司研發(fā)的跨平臺及設(shè)備應(yīng)用的操作系統(tǒng)。是微軟發(fā)布的最后一個(gè)獨(dú)立Windows版本。發(fā)布的最后一個(gè)獨(dú)立Windows版本。2014101新品發(fā)布會上,對外展示了該系統(tǒng)。2015729Windows10Windows1072018591010.0.17134.4810.0.17666開發(fā)計(jì)劃3~5周:完成數(shù)據(jù)庫需求分析5~8周:完成E-R圖等概念模式8~9周:完成數(shù)據(jù)庫模塊分類9~10周:完成數(shù)據(jù)庫基本程序編寫11~13(建立視圖,索引)13~16周:完成數(shù)據(jù)庫維護(hù)和前臺連接17周:參加答辯人員分工:需求分析,概念模式,模塊分類,E-Rjavaxxxx數(shù)據(jù)流圖,數(shù)據(jù)字典,數(shù)據(jù)庫維護(hù)和前臺連接由兩人共同完成。第二章系統(tǒng)的需求及其基本功能用戶需求分析倉庫管理員:使用系統(tǒng)對倉庫進(jìn)行管理,進(jìn)行商品的更新以及增、刪、改、查等操作??蛻簦菏褂孟到y(tǒng)提交訂單購買產(chǎn)品。生產(chǎn)車間:使用系統(tǒng)向倉庫提交成品單和廢料單,接收倉庫的原料單。處理對象分析系統(tǒng)要處理的對象包括員工基本信息、客戶基本信息、倉庫基本信息、產(chǎn)品基本信息、庫存基本信息、出入庫基本信息六個(gè)方面,各個(gè)對象包含信息如下:1.員工基本信息:員工編號、員工戶姓名、員工類型、聯(lián)系電話、居住地址、入職時(shí)間、薪水,方便人員調(diào)動和工作分配。系電話、通信地址,熟知客戶信息,更好服務(wù),同時(shí)方便管理及時(shí)更新數(shù)據(jù),以防空間浪費(fèi),堵塞。類型,對原料進(jìn)行加工,把原料和產(chǎn)品的庫存信息返回給倉庫管理。入庫數(shù)量,對原料進(jìn)行記錄數(shù)量下限,生產(chǎn)日期、生產(chǎn)車間、對于各種信息詳細(xì)記錄、備份量、生產(chǎn)日期、保質(zhì)期,保證產(chǎn)品可以及時(shí)更新。出入庫信息:出入庫操作類型、出入庫產(chǎn)品編號、生產(chǎn)日期、出入庫產(chǎn)品標(biāo)記。功能需求分析對于一個(gè)庫存管理系統(tǒng),首先就是要對庫存進(jìn)行管理,對庫存信息進(jìn)行收集有必要的安全性,保證數(shù)據(jù)只被需要的人看到。根據(jù)該企業(yè)的具體情況,系統(tǒng)主要功能有:1、管理員管理:管理員的權(quán)限管理,管理員密碼修改。2、基本信息維護(hù):客戶、產(chǎn)品、倉庫以及生產(chǎn)車間的基本信息的增、刪、改、查。3、庫存管理:出庫、入庫、庫存信息的修改,庫存信息的查詢。數(shù)據(jù)流圖原料莊擰報(bào)衾產(chǎn)兄莊弁恨未產(chǎn)品出人四軍釣竺住懋信藝匯柏貯存至新原料莊擰報(bào)衾產(chǎn)兄莊弁恨未產(chǎn)品出人四軍釣竺住懋信藝匯柏貯存至新車存信忠甲奴邸品單甲奴0層流膽產(chǎn)品出入庫羊產(chǎn)品出入庫羊庫存信. 鉗一二捎言信息一二i層數(shù)陛浣醫(yī)l數(shù)據(jù)字典數(shù)據(jù)項(xiàng):名稱:員工名稱:員工簡述:唯一標(biāo)識一個(gè)采購員別名:employees類型:char編號:Y01取值含義:字母表示采購員,后三位為順序排列的數(shù)字名稱:倉庫簡述:唯一標(biāo)識一個(gè)倉庫別名:warehouse類型:char名稱:倉庫簡述:唯一標(biāo)識一個(gè)倉庫別名:warehouse類型:char編號:SR011取值含義:第一位表示倉庫,后三位為順序排列的數(shù)字名稱:生產(chǎn)車間別名:workshop類型:char編號:WK01取值含義:第一位表示生產(chǎn)車間,中間三位為順序排列的數(shù)字。名稱:原料簡述:唯一標(biāo)識一個(gè)原料別名:material類型:char編號:RM01取值含義:第一位表示原料,中間一位表示零件種類,后三位為順序排列的數(shù)字名稱:產(chǎn)品簡述:唯一標(biāo)識一個(gè)產(chǎn)品別名:product類型:char編號:P01取值含義:第一位表示產(chǎn)品,中間一位表示產(chǎn)品種類,后三位為順序排列的數(shù)字名稱:客戶簡述:唯一標(biāo)識一個(gè)客戶別名:customer類型:char編號:C01取值含義:第一位表示客戶,后三位為順序排列的數(shù)字?jǐn)?shù)據(jù)結(jié)構(gòu)名稱:員工信息表編號:名稱:員工信息表編號:Y01簡述:包含所有員工的基本信息組成:員工編號+員工姓名+員工類型+聯(lián)系電話+居住地址+入職時(shí)間+薪水名稱:倉庫信息表編號:SR01名稱:倉庫信息表編號:SR01簡述:包含所有倉庫的基本信息組成:倉庫編號+倉庫名稱+倉庫位置+庫存情況+存儲上限名稱:生產(chǎn)車間信息表編號:WK01簡述:包含所有生產(chǎn)車間的基本信息組成:生產(chǎn)車間編號+生產(chǎn)車間名稱+生產(chǎn)車間位置+生產(chǎn)類型名稱:原料信息表編號:LA001簡述:包含所有原料的基本信息名稱:原料信息表編號:LA001簡述:包含所有原料的基本信息組成:原料編號+原料名稱+原料類型+參考價(jià)格+入庫單價(jià)+入庫數(shù)量名稱:產(chǎn)品信息表編號:P01簡述:包含所有求購信息組成::產(chǎn)品編號+產(chǎn)品名稱+產(chǎn)品規(guī)格+參考價(jià)格+數(shù)量上限+數(shù)量下限+生產(chǎn)日期+生產(chǎn)車間名稱:客戶信息表編號:C01簡述:包含所有客戶的信息組成:客戶姓名+客戶性別+客戶編號+客戶類型+聯(lián)系人+聯(lián)系電話+通信地址數(shù)據(jù)流:編號:編號:L1名稱:原料采購入庫簡述:采購員提交采購單來源:采購員去向:原料入庫表組成:員工編號+原料編號+價(jià)格+數(shù)量編號:編號:L2名稱:原料出庫簡述:向車間輸送原料來源:倉庫去向:原料出口表去向:原料出口表組成:原料編號+價(jià)格+數(shù)量編號:L3名稱:產(chǎn)品入庫編號:L3名稱:產(chǎn)品入庫簡述:產(chǎn)生的產(chǎn)品入庫來源:車間去向:產(chǎn)品入庫表組成:產(chǎn)品編號+價(jià)格+數(shù)量編號:L4名稱:購買訂單簡述:提交購買的信息來源:顧客去向:產(chǎn)品出庫表組成:產(chǎn)品編號+價(jià)格+數(shù)量編號:L5名稱:產(chǎn)品出庫簡述:向顧客發(fā)送產(chǎn)品來源:倉庫去向:產(chǎn)品出庫表組成:產(chǎn)品編號+價(jià)格+數(shù)量處理邏輯:編號:編號: A001名稱: 原料出入庫管理簡述: 員工以及生產(chǎn)車間向倉庫提供原料出入庫的數(shù)輸入的數(shù)據(jù)流: 原料出入庫單處理: 系統(tǒng)通過員工以及生產(chǎn)車間提供的數(shù)據(jù)進(jìn)行處輸出的數(shù)據(jù)流: 原料出入庫報(bào)表處理頻率: 一天一次編號: 編號: A002名稱: 產(chǎn)品出入庫管理簡述: 生產(chǎn)車間以及銷售要根據(jù)自己的產(chǎn)品及銷售提供可供清輸入的數(shù)據(jù)流: 產(chǎn)品出入庫單處理: 系統(tǒng)通過顧生產(chǎn)車間以及銷售提供的數(shù)據(jù)進(jìn)行處輸出的數(shù)據(jù)流: 產(chǎn)品出入報(bào)表處理頻率: 一周一次編號:A003名稱:名稱: 銷售管理簡述: 系統(tǒng)通過信息匯總對銷量進(jìn)行統(tǒng)輸入的數(shù)據(jù)流: 銷售信息處理: 系統(tǒng)對銷量進(jìn)行統(tǒng)計(jì)形成銷售報(bào)輸出的數(shù)據(jù)流: 銷售統(tǒng)計(jì)處理頻率: 一月一次數(shù)據(jù)存儲:編號:編號:名稱:C1簡述:組成:原料出入庫記錄原料的名稱、單價(jià)、庫存數(shù)量等信息原料+數(shù)量+單價(jià)+出庫/入庫編號:C2產(chǎn)品出入庫記錄產(chǎn)品的產(chǎn)量、售出、退回產(chǎn)品+編號:C2產(chǎn)品出入庫記錄產(chǎn)品的產(chǎn)量、售出、退回產(chǎn)品+數(shù)量+單價(jià)+出庫/入庫編號:C3員工信息記錄員工的基本信息員工編號+姓名+年齡+性別+職位+薪資編號:C4客戶信息記錄客戶的基本信息客戶編號+姓名+年齡+性別+會員級別編號:名稱:C5車間信息記錄車間的基本信息車間編號+名稱+位置+生產(chǎn)類型編號:組成:C6倉庫信息記錄倉庫的基本信息倉庫編號+名稱+位置+庫存情況編號:C7名稱:名稱:原料信息記錄原料的基本信息原料編號+名稱+類型+價(jià)格+單價(jià)+數(shù)量編號:編號:C8產(chǎn)品信息記錄產(chǎn)品的基本信息產(chǎn)品編號+名稱+類型+價(jià)格+單價(jià)+數(shù)量+規(guī)格第三章總體設(shè)計(jì)方案3.1系統(tǒng)功能框架圖第四章數(shù)據(jù)庫設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)ERER產(chǎn)品名稱 產(chǎn)品編號 種類 出庫價(jià)

客戶編號車間編號 車間名稱1 m m 生產(chǎn)車間 生產(chǎn) 產(chǎn)品 銷售

客戶類型客戶 負(fù)責(zé)人聯(lián)系電運(yùn)行狀態(tài) 車間地ER

生產(chǎn)時(shí)間 生產(chǎn)車間

家庭住址產(chǎn)品編號邏輯結(jié)構(gòu)設(shè)計(jì)將E-R圖轉(zhuǎn)換為關(guān)系模型“其關(guān)系模式設(shè)計(jì)如下:員工關(guān)系模式(間,薪水)原料關(guān)系模式(生產(chǎn)車間)車間關(guān)系模式(倉庫編號,名稱,地址,倉庫情況)原料入庫關(guān)系模式(原料編號,車間編號,數(shù)量,價(jià)格)“車間”,“產(chǎn)品”,“客戶”的模式轉(zhuǎn)換產(chǎn)品名稱 產(chǎn)品編號 種類 出庫價(jià)

客戶性別車間編號 車間名稱1 m m 生產(chǎn)車間 生產(chǎn) 產(chǎn)品 銷售

客戶類型客戶 負(fù)責(zé)人聯(lián)系電運(yùn)行狀態(tài) 車間地址其關(guān)系模式設(shè)計(jì)如下:

生產(chǎn)時(shí)間 生產(chǎn)車間

家庭住址產(chǎn)品編號車間關(guān)系模式(車間編號,名稱,地址,類型)產(chǎn)品關(guān)系模式(產(chǎn)品編號,產(chǎn)品名稱,種類,出庫價(jià)格,生產(chǎn)時(shí)間,生產(chǎn)車間)產(chǎn)品出庫關(guān)系模式(生產(chǎn)車間編號,產(chǎn)品編號,客戶編號)物理結(jié)構(gòu)設(shè)計(jì)索引人引性-NonC|IIgteredIndex-2Ol90l08-103401 — D X還腳本·I陽笞助表名(npost

索引名稱匡婦口(Q)

dlndex-2m90708-10340"ll進(jìn)寰就緒

索引鍵列包含性列尸 三 三 類型大小阮氣允許ll£KPR升序 lint 2 否是定 [ 取消

I添(…|: 煦除(R) __罵腳本罵腳本·I陽蒂助它項(xiàng)儲馬篩選器合碎片擴(kuò)展同性嚇墮(N):dlndex-20190708-103519

索引類型(X);匝口唯(@

性列l(wèi)|名序序贖型大小阮只允許值 1衛(wèi)巫三就緒 K降序 smaIliint 2 否 否 ——」勹三確定 |

取消 助視圖第五章數(shù)據(jù)庫實(shí)施數(shù)據(jù)庫的建立usemastergoIFEXISTS(SELECT*FROMsysdatabasesWHEREname='CKGL')DROPDATABASECKGLCREATEDATABASECKGLon(NAME=CKGL,FILENAME='D:\DATA1\CKGL.mdf',SIZE=5,FILEGROWTH=1)LOGON(NAME=JXGL_log,FILENAME='D:\DATA1\CKGL_log.ldf',SIZE=2,MAXSIZE=20,FILEGROWTH=10%)GO表的建立客戶表的建立USECKGLGOCREATETABLEC(CNONCHAR(3)NOTNULL --編號CONSTRAINTPK_CNOPRIMARYKEYCLUSTERED,CHECK(CNOLIKE'C[0-9][0-9]'), --檢查約束CNAMENCHAR(8)NOTNULL, --名稱sexnchar(1)notnull,POSTNCHAR(6NOTNULL, --客戶類型YNONCHAR(3NOTNULL, --交易員工FOREIGNKEY(YNOREFERENCESY(YNO), --外鍵約束PHONEUMBERNCHAR(12)NOTNULL,--電話HOMENCHAR(6)NOTNULL, --居住地PNONCHAR(3)NOTNULL,FOREIGNKEY(PNO)REFERENCESP(PNO),)產(chǎn)品表USECKGLGOCREATETABLEP(PNONCHAR(3NOTNULL --編號CONSTRAINTPK_PNOPRIMARYKEYCLUSTERED,CHECK(PNOLIKE'P[0-9][0-9]'),PNAMENCHAR(8NOTNULL, --名稱POSTNCHAR(6)NOTNULL, --規(guī)格CKPRICESMALLINTNULL,--參考價(jià)格PTIMENCHAR(12)NOTNULL, --生產(chǎn)日WKNONCHAR(4)NOTNULL, --生產(chǎn)車間FOREIGNKEY(WKNO)REFERENCESWK(WKNO),)員工表USECKGLGOCREATE TABLEY(YNONCHAR(3)NOTNULL --編號號字段,非空約束CONSTRAINTPK_SNOPRIMARYKEYCLUSTERED --主鍵約CHECK(YNOLIKE'Y[0-9][0-9]'), --檢查約束YNAMENCHAR(8NOTNULL, --姓名字段,非空約束SEXCHAR(1NULL, --性別字段INTIMENCHAR(12NOTNULL, --入職時(shí)間字段POSTNCHAR(5)NULL, --職務(wù)字HOMENCHAR(15)NULL, --居住地SALARYNCHAR(8)NOTnull, --薪水PHONENUMBERNCHAR(15NOTnull, --聯(lián)系電話)原料表USECKGLGOCREATETABLERM(RMNONCHAR(4NOTNULL --編號CONSTRAINTPK_RMNOPRIMARYKEYCLUSTERED,CHECK(RMNOLIKE'RM[0-9][0-9]'),RMNAMENCHAR(8NOTNULL, --名稱POSTNCHAR(6)NOTNULL, --類型CKPRICESMALLINTNOTNULL,--參考價(jià)格INPRICESMALLINTNOTNULL, --入庫價(jià)格INNUMBERSMALLINTNOTNULL, --入庫數(shù)SRNONCHAR(4)NOTNULL, --管理倉庫FOREIGNKEY(SRNO)REFERENCESSR(SRNO),)倉庫表USECKGLGOCREATETABLESR(SRNONCHAR(4)NOTNULL --編號CONSTRAINTPK_SRNOPRIMARYKEYCLUSTERED,CHECK(SRNOLIKE'SR[0-9][0-9]'), --檢查約束SRNAMENCHAR(20)NOTNULL, --名稱HOMENCHAR(20)NOTNULL, --位置STANCHAR(30)NOTNULL, --庫存情況)車間表USECKGLGOCREATETABLEWK(WKNONCHAR(4NOTNULL --編號CONSTRAINTPK_WKNOPRIMARYKEYCLUSTERED,CHECK(WKNOLIKE'WK[0-9][0-9]'),WKNAMENCHAR(8NOTNULL, --名稱HOMENCHAR(15NOTNULL, --位置STAMODENCHAR(12)NOTNULL, --運(yùn)行狀態(tài))表間關(guān)系圖第六章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)Java登錄界面設(shè)計(jì)實(shí)驗(yàn)代碼packageStart;importjava.awt.*;importjavax.swing.*;importsrc.index;importjava.awt.event.*;publicclassStartextendsJFrame{JPanelpn1,pn2,pn3;JButtonbt1,JLabellb1,lb2;JTextFieldnameTextField;JPasswordFieldpwdPasswordField;publicStart(){super();pn1=newJPanel();pn2=newJPanel();pn3=newJPanel();lb1=newJLabel("用戶名");lb2=newJLabel("密 碼bt1=newJButton("登錄");bt2=newJButton("取消");nameTextField=newJTextField(10);pwdPasswordField=newJPasswordField(10);Init();}voidInit(){this.setLayout(newGridLayout(3,1));pn1.add(lb1);pn1.add(nameTextField);pn2.add(lb2);pn2.add(pwdPasswordField);pn3.add(bt1);pn3.add(bt2);this.add(pn1);this.add(pn2);this.add(pn3);this.setTitle("登錄");this.setSize(230,150);this.setLocation(650,300);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);bt2.addActionListener(newbt2Clicked(this));bt1.addActionListener(newbt1Clicked(this));nameTextField.setText("zxc");pwdPasswordField.setText("123");nameTextField.addMouseListener(newUserNameListener(this));}publicJTextFieldgetNameTextField(){returnnameTextField;}publicJPasswordFieldgetPasswordField(){returnpwdPasswordField;}classUserNameListenerextendsMouseAdapter{privateStartlogin;publicUserNameListener(Startl){login=l;}publicvoidmouseClicked(MouseEvente){this.login.getNameTextField().setText("");}}classbt2ClickedimplementsActionListener{privateStartlogin;publicbt2Clicked(Startl){login=l;}@OverridepublicvoidactionPerformed(ActionEvente){login.dispose();}}classbt1ClickedimplementsActionListener{privateStartlogin;publicbt1Clicked(Startl){login=l;}@OverridepublicvoidactionPerformed(ActionEvente){StringuserName=login.getNameTextField().getText().trim();String userPwd = String(login.getPasswordField().getPassword()).trim();if(userName.equals("zxc")&&userPwd.contentEquals("123")){JOptionPane.showMessageDialog(null登陸成功JOptionPane.INFORMATION_MESSAGE);indexi=newindex();return;}JOptionPane.showConfirmDialog(null,"用戶名或密碼錯誤","登錄失敗",JOptionPane.WARNING_MESSAGE);}}publicstaticvoidmain(Stringaargs[]){newStart();}}界面展示主界面設(shè)計(jì)實(shí)驗(yàn)代碼packagesrc;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;importjavax.swing.table.TableModel;publicclassindexextendsJFrameimplementsActionListener{JPanelpn1,pn2,pn3; //面板JLabellabel;JButtonbt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8; //JTabletable;JScrollPanescrollPane;publicindex(){super();pn1=newJPanel();pn2=newJPanel();label=newJLabel("查看表中信息:");bt1=newJButton("員工");bt1.addActionListener(this);bt1.setActionCommand("y");bt2=newJButton("客戶");bt2.addActionListener(this);bt2.setActionCommand("k");bt3=newJButton("原料");bt3.addActionListener(this);bt3.setActionCommand("l");bt4=newJButton("產(chǎn)品");bt4.addActionListener(this);bt4.setActionCommand("c");bt5=newJButton("倉庫");bt5.addActionListener(this);bt5.setActionCommand("p");bt6=newJButton("車間");bt6.addActionListener(this);bt6.setActionCommand("j");pn1.add(label);pn1.add(bt1);pn1.add(bt2);pn1.add(bt3);pn1.add(bt4);pn1.add(bt5);pn1.add(bt6);table=newJTable();scrollPane=newJScrollPane(table);this.add(pn1,"North");this.add(scrollPane);this.setTitle("CKGL系統(tǒng)");this.setSize(800,500);this.setLocation(400,200);this.setResizable(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}@OverridepublicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("y")){newYStoreManager();}elseif(e.getActionCommand().equals("k"))newCManager();}elseif(e.getActionCommand().equals("l"))newRManager();}elseif(e.getActionCommand().equals("c"))newPManager();}elseif(e.getActionCommand().equals("p")){newSRManager();}elseif(e.getActionCommand().equals("j")){newWKManager();}}}界面展示功能模塊設(shè)計(jì)類的定義(以客戶為例)CAdd.java 客戶信息添加類CAlter.java 客戶信息修改類CManger.java 客戶信息調(diào)用以及刪除類CTable.java 客戶信息界面類SeqTest.java 數(shù)據(jù)庫連接類的主要方法(以客戶為例)addActionListener()CAdd() addActionListener()setActionCommend() JButton設(shè)置一個(gè)屬性的字符串值SetLayout() 設(shè)置布局SetSize () 設(shè)置組件的長度和寬度SetLocation() 設(shè)置組件的定位SetString() 封裝主要代碼(以客戶為例)客戶的信息添加packagesrc;importjavax.swing.JDialog;importjavax.swing.JFrame;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;classCAddextendsJDialogimplementsActionListener{JLabellb1,lb2,lb3,lb4,lb5,lb6,lb7,lb8;JTextFieldtf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8;JButtonbt1,bt2;JPanelpn1,pn2,pn3,pn4,pn5,pn6,pn7,pn8;publicCAdd(Frameowner,Stringtitle,Booleanmodal){super(owner,title,modal);//JDialog的帶參構(gòu)造,父窗口、窗口標(biāo)題、是否能移動

lb1=newJLabel(" 編號 ");lb2=newJLabel(" 姓名 ");lb3=newJLabel(" 性別 ");lb4=newJLabel(" 類別 ");lb5=newJLabel(" 負(fù)責(zé)人員 ");lb6=newJLabel(" 電話號碼 ");lb7=newJLabel(" 聯(lián)系地址 ");lb8=newJLabel(" 倉庫編號 ");tf1=newJTextField(8); tf2=newJTextField(8);tf3=newJTextField(8); tf4=newJTextField(8);tf5=newJTextField(8); tf6=newJTextField(8);tf7=newJTextField(8); tf8=newJTextField(8);bt1=newJButton("添加");bt1.addActionListener(this);bt1.setActionCommand("add");//設(shè)置按鈕名稱bt2=newJButton("取消");bt2.addActionListener(this);bt2.setActionCommand("cancel");//設(shè)置按鈕名稱pn1=newJPanel();pn2=newJPanel();pn3=newJPanel();pn4=newJPanel();pn7=newJPanel();pn5=newJPanel();pn8=newJPanel();pn6=newJPanel();pn1.setLayout(newGridLayout(8,1));pn2.setLayout(newGridLayout(8,1));pn1.add(lb1); pn1.add(lb2); pn1.add(lb3);pn1.add(lb4); pn1.add(lb5); pn1.add(lb7); pn1.add(lb8);pn2.add(tf1); pn2.add(tf2); pn2.add(tf3);pn2.add(tf4); pn2.add(tf5); pn2.add(tf7); pn2.add(tf8);pn3.add(bt1); pn3.add(bt2);this.add(pn1,BorderLayout.WEST);this.add(pn2);this.add(pn4,BorderLayout.EAST);this.add(pn5,BorderLayout.NORTH);this.add(pn6,BorderLayout.NORTH);this.add(pn7,BorderLayout.NORTH);this.add(pn8,BorderLayout.NORTH);this.setSize(370,270);this.setLocation(401,281);this.setResizable(false);this.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("add")){//按下添加按鈕連接數(shù)據(jù)庫并插入記錄

PreparedStatementps=null;Connectionct=null;ResultSetrs=null;String url="jdbc:sqlserver://localhost:1433;DatabaseName=CKGL;";try{ct=DriverManager.getConnection(url,"sa","sa");Strings=("insertintoCvalues(?,?,?,?,?,?,?,?)");ps=ct.prepareStatement(s);ps.setString(1,tf1.getText());ps.setString(2,tf2.getText());ps.setString(3,tf3.getText());ps.setString(4,tf4.getText());ps.setString(5,tf5.getText());ps.setString(6,tf6.getText());ps.setString(7,tf7.getText());ps.setString(8,tf8.getText());ps.executeUpdate();this.dispose();}catch(Exceptione2){ finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}}catch(Exceptione3){ }}}elseif(e.getActionCommand().equals("cancel")){this.dispose();}}}客戶的信息修改packagesrc;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;classCAlterextendsJDialogimplementsActionListener{JLabellb1,lb2,lb3,lb4,lb5,lb6,lb7,lb8;JTextFieldtf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8;JButtonbt1,bt2;JPanelpn1,pn2,pn3,pn4,pn5,pn6,pn7,pn8;publicCAlter(Frameowner,Stringtitle,Booleanmodal,CTabletable,introw){super(owner,title,modal);lb1=newJLabel(" 編號 ");lb2=newJLabel(" 姓名 ");lb3=newJLabel(" 性別 ");lb4=newJLabel(" 類別 ");lb5=newJLabel(" 負(fù)責(zé)人員 ");lb6=newJLabel(" 電話號碼 ");lb7=newJLabel(" 聯(lián)系住址 ");lb8=newJLabel(" 倉庫編號 ");tf1=newJTextField(8);tf1.setText((String)table.getValueAt(row,0));//獲得指定行、第一列的單元格值SNOtf1.setEditable(false);//設(shè)置為不可修改tf2=newJTextField(8);tf2.setText((String)table.getValueAt(row,1));//獲得指定行、第二列的單元格值SNAMEtf3=newJTextField(8);tf3.setText((String)table.getValueAt(row,2));//獲得指定行、第三列的單元格值SEXtf4=newJTextField(8);tf4.setText((String)table.getValueAt(row,3).toString());//獲得指定行第四列的單元格值,即AGE字段的值要轉(zhuǎn)成字符串類型tf5=newJTextField(8);tf5.setText((String)table.getValueAt(row,4));//獲得指定行、第五列的單元格值,COLLEGEtf6=newJTextField(8);tf6.setText((String)table.getValueAt(row,5));tf7=newJTextField(8);tf7.setText((String)table.getValueAt(row,6));tf8=newJTextField(8);tf8.setText((String)table.getValueAt(row,7));bt1=newJButton("修改");bt1.addActionListener(this);bt1.setActionCommand("edit");bt2=newJButton("取消");bt2.addActionListener(this);bt2.setActionCommand("cancel");pn1=newJPanel();pn2=newJPanel();pn4=newJPanel();pn5=newJPanel();pn7=newJPanel();pn8=newJPanel();pn1.setLayout(newGridLayout(8,1));pn2.setLayout(newGridLayout(8,1));pn1.add(lb1); pn1.add(lb2); pn1.add(lb4); pn1.add(lb5); pn1.add(lb7); pn1.add(lb8);pn2.add(tf1); pn2.add(tf2); pn2.add(tf3);pn2.add(tf4); pn2.add(tf5); pn2.add(tf7); pn2.add(tf8);pn2.add(tf1); pn2.add(tf2); pn2.add(tf3);pn2.add(tf4); pn2.add(tf5); pn2.add(tf7); pn2.add(tf8);pn3.add(bt1); pn3.add(bt2);this.add(pn1,BorderLayout.WEST);this.add(pn2);this.add(pn4,BorderLayout.EAST);

pn3=newJPanel();pn6=newJPanel();this.add(pn5,BorderLayout.NORTH);this.add(pn6,BorderLayout.NORTH);this.add(pn7,BorderLayout.NORTH);this.add(pn8,BorderLayout.NORTH);this.setSize(370,270);this.setLocation(401,281);this.setResizable(false);this.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("edit")){PreparedStatementps=null;Connectionct=null;ResultSetrs=null;Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=CKGL;";try{ct=DriverManager.getConnection(url,"sa","sa");Stringss=("updateCsetCNAME=?,sex=?,POST=?,YNO=?,PHONEUMBER=?,HOME=?,PNO=?whereCNO=?");ps=ct.prepareStatement(ss);ps.setString(1,tf2.getText());ps.setString(2,tf3.getText());ps.setString(3,tf4.getText());ps.setString(4,tf5.getText());ps.setString(5,tf6.getText());ps.setString(6,tf7.getText());ps.setString(7,tf8.getText());ps.setString(8,tf1.getText());ps.executeUpdate();this.dispose();}catch(Exceptione2){ finally{try{if(rs!=null){ rs.close(); }if(ps!=null){ ps.close(); }if(ct!=null){ ct.close(); }}catch(Exceptione3){}}}elseif(e.getActionCommand().equals("cancel")){this.dispose();}}}客戶的界面packagesrc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.ArrayList;importjavax.swing.table.*;//CTable類主要用于客戶C的表格方式顯示//AbstractTableModel抽象類主要把數(shù)據(jù)庫中的信息以表格形式顯式classCTableextendsAbstractTableModel{ArrayListheadings,records;//可變長的數(shù)組PreparedStatementps=null;Connectionct=null;ResultSetrs=null;publicintgetRowCount(){//獲得表格的行數(shù)returnthis.records.size();}publicintgetColumnCount(){//獲得表格的列數(shù)returnthis.headings.size();}publicObjectgetValueAt(introw,intcolumn){//獲得指定行、指定列的單元格值return((ArrayList)this.records.get(row)).get(column);}publicStringgetColumnName(inte){//獲得表格的列標(biāo)題return(String)this.headings.get(e);}publicCTable(){//無參構(gòu)造方法用于表中所有記錄的查詢this.handles("select*fromC");}//SQLpublicCTable(Stringsqlthis.handles(sql);}publicvoidhandles(Stringsql){//定義表格的列標(biāo)題headings=newArrayList();headings.add("編號");姓名");性別");headings.add("類別");headings.add("負(fù)責(zé)人員");headings.add("電話號碼");headings.add("聯(lián)系住址");headings.add("倉庫編號");//定義記錄(多行數(shù)據(jù))的集合records=newArrayList();ArrayListrows;//定義行(一行有多列)Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=CKGL;";try{ct=DriverManager.getConnection(url,"sa","sa");ps=ct.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){rows=newArrayList();rows.add(rs.getString(1));//CNO數(shù)據(jù)放入行集合rows.add(rs.getString(2));//CNAME數(shù)據(jù)放入行集合rows.add(rs.getString(3));//SEX數(shù)據(jù)放入行集合rows.add(rs.getString(4));//post數(shù)據(jù)放入行集合rows.add(rs.getString(5));//YNO數(shù)據(jù)放入行集合rows.add(rs.getString(6));//獲取PHONEUMBERrows.add(rs.getString(7));rows.add(rs.getString(8));records.add(rows);//將一行數(shù)據(jù)加入到記錄集合}}catch(Exceptione){}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}}catch(Exceptione){}}}}數(shù)據(jù)庫的連接packagesrc;importjava.sql.*;publicclassSeqTest{staticConnectionconnect;staticStatementst;publicstaticvoidmain(String[]args){Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=CKGL;";try{//連接數(shù)據(jù)庫connect=DriverManager.getConnection(url,"sa","sa");//建立Statement對象st=connect.createStatement();ResultSetrs=st.executeQuery("select*fromC,PwhereC.PNO=P.PNO");while(rs.next()){StringCNO=rs.getString(1);StringCNAME=rs.getString(2);Stringsex=rs.getString(3);StringPOST=rs.getString(4);StringYNO=rs.getString(5);StringPHONE=rs.getString(6);StringHOME=rs.getString(7);StringPNO=rs.getString(8);System.out.println(CNO+""+CNAME+""+sex+""+POST+""+YNO+""+PHONE+""+HOME+""+PNO);}}catch(SQLExceptione1){e1.printStackTrace();System.out.println("連接失敗!");}finally{try{if(st!=null){st.close();}if(connect!=null){connect.close();}}catch(Exceptione2){}}}}客戶信息的刪除及調(diào)用packagesrc;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.*;//倉庫管理的主界面publicclassCManagerextendsJFrameimplementsActionListener{JPanelpn1,pn2;JLabellabel;JTextFieldtextField;JButtonbt1,bt2,bt3,bt4;JTabletable;//中部顯示的表格JScrollPanescrollPane;CTablectable;publicCManager(){pn1=newJPanel();label=newJLabel("請輸入編號");textField=newJTextField(10);bt1=newJButton("查詢");bt1.addActionListener(this);bt1.setActionCommand("query");//設(shè)置查詢按鈕的名稱pn1.add(label);pn1.add(textField);pn1.add(bt1);pn2=newJPanel();bt2=newJButton("添加");bt2.addActionListener(this);bt2.setActionCommand("add");//設(shè)置添加按鈕的名稱bt3=newJButton("修改");bt3.addActionListener(this);bt3.setActionCommand("edit");//設(shè)置修改按鈕的名稱bt4=newJButton("刪除");bt4.addActionListener(this);bt4.setActionCommand("remove");//設(shè)置刪除按鈕的名稱pn2.add(bt2);pn2.add(bt3);pn2.add(bt4);ctable=newCTable();table=newJTable(ctable);scrollPane=newJScrollPane(table);this.add(scrollPane);this.add(pn1,"North");this.add(pn2,"South");this.setTitle("倉庫管理系統(tǒng)");this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getActi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論