- 1.68 MB
- 2022-05-16 18:35:00 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
毕业论文题目:仓库管理系统的设计与实现
毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名: 日 期: 指导教师签名: 日 期: 使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期:
学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日
注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日
评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日
教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日III
仓库管理系统摘要21世纪是一个信息化的时代,企业只有敏捷的获取生产信息和市场信息,才能置身于国际大舞台,这就离不开先进的企业管理系统——ERP。而仓库管理系统正是ERP中一个最重要的组成部分,也是企业生产过程的一个重要组成部分。企业要在现代化国内外市场取得一席之地,就必须使其仓库管理体系达到现代化水平,也即使仓库管理从原始的手工阶段走向方便快捷的计算机实现阶段。选择合理的仓库管理方法,不仅会促进销售,改善生产秩序,做到均衡生产,而且会降低库存的占用资金,最终使企业获得更好的经济效益。本仓库管理系统是针对的实际需求,从实际工作出发,在分析目前仓库管理系统中存在的问题的基础上,结合管理信息系统开发的概念、结构及系统开发的基本原理和方法,并利用计算机运算速度快、存储信息容量大、处理逻辑问题强、功能强大的优势,采用目前流行的B/S结构和流行框架SSH(Struts+Spring+Hibernate)和MVC设计模式。通过Internet/Intranet实现对物资进行管理,特别是对物资基本信息管理、物资调配信息等进行完整的监控而开发出来的。从查询与决策信息的管理需求出发,针对性强,功能齐备,旨在通过帮助该库存管理实现信息化、网络化,以提高管理的效率。本仓库管理信息系统主要包括“入库管理”、“出库管理”、“基本信息管理”和“系统用户管理”等模块。它主要对物资的出入库进行统计和核算,及时准确地掌握商品库存情况,并动态反映物资的增减变动,为的决策提供基础数据。关键词:仓库管理系统;B/S;SSH;MVCIII
WMS-WarehouseManagementSystemAbstract21centuryisaninformativeERP.Enterpriseswhichcouldactivateintheinternationalcommunitymustdependentontheacquisitionofthemanufactureandmarketinginformation.Thisneedsadvancedenterprisemanagementsystem---ERP.AndwarehousemanagementsystemisamostimportantpartofERP.Toobtainaplaceintheinnerandinternationalmarket,thewarehousemanagementsystemofenterprisesmustmodernize.Namely,themanagementofwarehousemusttransmitfromprimitivehandmadestagetoconvenientcomputerization.Choosingpropermethodofwarehousemanagement,notonlytoboostmarket,amelioratingtheorderofproduction,achievingtheendofequilibriumproduction.Itcanalsodecreasethefundsofstockings.Ultimately,enterprisesobtainbettereconomicsbenefitbyusingthissoftware.Howtoreducethecost,improveworkefficiencyismaterialsstoremanagersneedtosolveapracticalproblem.Thismaterialmanagementinformationsystemisaimedattheactualdemand,fromactualconditions,andontheanalysisofthecurrentmaterialmanagementinformationsystembasedontheproblemsexistingintheinformationsystemdevelopment,managementconcept,structureandsystemdevelopment,thebasicprincipleandmethods,anduseofcomputeroperationspeedandstoragecapacityandprocessinginformation,logicalproblemofpowerfuladvantages,thepopularityofB/Sstructureandthethreepandemic frameworkofSSH(Struts+Spring+Heibernate)andMVCdesignpattern,throughtheInternet/oneofenterprisemanagement,especiallyforbasicinformationmanagement,materials,materials,informationofdeploymentandmonitoring.Fromthemanagementdecisioninformationqueryandpertinence,istohelptheenterprise,byrealizinginformationization,thenetworkmanagementofmaterial,inordertoimprovetheefficiencyoftheenterprisemanagement.Thismaterialmanagementinformationsystemmainlyinclude"materialinventorymanagement",and"materialoutboundmanagement"and"material"and"thebasicinformationmanagementsystemusermanagement",etc.Itmainlysuppliesfortheenterprisetomakestatisticsandaccounting,timelyandaccuratelygraspthedynamicinventorygoods,andreflectsthechanges,enterpriseorbusinessthedecisiontoprovidebasicdata.KeyWords:WMS-WarehouseManagementSystem;B/S;SSH;MVC;III
目录摘要IAbstractII目录11绪论11.1课题设计的背景11.2课题设计的目的和意义11.3课题的主要研究工作21.4论文结构安排22课题涉及的关键技术32.1MVC设计模式简介32.2JSP技术简介32.2.1JSP工作原理42.2.2JSP体系结构42.2.3JSP的特点52.3SSH框架简介52.3.1定义52.3.2Struts262.3.3Spring62.3.4Hibernate72.4SqlServer数据库简介82.4.1SQLServer2005简介82.4.2“结构化查询语言”(SQL)简介83系统需求分析103.1可行性分析103.1.1技术可行性103.1.2经济可行性10
3.2功能需求分析103.3数据需求分析113.5性能需求分析134系统概要设计144.1系统功能设计144.2数据库的设计154.2.1E-R图的设计154.2.2数据库表的设计175系统的详细设计与实现205.1登陆页面的设计与实现205.2系统安全管理的实现225.3系统用户管理265.5基础信息维护275.5物资入库出库管理295.6系统配置时的一些关键代码315.6.1Struts.xml配置315.6.2web.xml配置346系统测试376.1测试概述376.2数据库测试376.3测试实例387总结41参考文献42致谢43毕业设计(论文)知识产权声明44毕业设计(论文)独创性声明45附录46
1绪论1.1课题设计的背景当今社会是一个信息社会,一个知识经济时代。自世界上第一台计算机ENINC(Electronicnumericalintegratorandcalculator)于1946年在美国问世到现在,计算机业飞速发展,技术淘汰指标高的惊人,价格下降以及软件应用的快速扩展引发了以信息处理计算机化为标志的“微机革命”,随之而来的是以全球信息网络普及和全球信息共享为标志的“全球信息网络革命”的蓬勃兴起。可见,世界已进入在计算机信息管理领域中激烈竞争的时代,计算机已经变得普通得不能再普通的工具,如同我们离不开的自行车、汽车一样。随着企业规模的扩大,管理信息系统也发挥越来越重要的作用。作为企业管理信息系统关键组成部分的仓库管理系统的应用给企业带来巨大的效益。采用仓库管理系统将使企业改变其传统的手工记录模式,应用数据库技术使海量数据的存储与处理成为很方便的事情,这样可大幅缩短主要业务流程的处理时间,提高对市场的响应能力。“物流服务最初起源于军事上的运用”,“物流”这一概念起源于二战期间的美国,英文称之为Logistics或者PhysicalDistribution,前者的使用率更高一些。物流一词最早被描述为泛指军队运输、补给和屯驻,后来被广泛用来描述商品实体的物理性流通活动,成为流通经济学中的术语。随着经济的全球化以及中国经济改革的逐渐深化,各面临着越来越多激烈的竞争。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能在各种竞争中立于不败之地。库存管理是一般工业、商业生产管理环节中重要的一环,所以,有效地进行物资基本信息管理、物资调配信息等进行完整的监控已经成为了各生存和发展的头等要事。本仓库管理信息系统就是在这样的信息技术广泛应用的时代背景下,本着用户的需求,借助于现代化的管理方法和信息技术开发出来的。1.2课题设计的目的和意义基于给管理者与物资创造一个能够及时进行信息交互的平台,仓库管理系统就孕育而生了,希望通过它可以将管理者和物资紧密相连起来,实现便捷管理的目标。该系统继承了传统的管理方法使得管理者更加便捷、迅速、准确的掌握仓库信息,通过该仓库管理系统得到信息的反馈,同时也可以进行一系列的操作来对物资进行入库和出库等信息登记。这大大的缩短了工作时间,且提高了工作效率。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入库管理部1
门和销售部门提供了方便,降低了仓库的损耗。企业可以对售出的产品进行跟踪服务,同时也免去了销售人员按以往惯例亲自前往用户处去核实货物情况的麻烦,提高了办事效率,节省了费用,而且还避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。1.3课题的主要研究工作该系统采用了现在技术界很流行的Java语言来做开发实现,运用各种性能均良好的数据库MYSQL,页面流行语言JSP,主流的三个框架SSH(Struts+Spring+Hibernate),热门的设计模式MVC。将整个系统有机的联系起来,使其运行流畅,简单易懂。Java不仅是一个很好的编程工具还是一个很好的平台,封装性非常好,良好的面向对象编程思想,Sqlserver关系型数据库的优势,加上安全性能好,使系统的可用性大大提高了。1.4论文结构安排本论文以标准的仓库管理模式为蓝本,根据软件工程的理论,开发出基于JavaEE的适用于中小单的位仓库管理系统。论文首先研究了系统开发的可行性,然后进行了需求分析,并将需求分析以文档的形式反馈给用户,并和用户进行交流进一步确认需求,然后根据需求分析采用了结构化分析方法进行了系统分析设计,并进行了数据库的建模工作,根据模型构建了数据库。后台数据库采用SqlServer2005完成。基于开放的开发架构JavaEE,实现了系统登录模块、主窗口模块、仓库人员管理模块、入库模块、出库模块等。最后对全文进行了总结,对今后的工作提出了展望本论文共有七章,具体组织如下:第一章:通过分析,提出仓库管理系统开发的目的和意义,此次研究的主要任务,以及本次论文的组织。第二章:主要介绍开发本系统所采用的相关技术。第三章:系统需求分析,在此章节主要进行用户需求分析和性能需求分析以及系统开发环境的要求。第四章:系统概要设计,在这个阶段要得到数据库的设计以及系统整个流和每个功能模块的设计。第五章:系统的详细设计与实现,主要通过界面形式展现出来。第六章:进行系统测试包括测试的任务及目标、测试方案和测试用例。第七章:对全文以及整个系统的实现过程进行了总结,给出了系统设计的体会与收获。9
2课题涉及的关键技术2.1MVC设计模式简介MVC(Model-View-Controller),即模型、视图、控制器。它是Java应用中比较热门的一种编程思想,通过将一个应用的输入、处理、输出的应用程序进行分离,使得这样一个应用被分为三层--模型层、视图层、控制层,从而使得整个应用清晰化、简洁化,更易于程序员编码。该模式的关系状态图如下2.1所示:图2.1MVC状态关系图该模型的优点:1)MVC具备多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。2)模型返回的数据不带任何显示格式,因而这些模型也可直接应用于面向接口编程。3)一个应用被分离为三层,有些情况下只需改变其中一层就能满足应用的改变。控制层可以包含用户请求权限的控制。4)有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工具产生并管理程序代码。该模型的缺点:它增加了系统结构和实现的复杂性、视图域控制器间连接往往过于紧密、试图对模型数据访问效率降低等。2.2JSP技术简介JSP(JavaServerPage服务器网页)是从1998年开始出现的新技术。由Sun公9
司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。2.2.1JSP工作原理JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。2.2.2JSP体系结构JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。模式一:JSP+JavaBeans技术在这种模式中,JSP页面独自响应请求并将处理结果返回给客户。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:JSP+Servlet+JavaBeans技术Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。9
2.2.3JSP的特点1)简化的页面生成技术JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。2)与Java平台有机集成JSP技术是Java2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在JSP页面中可以使用几乎所有的Java组件和JavaAPI,这就能充分发挥出Java语言的强大功能。使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。3)硬件平台和服务器无关性JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(WriteOnce,RumAnywhere)”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。4)功能可扩展性如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(EnterpriseJavaBean)以及自定义的标记来扩展功能。JSP可以通过JDBC,与诸如Oracle、SQLServer这样的大型关系数据库进行连接。JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用户在HTML表单中提交的信息。2.3SSH框架简介2.3.1定义集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccess9
Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理Struts和Hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。2.3.2Struts2Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。Model部分:由ActionForm和JavaBean组成,其中ActionForm用于将用户的请求参数封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。View部分:该部分采用JSP(或HTML、PHP……)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。Controller组件:Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的ActionServlet。该控制器继承了HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。9
2.3.3SpringSpring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性。功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。范围:任何Java应用。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.3.4HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程9
思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。2.4SqlServer数据库简介2.4.1SQLServer2005简介SQLSERVER是Microsoft在关系数据库管系统(RDBMS)方面的开发成果。其主要目的是尽可能快地存储、管理和检索大量数据。我们将使用SQLSERVER存储与知识系统网站相关的所有信息,这些信息会由应用程序逻辑动态放置在网页中。SQLServer是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行MicrosoftWindows2000的膝上型电脑到运行MicrosoftWindowsXP的大型多处理器的服务器等多种平台使用。2.4.2“结构化查询语言”(SQL)简介SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早是IBM9
的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。目前,SQL语言已被确定为关系数据库系统的国际标准,被绝大多数商品化关系数据库系统采用,如Oracle、Sybase、DB2、Informix、SQLServer这些数据库管理系统都支持SQL语言作为查询语言。结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。在SQL语言中不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。SQL广泛地被采用正说明了它的优点,使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。9
3系统需求分析3.1可行性分析所谓开发的可行性,就是指在整个系统开发工程中,解决“做什么”的问题,把要解决哪些问题,满足用户哪些具体的信息需求调查分析清楚,从逻辑上或说从信息处理的功能需求上提出系统的方案,即逻辑模型,为下一阶段进行物理方案设计,解决怎么办提供依据。它是信息开发系统中的一个重要阶段,是建立系统模型的第一步。其核心是目标分析与需求分析,最后提出系统的逻辑方案。3.1.1技术可行性该系统所需硬件设备,如服务器、PC机、打印机及网络配件等,这些设备在性能上已经有了很大提高,价格又相对较低,能满足系统功能需求。软件上,操作系统采用WINDOWSXP,数据库管理系统采用SQLSERVER,这些软件在MIS开发中已被大量应用,技术上都比较成熟。本系统采用WEB技术来实现,使用JSP可以创建动态、交互的Web服务器应用程序,JSP页面可以使用脚本语言(如Vbscript、Javascript等)因此技术上是可行的。3.1.2经济可行性仓库管理系统属于一个工具型的系统,它可以节省工作人员大量数据收集、录入、整理、查询、修改等手工操作,而且迅速准确,能够极大地提高工作效率,最大限度的降低用户和管理员的工作量,使库存管理尽量简便,同时促进业务的规范化、程序化,及时给各级领导提供必要的信息统计。系统开发所需的费用是比较低的,由于系统并不复杂,其运行与培训费用也不会占用很多资金,可以预见系统完成后可以带来较大的经济效益。综上所述,实施MIS在技术上、经济上都是可行的,因此,开发仓库管理系统是可行的。3.2功能需求分析需求分析主要是对收集到的需求进行提炼、分析和仔细审查,以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏和其他不足的地方形成完整的分析模型。长期以来,库存管理工作中的信息管理是采用人工的方式,要付出大量人力,40
填写各种表格、凭证、账册、卡片和文件。由于信息是随着时间不断变化的,各业务部门对信息的使用要求也各不相同,所以要按照不同的分类经常不断地汇40总、统计,往往要做许多重复登记和转抄。这种手工操作的管理方式,不仅浪费人力,而且存在许多缺点:1)处理速度慢,影响信息及时性。2)易出现错误,影响信息精确性。3)不便于查询。4)缺乏综合性,不能起控制作用。由于这些缺点,大大降低了信息的利用价值,显然越来越不适应现代库存管理工作的需要。因此,发展以电子计算机为基础的仓库管理系统已是十分迫切和必要。为了将库存管理纳入规范化、现代化管理的轨道,针对现有库存管理中存在的问题和管理的实际需要,我们将理顺管理体制、建立各种管理规范与开发信息系统有机地结合起来。通过建立专门的仓库管理系统来实施对物资进行统一管理。所以,为了顺应用户需求,特推出了基于WEB的仓库管理系统。仓库管理系统需要实现系统用户管理,基础数据管理,物资出库(入库)等几个部分功能,下面分别阐述这几个部分的功能需求。1)系统用户管理模块用户的添加:可以对用户添加,从而实现其它用户来访问系统的权限。用户的删除:进行的用户过期用户的删除,从而节省存储空间。2)基础数据管理模块物资信息的管理:进行物资添加、修改、删除、查找操作。供应商信息的管理:进行供应商的添加、修改、删除、查找操作。3)物资出库(入库)管理模块物资入库:进行基本的物资入库操作。物资出库:进行基本的物资出库操作。物资查看:可以查看仓库里面的物资信息。库存报警:当存储达到一定数量时提醒用户,用户可以进行相关的操作。3.3数据需求分析通过前面对系统功能需求的分析,可以了解到仓库管理系统主要实现的功能,包括基本信息维护、入库信息记录、出库信息记录、物资信息查询和系统用户管理。仓库管理系统所涉及的主要数据包括库存记录、入库记录、出库记录、库存物资和用户记录,下面分别分析这些数据需求。1)库存记录库存记录是物资管理中建立的库存基本信息。40
库存基本信息供库存入库、库存出库和库存管理使用,即整个库存管理信息系统的数据是以库存记录为基础的。2)入库记录入库记录是物资入库的信息,在进行物资入库登记时,需要记录是物资信息,负责人,入库时间。入库记录由库存产生,需要用到库存基本信息,形成的入库信息可以在库存管理中使用。3)出库记录出库记录是库存出库的信息,与入库类似,在进行物资出库记录时,也要记录库存信息,负责人,出库时间以。4)库存物资库存物资是动态的出仓库物资信息,它可以通过入库记录和出库记录的总汇数据得到。当需要查看库存时,只要按照各种库存统计其累计入库和累计出库,累计出库和累计入库的差就是库存数量。物资管理中只要使用物资基本信息,物资入库信息和物资出库信息,然后通过简单地加工处理,就可以形成库存物资数据。5)用户记录用户记录是用户管理中建立的用户基本信息。可以查看到登录过的用户的登录日子。6)库存报警当库存到了一定的程度就无法再继续进行物资入库了,系统将会自动进行库存报警功能。通过对系统数据需求的分析,可以得到如下图3.1所示的系统数据流图。该图简明地表示了仓库管理系统的主要数据流向。图3.1系统数据流图40
3.5性能需求分析根据毕业设计仓库管理系统的需求进行开发设计,主要实现如下目标:界面设计友好、美观、大方、数据要准确、安全、可靠。强大查询功能,方便用户浏览自己课程的相关信息。设计用户登陆功能,保证用户个人信息的安全性。实现对物资等信息的添加、修改,便于更改。系统最大限度地实现易维护性和易操作性。操作简易,实用性强。因此操作的简易实用性就体现的尤其重要,在此系统的开发中就很好的体现了这一点。本系统的界面美观、典雅、充满了人性化,用户操作起来也容易上手。对于一个仓库管理系统系统而言测评信息是很多的,而且存储量大,所以对系统的安全性有比较高的要求;对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作;数据的添加、修改必须是合法的有效的。下面对系统的性能方面做了一些规定如下:数据精确度:输出结果为双精度。时间特性:1)连接服务器时间3毫秒;2)更新处理时间为24小时;3)服务器连接速度20488Kbps;4)运行时间30秒;40
4系统概要设计4.1系统功能模块设计系统后台主要是,普通用户在系统后台可以看到自己的基本信息,维护自己的信息,可看到仓库信息,物资信息,系统超级管理员可以对系统中用户的角色,权限和用户进行增删改的操作,系统管理员是对物资的添加、修改、供应商管理以及登陆信息,主要功能。在对本系统进行了需求分析,如下是各个系统的功能设计。表4.1系统功能模块设计功能模块名称具体功能描述用户管理用户管理是对系统使用者进行的增删改查操作,对后台数据进行操作特别是删除操作是危险的,所以我将其操作权限只赋予给超级用户,这样确保了系统的安全。安全管理对本用户的密码想要进行修改时,必须要知道自己的原始密码,后台对原始密码进行数据库校验,如果与后台记录的原始密码一致,用户才可以进行修改。基础数据维护功能用户进入系统之后,可以进行物资的添加、删除操作。在添加的同时可以进行物资备注,这样就可以很明了的知道物资信息。在进行物资的操作结束之后,可以对物资的供应商进行添加、删除操作。供应商也对应有它的属性来进行编辑。物资出库和入库功能物资的管理包括出库、入库物资查看和库存报警操作。入库包括:入库时间、入库物资、入库数量、金额、负责人和基本操作。出库包括:出库时间、出库物资、出库数量、金额、负责人和基本操作。物资查看是查看对应物资的数量。库存报警是当库存数量达到预先设置的值时会提示。管理员登陆日志功能记录登陆的用户和登陆时间,并导出文件以便之后查询。安全退出统直接退出到登陆系统首页。由上述系统的功能模块设计可以得到如图4.1所示的系统功能模块图。40
图4.1系统功能模块图在得到系统功能模块图之后分析得到,用户还需要权限管理,如图4.2是权限管理功能模块图。图4.2权限管理功能模块图4.2数据库的设计4.2.1E-R图的设计根据需求分析,系统中涉及到的实体主要有:用户,供应商,物资。用户实体有用户名、密码、地址、年龄、级别、电话属性,从而得到如下的用户实体属性图,如图4.3所示。40
图4.3用户实体属性图供应商实体有供应商名称、地址、供应商编码、联系电话、Email属性,如下是供应商实体的属性图,如图4.4所示。图4.4供应商实体属性图物资实体有物资编号、物资单价、物资名称和数量属性,如下是物资实体属性图,如图4.5所示。图4.5物资实体属性图40用户、物资和供应商三个之间也存在着相关联系,物资和用户对应关系为n对n的关系,物资和供应商对应关系为1对n的关系。这样一来就得到了用户、物资和供应商三个实体之间的E-R图,如图4.6所示。40
图4.6总体E-R图4.2.2数据库表的设计1)用户表表名:t_user,结构如下表4.2所示。表4.2用户表名称类型是否为空默认值备注user_idint(10)主键自动生成use_namevarchar(50)no用户姓名user_pwdvarchar(50)no用户密码user_typevarchar(20)no用户类型user_addressvarchar(20)no用户地址user_telvarchar(20)no电话号码use_agevarchar(20)no用户年龄use_emailvarchar(50)no用户邮箱2)物资表表名:t_wuzi,结构如下表4.3所示。40
表4.3物资表名称类型是否为空默认值备注wuzi_idint(10)主键自动生成ser_namevarchar(20)外键wuzi_namevarchar(50)no物资名称wuzi_bianhaowuzi_danjiawuzi_num数量3)供应商表表名:t_server,结构如下4.4所示。表4.4供应商表名称类型是否为空默认值备注ser_idint(10)主键主键ser_namevarchar(50)no名称ser_bianhaoint(10)no编号ser_addressvarchar(20)no地址ser_emailvarchar(20)邮箱ser_telint(20)电话4)物资入库表表名:t-inku,结构如下4.4所示。表4.4物资入库表名称类型是否为空默认值备注inku_idint(11)主键标识user_namevarchar(20)外键外键wuzi-namevarchar(20)外键外键inku_timedatetime日期inku_jinevarchar(20)金额inku_numint(20)数量5)物资出库表表名:t-outku,结构如下4.5所示。s表4.5物资出库表名称类型是否为空默认值备注outku_idint(11)主键标识user_namevarchar(20)外键外键wuzi-namevarchar(20)外键外键outku_timedatetime日期outku_jinevarchar(20)金额outku_numint(20)数量40
6)用户日志表表名:t_log,结构如下4.6所示。表4.6物资出库表名称类型是否为空默认值备注log_idint(11)主键标识user_nameint(11)外键外键log_timedatetime时间40
5系统的详细设计与实现5.1登陆页面的设计与实现此界面是本系统的主界面用户进入后台管理的唯一通道,输入正确的用户名、密码确认无误后点击登入按钮,即可跳转到相应的界面。如果用户信息输入错误,则给出提示,重新输入正确信息登陆系统。实现过程如图5.1所示。图5.1登陆模块流程图1)该部分实现的核心代码:functioncheck(){if(document.ThisForm.username.value==""){alert("请输入用户名");document.ThisForm.username.focus();returnfalse;}if(document.ThisForm.password.value==""){40
alert("请输入密码");document.ThisForm.password.focus();returnfalse;}}functionaa(){}aa();2)登录过滤器filterpublicclasssafeFileterimplementsFilter{publicvoiddestroy(){}publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)arg0;HttpServletResponseresponse=(HttpServletResponse)arg1;if(request.getSession().getAttribute("admin")==null){Stringpath=request.getContentType();response.sendRedirect(path+"/error1.html");}else{arg2.doFilter(request,response);}}/*web.xml的配置safeFileter com.bookstore.util.safeFilter safeFileter /jsp */publicvoidinit(FilterConfigarg0)throwsServletException{}}40
3)陆界面运行时的效果实现图5.2登陆界面用户进入登陆界面后,会清楚地看到后台管理给出的各个功能模块。该用户登陆后的界面及其功能实现如图5.3所示。图5.3登陆后的主界面5.2系统安全管理的实现系统登陆成功后进入系统管理界面,在此可以进行用户安全的管理,通过密码的修改来实现。40
图5.4系统安全管理模块流程图图5.5系统安全管理运行界面40
安全管理核心代码:functioncheck1(){varuserPw=document.form1.userPw.value;varzhengquePw="123";if(userPw!=zhengquePw){alert("旧密码输入不正确");return;}varnewUserPw=document.form1.newUserPw.value;varnewUserPwQueren=document.form1.newUserPwQueren.value;if(newUserPw!=newUserPwQueren){alert("两次输入的密码不一致");return;}document.form1.submit();}40
密码修改