毕业设计报告(论文)_第1页
毕业设计报告(论文)_第2页
毕业设计报告(论文)_第3页
毕业设计报告(论文)_第4页
毕业设计报告(论文)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/毕业设计报告(论文)题目: 基于web的智能仓库管理系统基于web的智能仓库管理系统摘 要本系统主要完成对仓库的库存管理,包括入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。 本系统由四大模块构成,分别是:系统设置,单据填开,库存查询,报表导出。其中系统设置包括:管理员的增加,修改,删除,以及权限管理;仓库内货物的基本资料的增加,修改,删除;工人,客户等的基本资料的增加,修改,删除。单据填开模块包括:出库单,入库单,派工单,等单据的填开及作废操作。库存查询系统包括:库存情况的查询,各项明细的查询,工人工资的查询,

2、以及按月,按季度,按年的报表导出功能。 该系统是对仓库的智能管理,并进行相应的采购管理、入库管理、出库管理、报表管理等一些仓库方面的管理。关键字:数据库 SQL语言 MyEclipse 数据库组件 仓库管理 III Intelligent Database SystemAbstractThesystemmainlyreferstowarehousingmanagement,whichincludesthefollowingfields:stockinandout,inventory,staffdata,suppliersdataandpasswordmanagement.Italsooffer

3、sthefunctionsasdatabrowse,adding,deleting,modificationandreport,etc.Itcontains3modules,systemmanagement,receiptsmanagementandinventoryquery.Systemmanagementmoduleisusedtoconductoperateradding,modification,deletingandauthoirtiesassignment,inaddition,inventory,staffandcustomerdataadding,modificationan

4、ddeleting;thesecondpartreferstostockinandout,receiptsfill-inandcancellation;thelastmodulecontendstowarehousingquery,staffsalaryquery,monthly,quarterly,yearlyreportqueryandexport.Asstatedpreviously,thesystemisanintelligentwarehousingmanagementsolution,whichincludes:purchasingmanagement,stockinandoutm

5、anagement,reportmanagement,etc.Key words: database; SQL; Eclipse;Database module; Database managementPAGE X 目 录 TOC o 1-3 h z u HYPERLINK l _Toc263943691 第一章前 言 PAGEREF _Toc263943691 h 1 HYPERLINK l _Toc263943692 1.1背景情况介绍 PAGEREF _Toc263943692 h 1 HYPERLINK l _Toc263943693 1.2 系统整体设计 PAGEREF _Toc26

6、3943693 h 2 HYPERLINK l _Toc263943694 第二章 系统的总体设计 PAGEREF _Toc263943694 h 3 HYPERLINK l _Toc263943695 2.1 模块 PAGEREF _Toc263943695 h 3 HYPERLINK l _Toc263943696 2.1.1 模块划分 PAGEREF _Toc263943696 h 3 HYPERLINK l _Toc263943697 2.1.2 功能概述 PAGEREF _Toc263943697 h 3 HYPERLINK l _Toc263943698 2.2 实现技术 PAGE

7、REF _Toc263943698 h 6 HYPERLINK l _Toc263943699 2.2.1 jsp-extjs PAGEREF _Toc263943699 h 6 HYPERLINK l _Toc263943700 2.2.2 javabean及Hibernate PAGEREF _Toc263943700 h 6 HYPERLINK l _Toc263943701 2.2.3 Struts2、MVC和Spring PAGEREF _Toc263943701 h 7 HYPERLINK l _Toc263943702 2.2.4数据库MySQL PAGEREF _Toc2639

8、43702 h 10 HYPERLINK l _Toc263943703 2.2.5开发工具MyEclipse7.1 PAGEREF _Toc263943703 h 12 HYPERLINK l _Toc263943704 第三章 系统分析 PAGEREF _Toc263943704 h 13 HYPERLINK l _Toc263943705 3.1 可行性分析 PAGEREF _Toc263943705 h 13 HYPERLINK l _Toc263943706 3.1.1 技术可行性 PAGEREF _Toc263943706 h 13 HYPERLINK l _Toc26394370

9、7 3.1.2 运行可行性 PAGEREF _Toc263943707 h 13 HYPERLINK l _Toc263943708 3.2 系统流程分析 PAGEREF _Toc263943708 h 14 HYPERLINK l _Toc263943709 3.2.1 操作员登记(Operator表) PAGEREF _Toc263943709 h 14 HYPERLINK l _Toc263943710 3.2.2 系统登陆 PAGEREF _Toc263943710 h 14 HYPERLINK l _Toc263943711 3.2.3 原料类型设置(material表等) PAGE

10、REF _Toc263943711 h 15 HYPERLINK l _Toc263943712 3.2.4 原料(成品)入库(materialturnover表等) PAGEREF _Toc263943712 h 15 HYPERLINK l _Toc263943713 3.2.5 原料(成品)出库(materialturnover表等) PAGEREF _Toc263943713 h 15 HYPERLINK l _Toc263943714 3.2.6 派工单(working表等) PAGEREF _Toc263943714 h 16 HYPERLINK l _Toc263943715 3

11、.2.7 单据作废 PAGEREF _Toc263943715 h 16 HYPERLINK l _Toc263943716 3.2.8 明细查询 PAGEREF _Toc263943716 h 16 HYPERLINK l _Toc263943717 3.2.9 报表导出 PAGEREF _Toc263943717 h 17 HYPERLINK l _Toc263943718 第四章 算法描述 PAGEREF _Toc263943718 h 18 HYPERLINK l _Toc263943719 4.1 数据结构 PAGEREF _Toc263943719 h 18 HYPERLINK l

12、 _Toc263943720 4.1.1 表结构设计 PAGEREF _Toc263943720 h 18 HYPERLINK l _Toc263943721 4.1.3 程序结构图 PAGEREF _Toc263943721 h 20 HYPERLINK l _Toc263943722 4.2 系统流程图 PAGEREF _Toc263943722 h 22 HYPERLINK l _Toc263943723 4.2.1 原料入库 PAGEREF _Toc263943723 h 22 HYPERLINK l _Toc263943724 4.2.2 原料出库 PAGEREF _Toc26394

13、3724 h 22 HYPERLINK l _Toc263943725 4.2.3 成品入库 PAGEREF _Toc263943725 h 23 HYPERLINK l _Toc263943726 4.2.4 成品出库 PAGEREF _Toc263943726 h 23 HYPERLINK l _Toc263943727 4.2.5 派工单 PAGEREF _Toc263943727 h 24 HYPERLINK l _Toc263943728 4.3 部分实现算法 PAGEREF _Toc263943728 h 24 HYPERLINK l _Toc263943729 4.3.1 权限算

14、法 PAGEREF _Toc263943729 h 24 HYPERLINK l _Toc263943730 4.3.2 分页算法 PAGEREF _Toc263943730 h 24 HYPERLINK l _Toc263943731 4.3.3 验证算法 PAGEREF _Toc263943731 h 25 HYPERLINK l _Toc263943732 4.3.4 预警算法 PAGEREF _Toc263943732 h 25 HYPERLINK l _Toc263943733 4.4 算法分析 PAGEREF _Toc263943733 h 25 HYPERLINK l _Toc2

15、63943734 4.4.1 正确性 PAGEREF _Toc263943734 h 25 HYPERLINK l _Toc263943735 4.4.2 可读性 PAGEREF _Toc263943735 h 25 HYPERLINK l _Toc263943736 4.4.3 健壮性 PAGEREF _Toc263943736 h 25 HYPERLINK l _Toc263943737 4.4.4 效率与低存储量需求 PAGEREF _Toc263943737 h 25 HYPERLINK l _Toc263943738 第五章 系统实现 PAGEREF _Toc263943738 h

16、26 HYPERLINK l _Toc263943739 5.1 前台jsp-extjs PAGEREF _Toc263943739 h 26 HYPERLINK l _Toc263943740 5.1.1 设计与实现思路 PAGEREF _Toc263943740 h 26 HYPERLINK l _Toc263943741 5.1.2 实现部分 PAGEREF _Toc263943741 h 27 HYPERLINK l _Toc263943742 5.1.3 代码部分 PAGEREF _Toc263943742 h 30 HYPERLINK l _Toc263943743 5.2 jav

17、abean及Hibernate PAGEREF _Toc263943743 h 32 HYPERLINK l _Toc263943744 5.2.1 设计思路 PAGEREF _Toc263943744 h 32 HYPERLINK l _Toc263943745 5.2.2 实现部分 PAGEREF _Toc263943745 h 32 HYPERLINK l _Toc263943746 5.2.3 代码部分 PAGEREF _Toc263943746 h 33 HYPERLINK l _Toc263943747 5.3 Struts2、MVC和Spring PAGEREF _Toc2639

18、43747 h 35 HYPERLINK l _Toc263943748 5.3.1 设计与实现思路 PAGEREF _Toc263943748 h 35 HYPERLINK l _Toc263943749 5.3.2 代码部分 PAGEREF _Toc263943749 h 35 HYPERLINK l _Toc263943750 5.4 数据库MySQL PAGEREF _Toc263943750 h 39 HYPERLINK l _Toc263943751 5.4.1 设计及实现思路 PAGEREF _Toc263943751 h 39 HYPERLINK l _Toc263943752

19、 5.4.2 代码部分 PAGEREF _Toc263943752 h 39 HYPERLINK l _Toc263943753 5.5 开发工具MyEclipse7.1 PAGEREF _Toc263943753 h 39 HYPERLINK l _Toc263943754 5.5.1 工具选择 PAGEREF _Toc263943754 h 39 HYPERLINK l _Toc263943755 5.5.2 界面截图 PAGEREF _Toc263943755 h 40 HYPERLINK l _Toc263943756 第六章 测试及性能分析 PAGEREF _Toc263943756

20、 h 41 HYPERLINK l _Toc263943757 6.1 测试 PAGEREF _Toc263943757 h 41 HYPERLINK l _Toc263943758 6.1.1 测试用例 PAGEREF _Toc263943758 h 41 HYPERLINK l _Toc263943759 6.1.2 测试结果 PAGEREF _Toc263943759 h 41 HYPERLINK l _Toc263943760 6.2 性能分析 PAGEREF _Toc263943760 h 42 HYPERLINK l _Toc263943761 第七章 结束语 PAGEREF _T

21、oc263943761 h 43 HYPERLINK l _Toc263943762 致 谢 PAGEREF _Toc263943762 h 44 HYPERLINK l _Toc263943763 参考文献 PAGEREF _Toc263943763 h 45前 言背景情况介绍这是一个互联网的时代,所有企业都面临着互联网浪潮的强力冲击,电子商务无论从技术实现还是社会大背景都日益成熟。企业对企业之间的信息化如何解决?企业电子商务如何实现?这些都是摆在企业企业管理者和信息部门负责人面前实实在在的问题。借助于信息技术手段的创新,规范业务流程,强化仓库管理,对于企业信息化来说是一次良好契机。在计算机

22、的应用日益普及的今天,在计算机软件渐渐成为生活一部分的时代,在现代企业仓库物流需要电子化管理的现在,一个基于web的智能仓库管理系统呼之欲出。这个系统,既可以减轻仓库管理员的工作负担,又能企业更好的掌握库存情况,及时调整营销战略,取得更大利益。智能仓库管理系统,是当代企业运作体系中,不可或缺的一部分,也是整个企业管理软件家族中,举足轻重的一员。从70年代开始,计算机技术开始应用到物流领域。 随着物流市场和物流信息化的发展,物流软件市场也应运而生并迅速发展起来,国内外出现了一大批物流软件供应商和物流软件。“物流软件作为管理软件,较其它应用软件呈现先进性、高效性、可靠性和安全性等特点;较其它管理软

23、件,如ERP(Enterprise Resource Planning),具有以下特点:实施风险小,实施迅速;效益显著、见效快。根据仓库管理软件结构分类,就目前仓库管理软件所使用的应用范围来说,仓库管理包括如下几个子系统:WMS(Warehouse Management System,仓库管理系统)、TMS(Transportation Management System,运输管理系统。OMS(Order Management System,定单管理系统)、SMS(Service Management System,服务管理系统)。其中,WMS主要提供了一整套仓库业务以及作业管理系统。通过仓库

24、管理系统可以实现库位分配自动化和智能化;提高仓库作业效率和速度,提供准确的库存信息,并使之与实际库存变化同步。在研究过程中,我发现,国内及国外对于仓库的管理系统软件不在少数,但是具备智能化的就寥寥无几,有些仓库管理软件功能强大,但不实用;有些实用,但是软件界面不够友好;有些界面华丽,但是性能不够稳定。所以,现实应用需要编写一套,实用,界面友好,性能稳定的智能仓库管理系统。操作本系统的客户并不是专业的计算机从业人员,他们对于软件的初步认识就是,外观,所以,我在jsp技术上选择了比较动态,美观大方的extjs系统架构,该架构对于用户的提示友好,性能强大,动态性好,充分满足前台页面的实际需求。而一款

25、软件有一件漂亮的外衣还是不够的,他还需要强大的内心,这个内心就是Spring,他的骨架就是Struts2,他的血液就是Hibernate。这样组成的软件才能成为一款优秀的智能仓库管理系统。1.2 系统整体设计本文主要对智能仓库管理系统整个开发过程和开发方式做大体的介绍。该系统主要采用MVC 模式把系统分成view层,model层,control层,视图层采用AJAX的EXTJS框架,模型层使用了JAVABEAN,控制层采用了Spring+Struts2。本系统是基于WEB的B/S架构,动态性能比较高,而且采用了AJAX-EXTJS+JSP+JAVABEAN+Spring+Struts2+Hib

26、ernate技术,数据库采用MySql5.5进行开发的。智能仓库管理系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。第二章 系统的总体设计2.1 模块2.1.1 模块划分本系

27、统由四大模块构成,分别是:系统设置,单据填开,库存查询,报表导出。其中:系统设置包括:管理员的增加,修改,删除,以及权限管理;仓库内货物的基本资料的增加,修改,删除;工人,客户等的基本资料的增加,修改,删除。单据填开模块包括:出库单,入库单,派工单,等单据的填开及作废操作。库存查询系统包括:库存情况的查询,各项明细的查询,工人工资的查询,正在加工产品查询等。报表导出模块包括:按月,按季度,按年的报表导出功能。2.1.2 功能概述系统功能划分和描述如下(如图2-1所示):A.系统设置A.1操作员管理 A.2工资标准管理A.3原料类型管理 A.4成品类型管理A.5工人资料设置 A.6客户资料管理B

28、单据填开B.1原料入库单 B.2原料出库单B.3成品入库单 B.4成品出库单(送货单)B.5派工单 B.6单据作废C明细查询C.1原料库存查询 C.2成品库存查询C.3原料出入明细查询 C.4成品出入明细查询C.5工人工资查询 C.6正在加工产品查询D报表导出D.1原料库存月报表 D.2原料库存季报表D.3原料库存年报表 D.4成品库存月报表D.5成品库存季报表 D.6成品库存年报表D.7工人工资月报表统首先进入登录界面,登录时系统会根据登陆的账号自动确认用户所拥有的权限。登录成功后,根据不同的目的进行不同的操作,超级管理员能操作所有的功能,一般管理员能操作除权限管理外的功能,采购员能操作查看

29、和入库功能,出库员能操作查看和出库的功能,一般观察者只能操作查看功能。系统设置单据填开明细查询报表导出基于web智能仓库管理系统操作员管理工资标准设置原料类型设置成品类型设置工人资料设置客户资料设置原料库存月报原料库存季报原料库存年表成品库存月报成品库存季报成品库存年报工人工资月报原料入库单原料出库单成品入库单成品出库单派工单单据作废原料库存查询成品库存查询原料进出查询成品进出查询工人工资查询正在加工查询图2-1系统结构连接图2.2 实现技术2.2.1 jsp-extjsJSP(Java Server Pages)是由Sun Microsystems 公司倡导、多家公司参与一起建立的一种动态网

30、页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为Java服务器编程的重要组成部分。虽然还未成型,但是它必将和J2EE(Java 2 Enterprise Edition)一起发展。3JSP是结合markup(HTML和XML)和Java代码来处理一种动态页面。每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。JSP提供了多种方式访问Java class、Servlet、Applets和Web Server,因此,Web应用的功能可以分成多个明确定义公用接口的组件,通过JSP将它们结合在一

31、起。 ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了,主要包括data,widget,form,grid,dd,menu,其中最强大的是grid了,编程思想是基于面向对象编程(oop),扩展性相当的好。可以自己写扩展。自己定义命名空间.web应用可能类库太大。不过您可以根据需要按需加载您想要的类库就可以了。主要包括三个大的文件ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减。官方网站提供这一接口),在引用ext类库的时候。这三个文件必不可少。它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!

32、其核心的组件基本覆盖了我们构建富客户端的常用的组件。2.2.2 javabean及HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Trans

33、action、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Hibernate 中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。4Hibernate对象关系映射提供延迟的与非延迟

34、的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的(如果不是成千的话)select语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在ORM工具中获得的便利。2.2.3 Struts2、MVC和Spring模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1、模型(Model) 模型是应用程序的主体部分。模

35、型表示业务数据,或者业务逻辑。2、视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。5MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HT

36、ML的分离一直难以实现。6 CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。7 它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能JSP Model 1 与 JSP Model 2。如图2-2所示:图2-2 MVC组件模型的关系和功能图图2-3 S

37、truts2流程示意图当接收到一个httprequest请求时, Interceptor会做一些拦截或者初始化的工作。当外部的httpservletrequest请求到来时,它会被初始到servlet容器中, 并传递给一个标准的过滤器链,而ActionContextCleanUp在集成插件方面非常有用。Other filters(SitMesh,etc)调用FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper,它将会将控制权限交给ActionProxy。ActionProxy将会通过ConfigurationManager来查找配置

38、struts.xml。下一步将会 通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前),一旦action返回,会查找相应的Result。Result类型可以是 jsp或者freeMark 等。这些组件和ActionMapper一起返回给请求的url(注意拦截器的执行顺序)响应的返回是通过我们在web.xml中配置的过滤器,如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocalActionContext,如果ActionContextCleanUp不使用,

39、则将会去清理sreadlocals。如图5-9所示。8Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2轻量从大小与开销两方

40、面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务

41、逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 框架Spring可以将简单的组件配置、组

42、合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.2.4数据库MySQL1.使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编

43、程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库(1)减少数据的重复(Red

44、undancy can be reduced)当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数据的重复与浪费。例如:在一家公司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。(2)避免数据的不一致(Inconsistency can avoid)本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地方,而数

45、据库管理系统却没有对这样重要的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。 (3)数据共享(Data shared)对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。(4)强化数据的标准化(Standard can be enforced)由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的标准进行控制,如此一

46、来,对于不同的环境的数据交换(Data Interchange)上将有很大的帮助,也能提高数据处理的效率。(5)实践安全性的管理(Security restriction can be applied)通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。(6)完整性的维护(Integrity can be maintained)所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,

47、所以,我们会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护简便性。(7)需求冲突会获得平衡(Conflicting requirements can be balance)在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。92.2.5开发工具MyEclipse7.1MyEclipse企业级工作平台(

48、MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。 在结构上,MyEclipse的特征可以被分为7类: 1. JavaEE模型 2. WEB开发工具 3. EJB开发工具 4. 应用程序服务器的连接器 5. JavaEE项目部署服务 6.

49、数据库服务 7. MyEclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。10 简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。第三章 系统分析3.1 可行性分析3.1.1 技术可行性1.java是种跨平台的语言,具有多种优势

50、,其面向对象的特点非常符合本系统的要求,所以选择java作为开发语言。2.同时,B/S架构很好的解决了客户端的问题,用户只要有浏览器就能使用该系统,不需要进行升级(浏览器版本升级除外),所有业务功能均由服务器完成。3.在局域网中可以联动,同时兼具安全性。4.Hibernate对JDBC的封装是十分到位的,由于本系统对于数据的批量处理要求不是特别的高,而对多表联动查询有较高需求,Hibernate的延迟加载功能非常符合系统要求。15.Mysql是一个经过大多数用户认可的可靠的数据库,其性能完全能够满足本系统的设计需求,其免费的特性,使得系统的版权问题得以解决。6.Spring+ struts2的

51、模式架构,是稳定,安全,高效的,配置方便,以后系统维护与升级留有更大空间,是本系统的不二选择。27.MyEclipse作为一款强大的开发软件,已经成熟,并且得到业界承认,是开发系统时,不可或缺的重要工具。综上所述,本系统采用java作为开发平台,使用MyEclipse作为开发工具,采用B/S作为架构,Mysql作为数据库,所用技术有:Hibernate,Spring ,struts2。3.1.2 运行可行性本系统对于系统的要求不是非常高,一般企业的pc机完全可以自由使用本软件,故,运行可行性非常高。用户界面:本系统完全使用AJAX的EXTJS设计界面,使界面与桌面系统基本一致用户上手十分容易。

52、硬件接口:本系统不需要硬件接口进行支撑。软件接口:本系统运用Myeclipse+ Dreamweaver+Spket+Tomcat服务器开发,在Windows操作平台下运行。故障处理:内部故障处理:在开发阶段可以随即修改数据库里的相应内容。b)外部故障处理:对编辑的程序进行重装时,第一次装载认为错,修改,第二次,在需求调用时出错,有错误提示,重试。3.2 系统流程分析以下是对仓库管理系统基本功能的说明,它们将作为后面软件功能模块创建的基本依据。3.2.1 操作员登记(Operator表)功能用途:登记或设置工作人员的身份标识、密码、操作权限等个人信息。操作权归属:拥有系统设置权限的操作员。主要

53、数据: 操作员ID、姓名、密码、权限、备注等内容。基本操作:添加记录、删除记录、更新数据、设置权限。所在位置:系统设置模块。其他说明:拥有该权限的操作员可以修改登陆名和密码及权限,但是操作员ID将不能修改,因为操作员ID为主键,对应数据库表Operator。权限限制为0-15的整数。详细权限算法将在第四章描述。3.2.2 系统登陆功能用途:系统安全通道。这是信息系统最常使用的安全防范机制。操作权归属:需要进入系统的所有人员。输入数据:用户名、密码。返回数据:权限。内部操作数据:判断输入数据的合法性。基本操作:登录信息输入、确定登录、取消登录。所在位置:系统启动过程中的系统登录对话框。其他说明:

54、系统登录的过程也就是对工作人员是否进行过合法登记,而进行的身份验证的过程。由此可以防止非法用户进入系统。3.2.3 原料类型设置(material表等)功能用途:登记或设置原料类别标识、说明。使原料能够分类管理,以方便物品的检索。操作权归属:拥有系统设置权限的操作员。输入数据:原料ID、原料名称、原料类型、说明等内容。基本操作:添加记录、删除记录、更新数据。所在位置:系统设置模块。其他说明:原料类型的设置,可以对原料进行一定的修改。 (成品类型设置,工人工资设置,客户资料设置,工资标准设置与原料类型设置类似,在此不再赘述)3.2.4 原料(成品)入库(materialturnover表等)功能

55、用途:进行原料(成品)入库处理操作。操作权归属:具有单据填开权限的操作员显示数据:单据号、原料(成品)名称、单价、说明、库存量等。输入数据:单据号、原料(成品)名称、单价、客户名称、说明等。基本操作:启动原料(成品)入库处理。所在位置:单据填开模块其他说明:成品入库可能为两种情况:生产成功直接进入成品库,另一种是采购成品进行入库。 3.2.5 原料(成品)出库(materialturnover表等)功能用途:进行原料(成品)出库处理操作。操作权归属:具有单据填开权限的操作员显示数据:单据号、原料(成品)名称、单价、说明、库存量等。输入数据:单据号、原料(成品)名称、单价、客户名称、说明等。基本

56、操作:启动原料(成品)出库处理。所在位置:单据填开模块其他说明:需要判断库存是否满足要求,达到一定值时进行警告。这里没有运用页面判断,而是通过后台action进行判断,具体设计情况,见第五章。3.2.6 派工单(working表等)功能用途:进行派工单处理操作。操作权归属:具有单据填开权限的操作员显示数据:单据号、原料(成品)名称、单价、客户、工人、工资标准等。输入数据:单据号、原料(成品)名称、单价、客户、工人、工资标准等。基本操作:启动派工单处理。所在位置:单据填开模块其他说明:派工单是原料出库单及工人工作单的集合,进行完该操作后,进入正在加工环节,待加工完成后,原料转换为一定成品入成品库

57、,为生产模式入库。 3.2.7 单据作废功能用途:进行单据作废处理操作。操作权归属:具有单据填开权限的操作员显示数据:单据号、原料(成品)名称、单价、说明、库存量等。输入数据:单据号。基本操作:启动单据作废处理。所在位置:单据填开模块其他说明:单据作废时将数据库中相应数据进行修改,并注意数据是否合法,如作废入库单时,库存是否满足数量等判断。 3.2.8 明细查询功能用途:查询原料与成品等具体情况。操作权归属:具有明细查询权限的操作员 主要数据:原料ID,原料类型,原料数量,出入库单据号等具体数据。 基本操作:通过树形搜索按所需要的值范围查询库存,明细等情况。所在位置:明细查询模块其他说明:本查

58、询具有数据库设置主键索引,分页器效率高,查询采用模糊查询方式,并且采用参数形式进行搜索,防止js注入或sql注入入侵,提高系统安全性。 3.2.9 报表导出功能用途:汇总并导出相关信息。操作权归属:具有报表导出权限的操作员 输入数据:汇总日期范围、汇总方式。汇总数据:原料(成品)ID原料(成品)名称、进库量进库价值、出库量出库价值、单据信息等。基本操作:选取日期范围、汇总方式。所在位置:报表导出模块其他说明:汇总统计是一种含有更复杂计算的特殊查询操作。例如:求总和、求平均值等。为方便查看汇总结果,本系统考虑提供月报表、季报表,年报表等三种汇总结果显示方式。第四章 算法描述4.1 数据结构4.1

59、.1 表结构设计图4-1 表结构1图4-2 表结构2表结构设计思路:根据需求,确定每个对象的属性,及对象间关系,包括(1:1,1:N,M:N等)考虑系统效率,修改表结构,使其满足第二,第三范式,追求效率与数据冗余量的最优化组合,同时设计索引的位置及个数。将一个多对多关系拆分成两个一对多关系,设计中间表,设计主外键,在此需要说明的是,本系统并没有使用数据库的数据依赖,而是使用程序在进行操作时进行同步,这样做出于以下考虑:本系统并未完全修善完毕,时常需要修改表结构,使用数据库依赖会使修改表结构变得异常复杂,牵一发而动全身,而数据库依赖对于性能上消耗也比较多,对于部分适当提高效率的冗余无法处理,所以

60、权衡再三,并没有对表关系进行数据库层依赖,而是依靠代码进行控制。4.1.3 程序结构图图4-6 jar包示意图如图4-6,本系统采用的java EE 5的主体框架,jdk版本是1.6版本,这个版本相对是目前比较稳定的jdk版本之一,图上所示是jre包,系Myeclipse自带,而扩展后使用的是jdk1.6版本。Hibernate版本则是3.2版,而本项目还使用了Hibernate的扩展包,使项目对数据库的操作更加灵活。SQL文件是用于存放sql脚本的文件,包括建表,表结构修改等一系列对数据库的操作。图4-7 jsp页面结构图及配置文件图如图4-7所示,css包用来存放css样式表文件,而ima

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论