《数据库系统课程设计-仓库管理系统-java25744.docx》由会员分享,可在线阅读,更多相关《数据库系统课程设计-仓库管理系统-java25744.docx(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验报告告仓库管理理系统实验课程程数据库实实验实验者11姓名班级学号实验者22姓名班级学号实验时间间指导老师师目录P3 要求 P4 参考资资料阅读读心得P6概述(设设计思路路、实现现功能、运运用技术术)P7 实现及及操作(关键代代码解析析、运行行结果、类类方法的的介绍)P17存在问问题和需需要改善善的地方方P18附录(完整代代码 包包括 分分布调试试代码)要求:使用ACCCESSS、SSQL SERRVERR、ORRACLLE、MMYSQQL等作作后台数数据库,选选择ASSP、VVB、VVC、JJAVAA等作为为前台开开发工具具设计一一个小型型管理系系统。所所设计的的小型管管理系统统应包含含输
2、入输输出、查查询、插插入、删删除等基基本功能能,功能能越强大大越好。根根据题目目的基本本需求,设设计数据据库、编编写程序序,并写写出详细细的设计计说明书书。每班以22人为一一组自由由分组,由由班长将将分组情情况报到到指导教教师处;需要提交交的文档档资料:设计说说明书每每人一份份(包括括:参考考资料的的阅读心心得,功功能需求求说明,设设计思路路,数据据表结构构及作用用,数据据关系图图,存储储过程代代码及相相关注释释,设计计体会);电子文文档:可可运行的的,能实实现全部部或者主主要基本本功能的的小型系系统。课程设计计说明书书编写规规范 : a. 需求分析析:题目目要求达达到的功功能,所所提供的的原
3、始数数据,需需要输出出的数据据及样式式等。b. 数据库设设计:根根据要求求设计数数据库的的结构,包包括:表表、数据据完整性性、关系系、视图图。c. 开发方案案选择:主要是是前端开开发平台台的选择择与方案案的比较较,至少少比较两两套方案案。d. 安全性设设计:登登录用户户、数据据库用户户、数据据库角色色、命令令许可等等方面。e. 前台应用用程序设设计:要要求至少少完成通通过前台台程序实实现对后后台数据据库的数数据查询询、插入入、删除除与更新新。涉及及到数据据的所有有操作要要求采用用存储过过程的方方式进行行。f. 附录或参参考资料料:参考考资料来来源,阅阅读心得得。参考资料料阅读心心得:参考资料料
4、(老师师提供):2、 教教材信息息数据库库高校的的教材管管理需要要相应的的数据库库环境,请请根据如如下系统统需求定定义数据据表结构构及关系系,并通通过编写写存储过过程来实实现其中中的两项项功能:1)、教教材出入入库(1)教教材入库库将教材内内部识别别号、入入库时间间,入库库数,适适用对象象等信息息输入到到教材入入库记录录表中,并并更新在在库教材材信息表表。教材材入库后后把教材材征订单单相应项项目做教教材收到到标记。(暂暂不处理理订单中中某教材材只入库库其中一一部分的的情况,即即缺货情情况。)(2)教教材出库库教师或学学生或班班级或其其它人员员领用教教材,需需要把教教材内部部编号,教教材代号号,
5、出库库时间,出出库数量量,使用用单位(指指班级或或教师,可可多个班班级或教教师),用用途,经经办人等等信息输输入到教教材出库库记录表表中。并并同时更更新教材材信息表表中的在在库数量量。为便便于教材材信息的的录入,可可通过班班级名称称、课程程名称或或教材名名称查询询到要出出库的教教材信息息表中相相应教材材的内部部编号。(3)教教材信息息录入将教材的的内部识识别号(由由本系统统自动维维护),代代号,书书名,编编著者,出出版社,版版次,定定价,入入库时间间,入库库数,适适用对象象等信息息录入到到系统的的数据库库中。2)、教教材查询询(1)在在库教材材查询查询教材材在库情情况:可按书名名、代号号等查询
6、询, 可可查询某某班级使使用的教教材及在在库数量量,可查查询某课课程使用用的教材材及在库库数量。可可查询指指定教材材的在库库数量,价价值总额额。可查询教教材在库库的统计计信息:在库教教材总数数、种类类总数、价价值总额额。(2)教教材出库库查询教材出库库信息查查询:按教材代代号等信信息查询询教材出出库情况况,可查查询某使使用对象象(包括括班级、教教师、部部门、其其他人员员)的教教材出库库情况。可可查询某某时间范范围内(学学期、学学年等)的的教材出出库情况况。(3)教教材历史史查询查询指定定书的在在库及出出入库的的历史信信息,也也可按时时间或时时间范围围查询教教材入库库情况。便便于管理理员掌握握教
7、材出出入库情情况。3)、教教材订购购(1)、生生成教材材订单根据输入入的各专专业班级级课程教教材选用用信息、教教材出版版社信息息生成订订单。(2)、教教材订单单状态管管理订单状态态管理:可标记记各订单单为有效效(款项项发出),图图书入库库后标记记订单为为到货,图图书退回回标记为为退换货货。4)、教教材订单单查询可查询指指定学期期教材订订单的到到货、缺缺货情况况,查询询订单未未到教材材的订货货公司信信息包括括它的银银行帐号号、地址址、联系系人、联联系方法法等,以以便与其其联系。5)、其其他相关关数据:学生相相关、课课程相关关、教师师相关、班班级相关关、系部部相关阅读心得得:我们的选选题是仓仓库管
8、理理系统,和和教材信信息数据据库大致致相同,实实现的功功能略作作添加;我们需要要完成的的任务:(1).这个实实验本质质就是设设置合理理的操作作界面,实实现对数数据库的的数据读读取、修修改、删删除、更更新等操操作;(2). 系统统的完备备性和操操作的安安全性,是是完善软软件的关关键,其其中包括括:插插入相同同信息 ;数数据库中中物品数数量不足足 ;管管理员编编号不存存在 ;安安全登录录 ;不不同角色色的对数数据库的的操作权权限 ;等等问问题,都都是我们们需要解解决的基基本问题题;(3) 界面的的美化和和操作的的快捷性性和正确确性 ;界面面是给客客户的第第一感触触,尽量量的新颖颖并且符符合客户户要
9、求 :(这里我我们是学学习,争争取掌握握多一点点处理界界面的函函数,没没有系统统的规划划) 如果美化化界面是是尽量的的完善,那那么操作作的快捷捷性和正正确性是是必须要要实现的的,给客客户一个个合理的的操作是是成功的的必备条条件;(4) 分工与与合作我们两个个人都是是javva的初初级学习习者,不不断的学学习,分分别设计计不同的的界面,相相互交流流实现效效果的的的经验;关于数数据库的的知识和和SQLL语言的的学习,都都是我们们要重新新学习的的;(5) 文档的的处理和和制作,也也是我们们要完成成的重要要任务,我我们也是是分工完完成;概述1.设计计思路:(1)仓库管管理系统统,实现现功能:入库登记记
10、 : 商品入入库记录录;出库登记记 : 库存商商品出库库;在库商品品查询 : 库库存物品品查询;出库入库库信息查查询 : 按时时间,操操作管理理员查询询操作信信息;管理员信信息管理理 : 管理员员的登记记,查询询,删除除;(2).附加实实现功能能:登录界界面 : 实现现管理员员员和客客户的不不同角色色登录;界面的的转换 : 分分别创建建不同的的窗口,并并及时删删除浏览览过的窗窗口;分角色色设定使使用权限限: 管管理员和和客户的的使用权权限不同同;(3).异常处处理:操作错错误 : 信息息输入错错误等;常规错错误 : 仓库库物品数数量不足足等;2.运用用技术:(1) 界面实现现 : jaava语
11、语言;(2) 数据路操操作实现现 :使使用Acccesss20003,运运用SQQL语言言进行操操作;实现及操操作根据分析析,一共共设计99个类,如如下图,其其中:数据库操操作类:DBAAcceess :实现现连接,查查询修改改等分步步操作 ;GettDBIInfoo :实实现查询询结果集集的返回回 ;操作界面面类:Entter :登录界界面Sellectt : 功能选选择界面面InSStorreHoousee : 物品入入库操作作界面OuttStooreHHousse : 物品出出库操作作界面SeaarchhGooods : 物品查查询界面面OuttIn :出入库库查询界界面Mannagee
12、rInnfo : 管理员员信息管管理界面面分步实现现说明:1. DBAcccesss类publlic Staatemmentt geetSttateemennt(SStriing dbPPathh) tthroows Exccepttionn:返回连接接数据库库的状态态 ;publlic RessulttSett exxecuuteQQuerry(SStattemeent stmmt,SStriing queery) thhrowws EExceeptiion :返回查询询结果集集;publlic voiid eexeccuteeUpddatee(Sttateemennt sstmtt,Stt
13、rinng qquerry) thrrowss SQQLExxcepptioon :更新数据据库 ;publlic voiid cclosse() thhrowws SSQLEExceeptiion :关闭数据据库的连连接 ;2. GetDDBInnfo类类privvatee VeectoorVVecttor rowws ; 记录录查询返返回元组组privvatee Veectoor ccoluumnHHeadds ; 记录录查询返返回结果果的标题题 /获取取表头VVoluumnHHeaddspubblicc Veectoor ggetCColuumnHHeadds() ;/获取取表中内内容p
14、ubblicc Veectoor ggetRRowss() ;/ 更更新数据据库 publlic voiid eexeccuteeUpddatee(Sttateemennt sstmtt,Sttrinng qquerry) thrrowss SQQLExxcepptioon ; 3. Enteer类privvatee JFFramme fframme ;privvatee JBButtton entterBButtton ;privvatee JBButtton reesettButttonn;用于标识识登陆角角色的单单选按钮钮privvatee JRRadiioBuuttoon rradii
15、oBuuttoon1 ;privvatee JRRadiioBuuttoon rradiioBuuttoon2 ;priivatte JJTexxtFiieldd naameTTextt ;priivatte JJPassswoordFFielld ppasssworrdTeext ;表示登录录身份:pubblicc sstattic boooleaan iisMaanagger = ffalsse ;实现效果果:基本实现现:(1)图图片载入入:JLabbel labbel44 = neww JLLabeel();ImaggeIccon icoon = neew IImaggeIccon(E:
16、sstuddyjavvaworrksppaceeSStorreHoouseeaabc.jpgg);labbel44.seetIccon(icoon);(2)单单选按钮钮:ButttonnGrooup grooup = nnew ButttonnGrooup();raddioBButtton11 = neww JRRadiioBuuttoon(管理员员,ffalsse);raddioBButtton22 = neww JRRadiioBuuttoon(客户,trrue);grooup.addd(raadiooButttonn1) ;grooup.addd(raadiooButttonn2) ;4
17、. InSttoreeHouuse类类基本成员员变量:privvatee JFFramme fframme ;输入信息息的111个文本本框:priivatte JJTexxtFiieldd teext11 - 111;privvatee JTTexttFieeld inffoTeext ;privvatee JBButtton okBButtton ;privvatee JBButtton bacckBuuttoon ;设置日期期格式:priivatte sstattic finnal Strringg YYYYMMMDDHHHMMMSS = yyyyy/MMM/ddd HHH:mmm:sss
18、;基本函数数:/SQQL语句句生成pubblicc Sttrinng ggetSSQL()/自动动生成插插入时间间 publlic Strringg innserrtTiime()/自动动生成入入库IDDpubllic Strringg innHouuseIID()/清除除文本框框publlic voiid ccleaar()实现效果果:基本功能能实现:监听器的的设定:pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e) Obbjecct ssourrce = ee.geetSoourcce() ; iff(soourcce = ookB
19、uuttoon) tryy DBAAcceess db=neww DBBAcccesss(); Strringg dbbPatth=E:sttudyyjjavaawworkkspaaceSttoreeHouuseSttoreeHouuse.mdbb; Staatemmentt sttmt=db.gettStaatemmentt(dbbPatth); Strringg quueryy = gettSQLL(); db.exeecutteUppdatte(sstmtt,quueryy) ; queery = iinseertSSQL() ; db.exeecutteUppdatte(sstmtt,
20、quueryy) ; stmmt.cclosse(); db.cloose() ; inffoTeext.settTexxt(存储成成功); cleear() ; caatchh (EExceeptiion ex) ex.priintSStacckTrracee() ; eelsee iff(soourcce = bbackkButttonn) fraame.dissposse() ; neww Seelecct() ; 5. OutSStorreHoousee类基本成员员变量:priivatte JJFraame fraame ;priivatte JJButttonn okkButtton
21、n ;priivatte JJButttonn baackBButtton ;priivatte JJTexxtFiieldd teext11;priivatte JJTexxtFiieldd teext22;priivatte JJTexxtFiieldd teext33;priivatte JJTexxtFiieldd teext44;priivatte sstattic finnal Strringg YYYYMMMDDHHHMMMSS = yyyyy/MMM/ddd HHH:mmm:sss;priivatte IInteegerr nuum ; /修修改数据据里中数数量的临临时变量量基
22、本函数数:同IInSttoreeHouuse雷雷同实现效果果:基本功能能实现:处理物品品编号不不存在,以以及数量量不足的的问题:publlic voiid aactiionPPerfformmed(ActtionnEveent e)Obbjecct ssourrce = ee.geetSoourcce() ;iff(soourcce = ookBuuttoon)ttryDBAAcceess db=neww DBBAcccesss(); Strringg dbbPatth=E:sttudyyjjavaawworkkspaaceSttoreeHouuseSttoreeHouuse.mdbb; St
23、rringg quueryy=geetGooodssSQLL(); Staatemmentt sttmt=db.gettStaatemmentt(dbbPatth); RessulttSett rss=dbb.exxecuuteQQuerry(sstmtt, qquerry); if(!(rrs.nnextt()/判断数数据库中中是否有有内容JOpttionnPanne.sshowwMesssaggeDiialoog(nnulll, 输入货货物编号号不存在在, 提示示信息,JOOptiionPPanee.INNFORRMATTIONN_MEESSAAGE);texxt3.settTexxt(操
24、作失失败);cleear() ;ellse/判判断仓库库物品是是否够/这这里实验验了很多多次 为什什么 只有nnum = 放在这这里才可可以呢if(nuum = Inntegger.vallueOOf(rrs.ggetSStriing(1).inntVaaluee() - IInteegerr.vaalueeOf(texxt2.gettTexxt().iintVValuue() 0)JOpptioonPaane.shoowMeessaageDDiallog(nulll, 仓库库货物不不足, 提提示信息息,JJOpttionnPanne.IINFOORMAATIOON_MMESSSAGEE);c
25、leear() ;texxt3.settTexxt(操作失失败);ellsequeery = ggetSSenddOuttSQLL() ;db.exeecutteUppdatte(sstmtt, qquerry) ;queery = uupdaateGGooddsSQQL(nnum) ;db.exeecutteUppdatte(sstmtt, qquerry) ;texxt3.settTexxt(操作成成功); stmmt.cclosse() ; db.cloose() ; caatchh (EExceeptiion ex) ex.priintSStacckTrracee() ; eelsee
26、 iff(soourcce = bbackkButttonn)fframme.ddispposee() ;nnew Sellectt() ;解析:这里应用用到数据据类型的的转变,SStriing 到innt ddoubble的的转化;还可以应应用其他他方法:如: rss.geetInnt(33); 直接接读取数数据库中中的 iint类类型; rs.gettDouublee(4) :直直接读取取douublee类型6. SearrchGGoodds类基本成员员函数:privvatee JFFramme fframme ;privvatee JSScroollPPanee jssp ;privva
27、tee JCCombboBoox nnameeLisst ;privvatee JCCombboBoox ttypeeLisst ;privvatee JCCombboBoox pprodducttLisst ;privvatee JTTexttFieeld couuntTTextt ;privvatee JTTexttFieeld vallueTTextt ;privvatee JBButtton okBButtton ;privvatee JTTablle ttablle ;privvatee DeefauultTTablleMoodell moodell ;privvatee JBBut
28、tton bacckBuuttoon ;privvatee Veectoor rrowss; /表行行值privvatee Veectoor ccoluumnHHeadds;/ 表表列名/查询询使用 :Sttrinng sstr11,sttr2,strr3 ;基本函数数实现相相同;实现效果果:7. OOutIIn类基本函数数变量:priivatte JJFraame fraame ;priivatte JJRaddioBButtton inBButtton ;priivatte JJRaddioBButtton outtButttonn;priivatte JJButttonn okkButt
29、tonn ;priivatte JJButttonn baackBButtton ;priivatte JJCommboBBox commboxx1 ;priivatte JJCommboBBox commboxx2 ;priivatte JJTabble tabble ;priivatte VVecttor rowws; /表表行值priivatte VVecttor collumnnHeaads;/ 表列名名priivatte DDefaaulttTabbleMModeel mmodeel ;priivatte JJScrrolllPanne jjsp ;priivatteStrringg
30、 sttr1 = nnulll ,sstr22 = nulll ; /查查询使用用priivatte bboolleann fllag = ffalsse ;priivatte iint tmpp = 0 ;priivatte sstattic finnal Strringg YYYYMMMDDHHHMMMSS = yyyyy/MMM/ddd;实现效果果:基本实现现:时间字符符创的分分割处理理 ;8. Seleect类类基本成员员变量privvatee JBButtton butttonn1 ;priivatte JJButttonn buuttoon2 ;priivatte JJButtto
31、nn buuttoon3 ;priivatte JJButttonn buuttoon4;priivatte JJButttonn buuttoon5 ;priivatte JJButttonn buuttoon6 ;priivatte JJTexxtFiieldd Teext ;priivatte JJFraame fraame ;实现效果果:基本实现现:界面效果果实现:infooLabbel.settHorrizoontaalAllignnmennt(SSwinngCoonsttantts.CCENTTER); inffoLaabell.seetBaackggrouund(Collor.g
32、raay) ;Textt.seetBaackggrouund(Collor.graay) ;Textt.seetFooreggrouund(Collor.cyaan) ;Textt.seetFoont(neww Foont(宋体体,FFontt.HAANGIING_BASSELIINE,20);9. ManaagerrInffo 类类 基本函数数:priivatte JJFraame fraame ;priivatte JJTabbbeddPanne ttabbbedPPanee ;priivatte JJLabbel labbel11 ;priivatte JJLabbel labbel22
33、 ;priivatte JJLabbel labbel33 ;priivatte JJPannel pannel11 ;priivatte JJPannel pannel22 ;priivatte JJPannel pannel33 ;priivatte JJCommboBBox ageeBoxx ;priivatte JJCommboBBox worrkAggeBoox ;priivatte JJCommboBBox posstioonBoox ;priivatte JJTexxtFiieldd teext221 ;priivatte JJTexxtFiieldd teext222 ;pri
34、ivatte JJTexxtFiieldd teext223 ;priivatte JJTexxtFiieldd teext224 ;priivatte JJTexxtFiieldd teext225 ;priivatte JJTexxtFiieldd teext226 ;priivatte JJTexxtFiieldd teext227 ;priivatte JJTexxtFiieldd teext228 ;priivatte JJTexxtFiieldd teext331 ;priivatte JJTexxtFiieldd teext332 ;priivatte JJButttonn bu
35、uttoon111 ;priivatte JJButttonn buuttoon122 ;priivatte JJButttonn buuttoon211 ;priivatte JJButttonn buuttoon311 ;priivatte JJButttonn baackBButtton ;priivatte JJTabble tabble ;priivatte VVecttor rowws; /表表行值priivatte VVecttor collumnnHeaads;/ 表列名名priivatte DDefaaulttTabbleMModeel mmodeel ;priivatte
36、JJScrrolllPanne jjsp ;priivatteStrringg sttr1= nuull,strr2 = nuull ,sttr3 = nnulll ; /查询询使用基本功能能函数:这里的函函数处理理和上面面的相同同,只是是在布局局上采用用了JttabllePaanlee面板,将将三个功功能加在在同一个个窗口里里;实现效果果:处理问题题:要删除的的管理员员信息不不存在:if(ssourrce = butttonn31)boolleann deeletteSttatee = fallse ;try DBAAcceess db=neww DBBAcccesss(); Strring
37、g dbbPatth=E:sttudyyjjavaawworkkspaaceSttoreeHouuseSttoreeHouuse.mdbb; Strringg quueryy = seelecct * frrom Mannageer wwherre 编编号 = + + ttextt31.gettTexxt() + ; Staatemmentt sttmt=db.gettStaatemmentt(dbbPatth); RessulttSett rss=dbb.exxecuuteQQuerry(sstmtt, qquerry); whille(rrs.nnextt() if(rrs.ggetSSt
38、riing(1).equualss(teext331.ggetTTextt() queery = delletee frrom Mannageer wwherre 编编号 = + + ttextt31.gettTexxt() + ; db.exeecutteUppdatte(sstmtt,quueryy) ;textt31.settTexxt();textt32.settTexxt(删除成成功); delleteeStaate = ttruee ; stmmt.cclosse(); db.cloose() ; cattch (Exxcepptioon eex) ex.priintSStacck
39、Trracee() ; if(ddeleeteSStatte = ffalsse) textt32.settTexxt(输入编编号不存存在); textt31.settTexxt(); 解析:在删除之之前,对对数据库库进行检检查,判判断 管理员员编号 是否存存在 ;存在问题题和需要要完善的的问题附录 : 代码码实现 72DBAcccesss.JJavaa文件impoort javva.ssql.Connnecctioon;impoort javva.ssql.DriiverrMannageer;impoort javva.ssql.RessulttSett;impoort javva.ssql
40、.SQLLExccepttionn;impoort javva.ssql.Staatemmentt;publlic claass DBAAcceess pubblicc Coonneectiion connn=nnulll; / 连接未未加密的的数据库库 pubblicc Sttateemennt ggetSStattemeent(Strringg dbbPatth) thrrowss Exxcepptioon Cllasss.foorNaame(suun.jjdbcc.oddbc.JdbbcOddbcDDrivver); Sttrinng ddburrl = jjdbcc:oddbc:dri
41、iverr= Miccrossoftt Acccesss DDrivver (*.mdbb); + DDBQ=+ddbPaath;/ 此为NNO-DDSN方方式 / Sttrinng ddburrl =jddbc:odbbc:oodbccNamme;/此此为ODDBC连连接方式式 coonn = DDrivverMManaagerr.geetCoonneectiion(dbuurl); reeturrn cconnn.crreatteSttateemennt(); /连连接加密密的数据据库 pubblicc Sttateemennt ggetSStattemeent(Strringg dbbPatth,SStriing passswoord) thhrowws EExceeptiion Cllasss.foorNaame(suun.jjdbcc.oddbc.JdbbcOddbcDDrivver); Sttrinng ddburrl =jddbc:odbbc:ddrivve