摘 要 I
Abstract II
第1章 绪论... 1
第2章 超市综合信息管理系统概述... 3
2.1 超市综合信息管理系统简介... 3
2.1.1 什么是信息管理系统... 3
2.1.2 信息管理系统的特点... 4
2.1.3 管理信息系统的分类... 5
2.2 管理信息系统的开发过程... 5
2.3 本章小结... 6
第3章 选题与课题概述... 7
3.1 课题相关的一些重要概念... 7
3.1.1 电子商务的概述... 7
3.1.2 电子商务相对于传统商务的优点... 7
3.1.3 J2EE的概念及体系结构分析... 7
3.2 课题的选择... 10
3.3 本章小结... 10
第4章 操作平台和开发工具简介... 11
4.1 系统性能需求... 11
4.1.1 硬件环境... 11
4.1.2 软件环境... 11
4.2 SQL Sever 2000介绍几选用原因... 12
4.3 Java在本系统的应用... 13
4.3.1 Java Bean简介... 13
4.3.2 Java Bean在系统中的使用... 13
4.4 本章小结... 13
第5章 系统可行性... 14
5.1 市场可行性... 14
5.2 技术可行性... 14
5.3 系统环境分析... 14
5.4 安全分析... 15
5.5 本章小结... 15
第6章 需求分析说明书... 16
6.1 市场细分及各细分市场需求... 16
6.2 功能需求... 16
6.3 数据描述及数据库需求... 16
6.4 本章小结... 17
第7章 系统总体设计... 18
7.1 总体设计的目的... 18
7.2 总体设计内容... 18
7.2.1 系统组织结构及思想... 18
7.2.2 MVC模式概述... 18
7.2.3 本系统的MVC模式... 20
7.3 系统功能模块设计... 20
7.3.1 总体功能模块结构... 20
7.3.2 数据库设计... 21
7.3.3 数据库子模式逻辑结构描述... 22
7.4 本系统的数据库的安全性... 26
7.5 本章小结... 27
第8章 详细设计... 28
8.1 说明书编写目的... 28
8.2 详细设计概述... 28
8.3 系统详细功能结构... 28
8.3.1 实际超市商品销售管理流程... 28
8.3.2 系统所有功能模块详细介绍... 28
8.4 系统模块实现... 34
8.4.1 底层数据库... 35
8.4.2 数据库操作Bean. 37
8.4.3 数据存取Bean. 40
8.4.5 商务逻辑bean. 41
8.4.6 JSP页面... 41
8.5 Java Bean特别说明:... 41
8.5.1 基本方法... 41
8.5.2 重要语句... 42
8.5.3 Java Bean之间的通信... 42
8.6 本章小结... 42
第9章 编码及调试... 43
9.1 编码总述... 43
9.2 程序亮点... 43
9.3 JSP页面调试过程... 43
9.4 本章小结... 44
第10章 超市管理系统测试... 45
10.1 简介... 45
10.2 测试内容... 45
10.2.1 功能测试... 45
10.2.2 正确性测试... 45
10.2.3 可靠性测试... 45
10.3 软件测试报告... 46
10.4 本章小结... 47
结 论 48
参考文献... 50
致 谢 51
在我国近十多年的发展中,商业的发展可谓变化千变万化,尤其是近年来,商业经营方式已由单一向多种经营态势发展,各种商业经营形式充斥其中。其中商业连锁超市已成为商业大家庭的主力军。商业超市是劳动密集型的服务行业,不同于生产型的企业,所有的商品都是源自外购,而且采购的品种多,采购的批次频繁。超级市场具有经营品种丰富、更新速度快、交易高峰时间顾客交易频繁、速度快准确性要求高的特点。每日甚至每时将这些频繁交易的真实情况实时地采集、汇总、分类、处理,生成各种账目、报表,并将进、销、存、以及资金分布等情况迅速反映出来,其往来业务非常繁杂。
往来管理是商业企业管理的一个非常重要的组成部分,是对往来业务活动进行连续、系统、全面和综合的核算和监督,即对应收账款和应付账款进行系统的管理,以提高经济效益的重要的管理活动。其主要的任务是提供正确的、完整的、系统的往来业务信息。在商业中尤其是商业超市的往来账目更为繁琐复杂。现如今,各个企业的往来管理大多数都还处在纸质的单据交易,这样会拉长时间线,导致效率低下、容易出错,管理层正是通过这些汇总的账目来进行管理和决策,导致管理层不能及时做出正确的决策。
往来信息是商业超市经济信息的核心,它连续、系统、全面、综合地反映和监督商业超市经营管理的情况,并为超市的经济决策提供重要依据。商业超市的管理层通过往来信息来衡量经营管理的业绩,并利用往来数据对经济活动做出预测和决策。往来管理记录了企业与往来单位之间的应收账款、应付账款及回款的变动情况,并提供对往来财务信息的查询。由此为依据进行决策。此外,往来管理子系统通过严密地监控应收账款和过期账款,还可以进行账龄分析来减少应收款。
管理信息系统的构建中,往来管理子系统是以计算机为主要工具,往来管理知识为指导思想,对商业超市各种往来的财务数据进行收集、存储及分析,为用户提供往来信息的人—机系统,是商业超市管理信息系统的一个重要的子系统。
往来管理子系统与其他子系统间实现数据兼容和信息共享。商业超市管理信息系统中,其他各子系统的业务运作进展情况基本上以单据提交到往来管理子系统,由往来管理子系统对这些数据信息进行处理。一方面向企业内各部门提供其业务过程及相关活动的往来信息,协助这些部门进行更好地管理;另一方面向管理者提供有用的决策信息。往来管理子系统好比整个商业超市的“中枢神经”系统,不断从外界接受新信息进行处理,再输出各类相关的信息,反映企业的经营状况。
(1)管理信息系统概述 管理信息系统是计算机应用在管理领域的一门实用技术。它综合运用了管理科学、数学和计算机应用的原理和方法,在符合软件工程规范的原则下,形成了自身完整的理论和方法学体系。
计算机管理信息系统的总体需求及管理目标:以商品进、销、存的信息管理为基础,以财务核算为中心,采用先进的计算机网络设备,对商场进行全面、细致、规范的管理,实时反映商场的经营情况,为商场管理者、决策者提供科学、准确、规范的数据。该系统由数据采集、数据传输、数据处理、数据存储和辅助决策组成一个多功能可扩展的计算机管理信息系统。将进销存系统与财务电算化、办公自动化系统、人事管理系统互相衔接,为商场提供一个强有力的管理工具。
(2)信息系统的历史
客户端 |
客户端 |
应用程序 |
应用程序 |
客户端 |
应用程序 |
客户端 |
应用程序 |
服务器 |
数据库 |
图2-1 C/S结构图
管理信息系统通常可以采用客户机/服务器(C/S)和浏览器/服务器(C/S)两种结构开发。C/S结构在20世纪80,90年代被广泛采用,它可以使用Visual Basic,Visual C++,Delphi和PowerBuilder等众多功能强大的开发工具开发客户端应用程序,服务器上使用后台数据库保存用户数据,基本结构如图2-1所示。
C/S结构的管理信息系统在技术上已经相当成熟,为广大程序开发人员接受。
随着Internet的推广和普及,开发B/S结构的管理信息系统叶在很多领域得到了应用。它的主要优势在于用户无需安装客户端软件,只要使用Internet Explore浏览器就可以使用管理信息系统。当然,B/S结构管理信息系统的主要操作都在服务器上完成,对服务器的要求比较高,它的结构如图2-2所示
浏览器 |
Servelet/JSP容器 |
数据库 |
JSP 文 件 |
Java Bean |
而且在开发工具方面也像C/S结构的开发工具那样拥有强大的功能。
从前面对信息管理系统所作的定义可以看出基于B/S的信息管理系统有一下几个重要特征:
(1)可靠性 保证系统具有充分的容错能力和多级备份,提供有效的系统结构,防止故障发生,一旦发生能自动恢复。
(2)可扩展性 系统扩充和适应能力强,在硬件不变的情况下,通过软件系统重新设置运行参数来调整系统的功能和结构。易于二次开发,若硬件配置升级、网络站点扩充,系统功能应能随之相应增加。
(3)安全性 系统具有多层次的安全和保密机制,权限明确,智能提示,具有很强的安全性、保密性和较长的生命周期,有效防止非法访问。具有上机日志。
(4)易用性 在后台管理系统中的汉字只输入一次,无须记忆各种代码。全中文界面,采用仿真表格与单据,操作直观自然,统一编码,消除重复劳动。
管理信息系统可以有很多的分类标准。例如,可以将信息管理系统分成独立系统和综合管理信息系统两种情形。独立的系统是为了满足某个特定的应用领域(例如,人力资源管理)而设定的。独立的系统有它自己的文件和数据库系统。综合的系统是由多个独立系统组成。这些独立系统通过它们使用的数据被综合在一起,系统利用一个资源共享的数据库来达到综合的目的。例如,工资管理系统需要人力资源管理系统中提取部门和员工数据,采购管理,销售管理需要从客户资源管理系统中提取客户信息。本系统正是采用综合管理信息系统,来实现超市信息的综合管理。
管理信息系统的开发过程可以分为以下5个阶段来描述:[11]
第一阶段 系统开始和可行性研究;
第二阶段 系统分析和设计;
第三阶段 程序设计;
第四阶段 系统测试和技术培训;
第五阶段 项目总结和评估。
下面分别对这几个阶段的主要工作进行简单的介绍:
(1)系统开始和可行性研究 系统开始和可行性研究是为了系统开发做的前期准备的。第一阶段多数工作和编写的资料是第二阶段的输入。第一阶段最终的产品有以下两部分:
实际的可行性研究报告 它包含对系统基本功能的描述以及利润/成本分析。
系统的初步设计 它对于估价成本和利润是必要的,是第二阶段的直接输入。
多数可行性研究是以念而不是以设计为基础的。如果在描述系统目标上花的时间太少,那么成本和利润的估计将是错误的。用概念来指导可行性研究注定会导致成本过高,因此有必要在此阶段进行初步的设计。
(2)分析和设计 一旦项目获得批准,则开始第二阶段,即系统分析和实际阶段。此阶段将完成系统设计,以及个程序的模块说明书。注意,在第一阶段和第二阶段不应该编写程序。通常,为了提前完成设计阶段。粗糙的系统设计将成倍的增长项目所要求的程序设计量。
在第二阶段要成立项目组,项目组应该包含一个或多个系统分析员和来自所开发的系统范围内的用户代表。如果可能的话,还要该项目组指派一个信息服务审计员,他不作为专职人员,而作为安全可控制方面的顾问。因为在第二阶段技术之前程序员实际上并不参与进来,所以可以将指定程序员一事推迟到第二阶段结束时在进行。
(3)程序设计 用户的介入集中在系统靠法的过程前段和后段。如果正确的完成了第二阶段,而且用户与项目组的协调是有效的,那么用户将很少介入程序设计阶段。
如果用户过多的介入程序设计阶段,将直接影响开发的进度和质量。在实际工作中,这种情况是经常发生的,特别是时间特别紧迫时,项目组经常收到一些强制性命令要求发布尚未完成的项目。由于系统最终开发的是软件,所以过早的开始程序设计,将会导致产生质量低下的系统。这种系统并不能满足用户的需求,而且维护代价很高。
(4)系统测试和技术培训 尽管在第三阶段已经分别测试了系统的各个模块,但是这不能把它们结合成一个整体时系统也会正常工作。因此,在第四阶段要完成整个系统的测试。在此期间,项目组将培训用户运行信息系统,整理开发过程中编写的各种技术文档,以便通过质量认证和用户的验收。
(5)项目总结和评估 第五阶段常常被忽略。由于其他项目组需要人员,当前管理信息系统的总结工作往往被忽略。人们往往会认为,不管好坏,系统已经接受了,没有必要在投入过多的精力。
项目总结应该是系统开发过程的组成部分。任何管理信息系统在刚刚投入使用时,都会做一些微小的调整。因此有必要事先对它们进行总结和评估。因为系统一旦投入使用,即便实现前的测试设计很好,也不能暴露出某些在系统投入运行是必将出现的问题。可以委托第三方对系统进行总结和评估,这样做可以获得跟高质量的系统并且使用户更为满意。
本章主要介绍了什么是管理信息系统,以及管理信息系统的分类和管理信息系统的开发过程。
电子商务(Electronic Commerce)是在Internet开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购 物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。电子商务是Internet爆炸式发展的直接产物,是网络技术应用的全新发展方向。Internet本身所具有的开放性、全球 性、低成本、高效率的特点,也成为电子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的价 值,它不仅会改变企业本身的生产、经营、管理活动,而且将影响到整个社会的经济运行与结构。[2]
电子商务所具有的开放性和全球性的特点,为企业创造了更多的贸易。[1]
商务使企业可以以相近的成本进入全球电子化市场,使得中小企业有可能拥有和大企业一样 的信息资源,提高了中小企业的竞争能力。
电子商务重新定义了传统的流通模式,减少中间环节,使得生产者和消费者的直接交易成为可能从而在一定程度上改变了整个社会经济运行方式。
电子商务一方面破除了时空的壁垒,另一方面又提供了丰富的信息资源,为各种社会经济要素的 重新组合提供了更多的可能,这将影响到社会的经济布局和结构。
(1)J2EE的概念 J2EE是一种应用与建立服务器方应用程序的系统平台,它的定义包括了:为开发,部署,管理多层以Web为基础的,以服务器为中心的,以组件技术为基础的企业级应用提供开放的管理平台。[3]
(2)J2EE 体系结构分析 J2EE 使用多层的分布式应用模型(见图3.1)。应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上。如图3-1所示。
客户端 |
动态HTML页面 |
应用程序 客户端 |
JSP页面 |
Enterprise Bean |
数据库 |
数据库 |
Enterprise Bean |
外观业务层 |
EIS 层 |
J2EE服务端 |
数据库服务器 |
图3-1 J2EE的四层模型
客户层(Client tier)运行在客户端机器上的客户层组件, 一般为浏览器或其他应用。客户层普遍地支持HTTP 协议,也称客户代理。
Web 应用层(Web tier)运行在J2EE 服务器上的Web 层组件,这一层由Web 容器运行,它包括J SP ,Servlet 等Web 部件[5]。调用Servlet 或者JSP 页面的HTML 页面在应用程序组装时与Web 组件打包在一起,就像客户层一样,Web 层可能包括一个JavaBeans 类来管理用户输入,并将输入发送到在业务层中运行的enterprise beans 类来处理。
企业组件层( EJB tier)运行在J2EE 服务器上的业务逻辑层组件,企业组件层由EJB 容器运行,支持EJB、J MS、J TA 等服务和技术。业务层和Web 层一起构成了J2EE 应用的中间层,而其它两层是客户层和企业信息系统层。
企业信息系统层(EIS tier)运行在EIS 服务器上的企业信息系统( Enterprise information system) ,企业信息系统包含企业内传统信息系统如财务,CRM 等,特点是有数据库系统的支持。
在J2EE 基于组件的开发模型中,其中心是容器的概念。容器是提供特定组件服务的标准化运行的环境。J2EE的组件位于不同的容器内,它们之间通过JNDI 定位和引用。通过这些组件,可以在任何供应商的任何J2EE平台上得到所期望的服务。例如:所有J2EE Web容器都提供影响客户要求、执行请求时间处理(例如激发JSP 或Servlet 行为) ,以及将结果返回到客户的运行时支持,同时支持bean查询以及其他服务。容器还提供了对企业信息系统的标准化访问,比如说,提供通过JDBC API进行的RDBMS访问。
对事务的支持是J2EE 体系结构的必要部分。J2EE 平台支持计划性和声明性事物定界,组件提供者可以用Java事务API 在组件代码中计划性地划分事务边界。该平台还支持由Servlet 和J SP 页面结合组成的事务性应用程序,可在一个事务中访问多个企业bean。每个组件可以请求一个或多个连接来访问一个或多个共享的资源管理器。目前,J2EE 平台只要求支持在一个事务(允许与同一数据库建立多个连接) 中访问一个JDBC 数据库,不要求支持一个数据库中访问多个JDBC 数据库,也不要求支持对其他类型的企业信息系统的访问。
HTML HTTP XML |
JSP页面 Servlet XML |
浏览器 |
Web容器 |
JDBC 连接 |
EIS资源 |
图3-2 以Web 为中心的应用程序方案
安全问题也是J2EE 平台的一个重要方面,该平台把应用程序开发者从安全机制的细节中解脱出来,并使不同,环境中的应用程序的安全部署更方便。J2EE 平台通过定义应用程序组件开发者、应用程序汇编者以及在特定环境中配置应用程序的部署者之间的明确分工来达到此目的。允许组件提供者和应用程序汇编者指定应用程序的哪些部分需要安全保护,然后部署者在部署时选择特定安全机制来加以保护。通过以上方式,部署描述提供了一种非代码方式使开发者将这些要求通知部署者,这也使部署者可以使用容器专有的工具来更容易地实现开发者建议的安全限制。
J2EE 编程模型包含将Web 容器和EJB 容器视为可选逻辑实体的应用程序方案。由于本系统以Web 应用层为中心设计,Web 层几乎实现所有的功能,如访问EIS、接收和解释来自客户端的输入、生成动态内容和分配资源等。因此该系统使用EJB 服务器显得没有必要,所以系统选用以Web 为中心的应用程序方案,见图3-2所示。
该设计方案在本质上来说,Web 容器既包含了表示逻辑,同时也包含了商务逻辑,并且我们假定使用JDBC(和未来的连接器) 来访问EIS 资源。
中小型超市综合管理信息系统旨在充分利用网络资源,开发适应市场需求的综合信息管理系统。选择此课题是基于当前电子商务开发技术的日趋成熟,J2EE的框架更为完善,诸多较新的技术都可以得以应用,希望能借此机会学习熟悉新鲜的技术和理论;另一方面,商业超市是劳动密集型的服务行业,不同于生产型的企业,所有的商品都是源自外购,而且采购的品种多,采购的批次频繁。超级市场具有经营品种丰富、更新速度快、交易高峰时间顾客交易频繁、速度快准确性要求高的特点。每日甚至每时将这些频繁交易的真实情况实时地采集、汇总、分类、处理,生成各种账目、报表,并将进、销、存、以及资金分布等情况迅速反映出来,传统的手工管理完全是不可能的,因此,只有利用现代管理理念,采用基于计算机的管理软件,才能高效,快捷的实施现代超市信息管理。
本章主要介绍了与课题相关的重要概念,以及实现课题的重要技术,从技术上论述了实现该系统的可行性。
开发任何一种管理信息系统对运行环境的都有一定的要求,在开发时对开发工具的选择往往也会导致开发一个系统进度的快慢,有时,一个很不适合的开发工具,在程序调试时,会花费大量的人力,下面从开发该系统对硬件和软件的需求上做出细致的分析。
(1)服务器端 服务器端的最低配是由站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽人意,现在性能已经相当出色,而且价格也很便宜,因此通常应该给服务器端配置高性能硬件。本网络系统服务器端的配置如下:
·处理器:Inter Pentium2.7GHz;
·内存:256MB;
·硬盘空间:40GB;
·光驱:CD—ROM48X;
·显卡:SVGA显示适配器;
(2)客户端 因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此,实际的配置一般高于下面的配置:
·处理器:Inter Pentium166MX;
·内存:32MB;
·硬盘空间:1GB;
·光驱:CD—ROM48X;
·显卡:SVGA显示适配器;
(1)服务器端
·操作系统:Windows2003 Server;
·软件:Tomcat,SQLserver2000,JCreater;
(2)客户端
·操作系统:Windows2003 Server;
·软件:Internet Explore5.0以上的浏览器;
(1)SQL Server 2000简介 目前市场上数据库的主流厂商及产品有IBM DB2、Microsoft SQL SERVER 2000、ORACLE 9i、Sybase。SQL它是一种结构化查询语言,一组命令,允许用户指定想获取或更改什么信息. 区别于FoxPro、Access小型数据库,SQL Server是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。[11]
(2)SQL Server 2000的原因 首先,学习SQL Server是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQL Server的基础,再去学习和使用它们就容易多了。
其次,Microsoft SQL Server 2000是在SQL Server 7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。SQL Server 2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。
(3)SQL Server 2000的基本功能 SQL Server 2000 的核心是服务器组件,但用户直接客户端工具。服务器组件是引擎,客户端工具是用户界面,两者是相辅相成的。
SQL Server 2000 的客户端工具包括——企业管理器、查询分析器、事件探查器、服务管理器、客户端网络实用工具、服务器网络实用工具、导入和导出数据(DTS)等等。它具有数据库的定义功能,数据库的存取功能,数据库运行管理,数据库的建立和维护功能以及数据库初始数据的载入、转换功能、数据库的转储、恢复功能,数据库的重组织功能和监视功能、分析功能等等。
JSP + Java Bean的组合成为了一种事实上最常见的Jsp程序的标准。大多数的Java程序代码是属于可以重复使用的组件,称为JavaBean。JavaBean的价值在于它可以经由一组特性来提供对JavaBean设定的存取。
(1)Java Bean 的用法 告诉JSP网页它所需要使用Java Bean的工作可以用
Id :JSP页面需要用id属性来辨识bean;.
Scope:范围属性,在通话期内维护自己的信息;
[scope="page"]:单一网页(预设);
[scope="request"]:一个被请求的网页;
[scope="session"]:通话期;
[scope="application"]:整个应用程序;
Class:提供JSP页面到哪里去找这个 JavaBean,标识出它的Java类别名称.。
(2)基于MVC的Java Bean使用 在系统中共用了多个Java Bean,其中直接连接调用数据库部分使用了一个底层Java Bean;每个数据库表对应一个数据存取Java Bean;页面对应商务逻辑Java Bean,后文将有详细介绍。
本章主要从开发该管理信息系统选用何种系统,何种开发平台,何种软件,从理论上做出了细致的分析。并且与同类软件开发做出详细的比较,以便于人们做出合理的选择。
目前中国的Internet已经从起步阶段进入了高速发展阶段。随着对互联网基础设施投资的加强,中国的电子商务发展不可限量在国内,也许人们并没有意识到,然而在国际上,中国电子商务的发展已经正在成为美国乃至全球关注的话题和焦点。
另一方面,商业连锁超市已成为商业大家庭的主力军。商业超市是劳动密集型的服务行业,不同于生产型的企业,所有的商品都是源自外购,而且采购的品种多,采购的批次频繁。超级市场具有经营品种丰富、更新速度快、交易高峰时间顾客交易频繁、速度快准确性要求高的特点。每日甚至每时将这些频繁交易的真实情况实时地采集、汇总、分类、处理,生成各种账目,并将进、销、存、以及资金分布等情况迅速反映出来,其往来业务非常繁杂基于此种市场现状,本综合管理信息系统不论是从未来电子商务方面还是从当前商业连锁超市方面都满足用户的需要。
以J2EE为基础,它给系统开发人员提供可一种工作和运行平台,它定义了整个标准的应用开发体系结构和一个部署环境。在这个体系结构中,应用开发者的注意力集中在业务逻辑的开发上,一切与基础结构服务相关的服务(事物,安全和传输)及低层分配问题都有应用业务逻辑和表示逻辑等,而把所有与基础相关的编程交给运行环境(容器或服务器)实现。以J2EE为框架不仅可以实现大型应用程序的开发,更可以方便的实现是以B/S为基础的综合管理信息系统的开发。
系统的运行环境是:操作系统为Windows2003或Windows/NT、前台的开发工具为Jdk1.4.1、Tomcat 5.0、DreamweaverMX2004,采用了SQL Sever2000后台数据库,后台的开发工具用JBuilder2005,Eclipse,JCreater,WebLogic,可以是高效率的开发。
技术方面,通过程序代码设计,随时返回错误和错误原因。数据库错误等均可通过程序显示。连接数据库要通过用户名和口令验证。
系统使用方面,只有登陆的系统用户才可以使用该系统。
本章通过从技术可行性和市场可行性方面论述了实现中型超市综合管理信息系统的可能。为系统的顺利实现提供了科学的保障。
以B/S结构为基础的管理信息系统也在很多领域得到了应用。它的主要优势在于用户无需安装客户端软件,只要使用Internet Explore浏览器就可以使用管理信息系统。另一方面,随着电子商务的大力发展使得以B/S结构为基础的管理信息系统更为实用。
(1)人力资源管理 提供企业员工的信息管理,员工部门的信息管理,企业员工考勤的信息管理,以及用户权限的管理。
(2)公司财务部 员工工资信息管理,商品销售业绩管理,商品采购费用信息管理,用户密码修改。
(3)商品采购部 商品类型信息管理,商品信息管理,供应商厂家信息管理,采购联系人信息管理,采购信息管理。
(4)商品销售部 商品所有信息显示,商品销售管理。
(5)用户权限修改 用户密码修改,用户权限修改。
(6)个人信息管理 个人详细信息查询,个人工资信息查询,个人考勤信息查询,个人密码修改。
针对一般超市综合信息管理系统的需要,通过对整个过程的内容和数据流程分析,设计成如下面的数据项:
(1)员工信息表 包括的数据项有:员工编号、员工姓名、员工籍贯、员工住址、员工电话号码、员工身份证号码、员工性别,员工部门编号,员工描述,员工结婚否。
(2)商品类别表 商品类编号、商品类别名称。
(3)商品信息表 商品编号、商品类别编号、商品名称、市场价、商品进价,商品描述,商品单位。
(4)供应商信息表 供应商编号、供应商地址、供应商名称、供应商邮编。
(5)订单详细信息 订单编号、商品编号、购物价格、购物数量、订单状态。
(6)部门信息表 部门标号,部门名称。
(7)登陆用户信息 用户编号,用户名称,用户密码,用户类型。
(8)供应商联系人信息 联系人编号,联系人姓名,联系人性别,联系人爱好,联系人单位,联系人职位,联系人电话。
本章主要从管理信息系统的发展方向,市场需求,功能需求方面论述了该超市综合管理信息系统的合理性。
为实现系统预期功能,首先对系统进行总体设计。
总体设计的目的:构建系统基本架构,为详细设计构筑框架;初步判断需求分析中确定的用户需求哪些可以完成哪些有一定障碍;确定相应模块实现相应客户需求;确定基本思路。
总体设计主要内容:基本流程设计,系统组织结构设计,模块划分,功能划分,接口设计,以及数据库设计。
开发和管理一个基于B/S模式的管理信息系统需要开发和利用高效率的网络资源.并且应该充分利用高技术含量的技术.本系统开发中使用了Java Server Pages ,Java Bean.为了能将Java Server Pages,Java Bean,以及Java Servlets三种技术有机结合起来,本系统的总体架构采用了MVC模式.
图 7-1 从 JSP 文件到 servlet 的流程
(1)MVC是Model-View-Controller的简写
"Model" : 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现);
"View": 代表的是应用的表示面(由JSP页面产生);[6]
"Controller" :是提供应用的处理过程控制(一般是一个Servlet);
通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
(2)选用MVC的原因 我们可以只使用JSP构建电子商务系统,但如果想完成一个有效的应用程序并用于商业上,则需要综合Java Server Pages,Java Bean,以及Java Servlets三种技术相互补充的力量。这种情况下就必然要使用MVC模式,它把应用程序划分为独立的数据管理Model,表现形式View,和控制组件Controller,成为最先进的图形用户接口的基础。这些划分模块支持独立开发并且以重复使用组件。
(3)把MVC模式应用于网络应用程序中
JSP:充当实现网络应用程序的对外表现的部分。
Java Bean:封装了提供给web网站的服务信息内容并且简化了数据在体系结构组件之间的传输。
Servlet:控制,协调用户请求和应用程序信息,更新程序数据。
图7-2 基本的MVC模式
图7-3 MVC 的 Web 改写版
本超市综合信息管理系统基于MVC模式设计, 但是开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握,而且作为毕业设计课题本系统与真正商业用软件系统还有一定的规模差距, 因此在运用MVC模式时只是采用了MVC的思想,并未使用Structs等组件。
(1)程序层次 系统的基本层次按照MVC模式设计;
(2)所用到的Java Bean 结构设计:
首先,在建好底层数据库的基础上,使用一个数据库操作Bean 实现数据库的连接调用 ,其中封装public Connection getConnection(){}的方法;
其次,每一个数据库表对应一个数据存取Bean.在这些数据存取Bean中封装了对数据库中相对应表的插入insert,删除delete,查询select,更新update等操作,并通过get(),set()方法与JSP页面通信;
同时系统中各模块功能的实现也是通过操作各自商务逻辑Java Bean实现.;
此外,90%以上的JSP页面不直接调用getConnection()方法,通过上图所示的顺序调用。
超市综合信息管理系统 |
个人信息管理 |
人力资源管理 |
公司财务管理 |
商品销售管理 |
商品采购管理 |
用户权限管理 |
图7-4 系统总体模块图
(1)本中型超市综合信息管理系统共有五个基本模块,在需求分析中已有所介绍,如图7-4所示
。
(2)总体模块功能清单
表7-1 用户操作端模块清单
编号 |
模块名称 |
使用的JavaBean |
模块主要功能说明 |
相应数据库表 |
1 |
个人信息管理 |
Employee. Java Employeesbean. Java DataBase.java |
员工详细信息查询 员工工资信息查询 员工登陆密码修改 |
Employees Salary Evaluation Users |
2 |
人力资源 管理 |
Employee. Java Employeesbean. Java Departmen.java |
人事部门信息管理 员工详细信息管理 员工考勤信息管理 员工权限信息管理 |
Employees Evaluation Users department |
3 |
公司财务管理 |
Salsry.java ShopCartItem.java Database . java |
工资详细信息管理 商品销售信息管理 商品采购费用管理 |
Salary Purchase Checkout |
4 |
公司采购管理 |
Purchase. Java Saler. java Product . java |
商品类型信息管理 商品详细信息管理 供应商家信息管理 联系人信息管理 商品采购信息管理 |
Supplyer Saler Purchase Product |
5 |
商品销售信息管理 |
Product . java Checkout.java |
商品信息显示 商品销售管理 用户密码修改 |
Product Checkout |
6 |
用户权限修改 |
Users.java |
用户密码修改 用户权限修改 |
Users |
在系统的开发中,数据库是十分重要而关键的环节。一个完备的数据库可以为系统的开发带来很多便利,同时也为实现系统功能铺平道路。超市综合管理信息系统的数据库是基于用户需求开发的,共使用多张数据表,采用关系型数据库结构。
所使用数据库名称:managermentDB;
数据库类型:SQL Server 2000数据库;
连接方式:native-API partly-Java driver 本地库Java驱动程序,将JDBC转化为数据库客户端的API的调用。
系统数据库中员工视图详细介绍如下:
(1)员工信息表 包括的必填数据项:员工编号,员工姓名,员工性别;
可选填数据项:员工籍贯,出生年月,学历,是否结婚,身份证号码,员工电话,员工地址,员工描述;
说明: 员工编号是唯一的员工标识,使此表的主键. 系统通过添加员工可以使用户登陆到系统相应的管理模块。如图7-5所示。
图7-5 员工信息
(2)商品类别表 商品类别号、商品类别名称。
说明:商品类别编号为主键 如图7-6所示。
图7-6 商品类别
(3)商品信息表 商品编号、商品类别号、商品名称、商品单位、商品当前价格、商品进货价格、商品数量、商品描述。
编号方法:商品的编号采用位数分类的方法,如图7-7所示。
图7-7 商品信息
(4)商品采购信息表 商品采购信息编号、商品编号、商品名称、采购人员编号、供应商联系人编号、采购数量、采购时单位商品价格、采购时间、采购地点、采购描述、采购日期。
说明:这张表标识的是商品采购信息的信息情况的外部信息,采购信息编号为该表的主键。如图7-8所示。
图7-8 采购信息
(5)商品销售信息 商品编号、商品名称、商品单位、商品库存数量、商品当前价格。
说明:这张表标识的是商品销售的内部信息列表,商品编号是该表的主键,它与商品信息一一对应。
编号方法:商品编号采用自动生成方式。如图7-9所示。
图7-9 商品销售信息
(6)员工部门信息 部门编号、部门名称。
说明:这张表标识的是超市管理信息系统员工部门的信息列表,部门编号是该表的主键。
编号方法:部门编号采用自动生成方式。如图7-10所示。
图7-10 员工部门信息
(7)员工考勤信息 员工考勤编号、员工编号、考勤时间、考勤主题、考勤结果、考勤分数、考勤描述。
说明:这张表标识的是超市管理信息系统员工考勤的信息列表,员工考勤编号是该表的主键。
编号方法:员工考勤编号采用自动生成方式,员工编号与人事管理系统中员工编号一一对应。如图7-11所示。
图7-11 员工考勤信息
(8)员工工资信息 员工工资编号、员工编号、员工基本工资、员工季度奖金、员工年度奖金、员工鼓励奖金、员工发工资时间。
说明:这张表标识的是超市管理信息系统员工工资的信息列表,员工工资编号是该表的主键。
编号方法:员工工资编号采用自动生成方式,员工编号与人事管理系统中员工编号一一对应。如图7-12所示。
图7-12 员工工资信息
(9)商品供应商信息 供应商编号、供应商名称、供应商地址、供应商邮编、供应商生产产品的名称。
说明:这张表标识的是超市管理信息系统中商品采购模块中商品供应商的信息列表,供应商编号是该表的主键。
编号方法:商品供应商编号采用自动生成方式。如图7-13所示。
图7-13 商品供应商信息
(10)商品供应商联系人信息 供应商联系人编号、联系人姓名、联系人性别、联系人职位、联系人公司名称、联系人爱好、联系人电话、联系人描述、联系人公司编号。
说明:这张表标识的是超市管理信息系统中商品采购模块中商品供应商联系人的信息列表,供应商联系人编号是该表的主键。
编号方法:商品供应商联系人编号采用自动生成方式。如图7-14所示。
图7-14 商品供应商联系人信息
(11)系统登陆用户信息 用户编号、用户姓名、用户密码、用户登陆身份。
说明:这张表标识的是超市管理信息系统中登陆到系统的用户的信息列表,用户编号是该表的主键,其中用户编号与员工信息表中的用户编号是一一对应的。如图7-15所示。
图7-15 系统登陆用户信息
(1)系统用户身份验证 用户登陆系统时必须通过必要口令验证,禁止随意登陆。
(2)数据用户身份验证 系统采用native-API parly-Java driver,本地数据库驱动,将JDBC转化为对数据库的客户端API的调用,在用户访问数据库时要通过登陆名和密码的验证。因此只有管理员才可进行数据库的操作。
(3)用户权限区分 普通员工只能浏览个人信息,不能进行其它的操作,只有部门负责人才能进入各自管理的部门进行部门内数据的编辑操作工作,只有系统超级管理员可以进入任何部门进行任何操作,各个用户之间权限分明,不会发生任何矛盾。
(4)数据库及时更新备份,防止信息丢失。
本章从该系统总体上考虑,对系统总体做出了较为完善的设计,首先,从技术上描述了实现该系统要用到的各项技术,其次,对系统所涉及到的各个数据实体做了统一的分析,并且建立了数据模型,定义了数据字典,为今后系统的详细设计打下了基础。
系统详细设计的根本目的是确定应该怎样的实现所要求的系统,此阶段的任务还不是编写程序,而是要设计出程序的蓝图,以后可以根据此蓝图写出实际的程序代码。详细设计的结果基本上决定了最终代码的质量。
超市综合信息管理设计时,模拟现实超市综合信息管理系统的所有流程,从企业人力资源、公司财务管理、商品采购管理、商品销售管理等多个角度出发,完全按照现实超市管理来实现。通过模块细分,各个功能通过相应的JavaBean和JSP页面实现。
进入系统 |
商品浏览 |
商品查询 |
商品采购 |
生成订单 |
退出系统 |
图8-1 超市商品销售管理流程
根据实际购物流程,绘制系统流程图,是编写程序代码的逻辑依据。在系统的开发之初,作为开发者,我查阅了很多资料,并参考现有电子商务模式,从顾客网上购物真实流程及需求考虑,最终找到了购物的基本流程作为程序编写的结构框架。始终模拟实际购物,摆明线索,划清模块做到了有路可循。
员工考勤删除 |
部门信息添加 |
部门信息修改 |
部门信息删除 |
员工信息添加 |
员工信息修改 |
员工信息删除 |
员工信息查询 |
员工考勤添加 |
员工考勤查询 |
人力资源部 |
部门信息管理 |
员工信息管理 |
员工考勤管理 |
图8-2 人力资源管理结构图
(1)人事部门信息管理
部门信息添加:作为一个中型超市管理信息系统,其中会存在多个部门,部门信息有时会需要添加,部门信息添加模块可以方便快捷的实现部门添加。
部门信息修改:超市管理信息系统,其中存在多个部门,部门信息有时因为各种原因需要修改,部门信息修改模块可以方便快捷的实现部门修改
部门信息删除:中型超市管理信息系统中,可能因为企业改革等,现有的部门已经不在适合企业的管理,部门信息需要删除,部门信息删除模块可以灵活的实现部门删除。
(2)员工详细信息管理
员工信息添加:任何一个企业都是由各种各样的人才组成的,一个中型超市管理信息系统对员工的信息管理是必不可少的,员工信息添加模块可以方便快捷的实现员工详细信息的添加。
员工信息修改:企业中员工信息的变化是时常发生的,这就需要对员工的信息实时的做出改变,员工信息修改模块可以快捷实时的实现员工信息的修改。
员工信息删除:企业中员工信息的变化是时常发生的,有时因为员工的离职,或者各种其它原因,员工已经离开了该企业,这就需要对员工的信息相应的改变,员工信息删除模块可以快捷实时的实现员工信息的删除。
员工批量删除:企业中多个员工信息需要删除时,逐一手工删除是一件很麻烦的事情,员工批量删除正是考虑以上原因而设计的,员工批量删除模块可以快捷,大量的实现多个员工信息的删除。
员工信息查询:一个大型企业可能有成千上万的员工,当管理人员需要找某一个特定员工时,如果逐一用人眼查询,这几乎是不可能的,员工信息查询模块可以准确的查找特定的员工。
(4)员工考勤信息管理
员工考勤信息添加:一个企业为了使员工高效,积极的实现企业下达的各种任务,这就需要各种监督措施,其中员工考勤信息管理正可以实现对员工的督促和鼓励作用,其次,也可以作为各项奖励的标准,员工考勤添加模块可以实现对每一个员工各个方面的考察。
员工考勤信息修改:企业中员工考勤信息的有时会因为人为主观原因造成各种错误,这就需要对员工的考勤信息快速的做出修改,员工考勤信息修改模块可以及时的实现员工考勤信息的修改。
员工考勤信息删除:企业中员工考勤信息的删除是时常发生的,有时因为员工的离职,或者各种过期考勤信息,以及各种冗余信息等,这就需要对员工的考勤信息及时的删除,员工考勤信息删除模块可以快捷实时的实现员工考勤信息的删除。
员工考勤信息查询:一个大型企业可能有成千上万的员工的考勤信息,每一个员工也可能有多个不同方面的考勤信息,当管理人员或者员工个人需要找某一个特定员工考勤信息时,如果逐一查询,这可定是不可能的,也是很不合理的,员工考勤信息查询模块可以准确的查找特定员工的考勤信息,或者特定员工的某一方面的考勤信息。
公司财务部 |
员工工资管理 |
商品销售业绩 |
商品采购费用 |
业绩显示 |
业绩删除 |
工资修改 |
工资删除 |
工资添加 |
工资查询 |
费用显示 |
图8-3 财务信息结构图
(1)员工工资信息管理
员工工资信息添加:作为企业的一员,当付出劳动时,企业也一定要对他们做出回报,工资管理,就是企业对员工物质奖励的最好表示,员工工资添加模块可以快速的对企业所有员工的工资做出具体详细的管理。
员工工资信息修改:企业中工资管理偶尔也会发生各种错误,这就需要管理人员能及时的做出修改,员工工资修改模块可以准确的修改某一个具体员工的工资信息。
员工工资信息删除:当企业员工离职时,或者经过一段时间后,会发现员工工资表中一些信息时无用的,员工工资删除模块可以解决这样的问题。
员工工资信息的查询:当企业管理人员要准确的知道某一个员工,某一具体时间的工资是,就会发现工资查询时很必要的,工资查询正是针对这一问题提出的。
(2)商品销售业绩信息管理
商品销售业绩显示:商品业绩显示可以很好的反应公司的运营情况。使得决策人员可以准确的做出相应的决策。
商品销售业绩删除:随着时间的推移有很多的商品销售信息时冗余的,这就需要管理人员对各种信息经过判断之后做出删除。商品销售业绩删除功能能尽最大可能满足管理人员的需要。
(3)商品采购费用信息管理
商品采购费用显示:当公司采购部每采购一批商品是,都要将信息及时的反应到企业财务部,使得企业财务管理人员对企业帐目有章可循。一个企业为了使员工高效,积极的实现企业下达的各种任务,这就需要各种监督措施,其中员工考勤信息管理正可以实现对员工的督促和鼓励作用,其次,也可以作为各项奖励的标准,员工考勤添加模块可以实现对每一个员工各个方面的考察。
商品采购部 |
商品类型信息管理 |
商品详细信息管理 |
供应商厂家管理 |
供应商联系人管理 |
商品采购信息管理 |
(1)商品类型信息管理
商品类型信息添加:为了对商品做出合理的管理商品类型信息的添加是很必要的。
商品类型信息修改:根据商品编号可以查询商品详细信息,然后修改商品的所有信息。
商品类型信息删除:根据商品类型编号可以删除该商品的类型信息。
(2)商品详细信息管理
商品信息添加:作为超市综合管理系统,商品信息的管理是很重要的每当采购部门采购到新的商品是商品信息就要增加。超市也可能因为其它原因增加商品信息,商品添加模块都可以做出快捷的解决方案。
商品信息删除:当企业经营策略发生改变时,商品信息也会相应的发生改变,商品信息删除模块可以使商品信息跟随经营而改变。
商品信息修改:商品信息的变化是瞬间千变万化的,同一个商品随时间的不同,它的具体信息也是不同的,只有实时的调整才能适应市场的变化,商品信息修改使该变化的最佳方案。
商品信息查询:在成千上万种商品种,如果人为寻找某一个商品肯定是不可能的,只有通过商品信息查询模块才能为用户或管理人员解决这个难题。
(3)商品供应商厂家信息管理
商品供应商厂家信息添加:“诚信“是当前企业管理的管理,以诚信建立的企业与企业之间的关系是种巨大的财富,如何保留这种财富,创造这种财富,商品供应商厂家信息可以大量的存储这种信息。
商品供应商厂家信息修改:每一个企业的信息随时间都会有或多或少的改变,商品供应商厂家信息修改可以适应这种变化。
商品供应商厂家信息删除:企业倒闭或者经营策略的改变,当它对超市商品的供应没有作用时,商品供应商厂家信息的删除是正常的。
商品供应商厂家信息查询。
(4)商品供应商联系人信息管理 商品供应商毕竟是一种抽象的信息,只有通过商品供应商联系人这种载体,才能充分的利用,商品供应商联系人管理可以完成如下任务:
商品供应商联系人信息添加;
商品供应商联系人信息修改;
商品供应商联系人信息删除;
商品供应商联系人信息查询。
(5)商品采购信息管理 商品是维系超市正常运行的必要条件,商品采购是维持这一活动必不可少的条件,商品采购信息管理可以高效的实现它,包含的功能如下:
商品采购信息添加;
商品采购信息修改;
商品采购信息删除;
商品采购信息查询。
商品销售部 |
商品信息显示 |
商品销售管理 |
商品订单管理 |
图8-5 商品销售结构图
商品销售信息管理:作为一个超市正是为出售商品而存在的,因此销售管理显得尤为重要,商品销售模块正是它的重要组成部分。
商品购物清单管理:每次购物后,如果结帐则系统自动生成购物清单。
用户权限修改:超市综合管理信息系统中,肯定存在各种不同角色,不同的角色就应该有不同的权限,而只有超级管理员才有角色赋予权利。
用户密码的修改:为了系统的安全,用户的应该只有用户个人才能修改,这不仅保证了整个公司的利益也保护了个人隐私。
该超市综合管理信息系统按照MVC模式开发,因此在此部分按照MVC模式开发顺序描述系统的实现。
Jsp页面 |
商务逻辑bean |
数据库操作bean |
数据存取bean |
底层数据库 |
图8-6 系统MVC模式结构
在需求分析文档和总体设计文档里均对底层数据库有所介绍,在此部分仅说明底层数据库的实现,其他描述不再赘述。
数据库管理系统采用SQLServer2000,系统开发采用JSP技术。按照数据库的规范化开发模式,建立数据库经历了以下几个步骤。
(1)需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求。详见需求分析部分。
(2)概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体的DBMS。
的概念模型,详见总体设计—数据库设计部分。
(3)逻辑结构设计 该阶段将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。
(4)数据库物理设计 该阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
(5)数据库实施阶段 根据逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库、并进行调试,在SQLServer2000操作界面中按照以下步骤进行:
新建数据库managermentDB—〉新建数据表(前文提到的11张表)—〉设计表结构(设置属性列名及其数据类型等)详见总体设计数据库设计部分—〉数据入库:各表数据入库方式如下所示:
·users(用户信息表)数据内容在用户登陆时,从用户交互页面index.jsp由用户自行填入,经过login_comfirm.jsp确认,如果提交的数据合理,则按照用户的类型进入不同的页面,如果错误,则提示出错,返回到用户的登陆页面。
·Employees(用户信息表)企业员工的详细信息主要由人力资源不仅管理,一般是由人力资源部负责人在employee_insert.jsp页面操作录入的,同时employee_del.jsp可以删除该表的信息,employee_update.jsp可以修改该表的信息。
·Departments(员工部门信息表)数据内容为员工部门的分类,除非系统内企业结构发生改变外,从建立数据库开始一般是不再更改的。
·Salary(员工工资信息表)数据内容完全由财务部负责人录入,登陆普通员工仅有查询权限。Salary_insert.jsp是员工工资的录入界面,Salary_update.jsp是员工工资的修改界面,Salary_del.jsp是员工工资的删除界面。
·Evalution(员工考勤信息表)员工的考勤信息是由人力资源部负责管理的,Evalution_insert.jap是员工考勤信息的录入界面,Evalution_update.jsp是员工考勤信息的修改界面,Evalution_del.jsp是员工考勤信息的删除界面。
·Protype(商品类型信息表)数据内容为商品类型信息的分类,除非企业经营策略发生改变外,从建立数据库开始一般是不再更改的。
·Checkout(商品销售信息表)数据内容完全由商品销售部负责人根据商品的销售情况自动生成,财务管理人员有权进行删除和查看。
·Product(商品详细信息表)商品的详细信息是由商品采购部负责管理的,Product_insert.jap是商品详细信息的录入界面,Product _update.jsp是商品详细信息的修改界面,Product _del.jsp是商品详细信息的删除界面。
·Supplyer(商品供应商厂家信息表)数据内容由商品采购部负责管理的,Supplyer _insert.jap是商品供应商厂家详细信息的录入界面,Supplyer _update.jsp是商品供应商厂家详细信息的修改界面,Supplyer _del.jsp是商品供应商厂家详细信息的删除界面。
·Saler(商品供应商联系人信息表)数据内容完全由商品采购部部负责人负责的,系统超级管理人员有权进行对它的编辑,Saler _insert.jap是商品供应商联系人详细信息的录入界面,Saler _update.jsp是商品供应商联系人详细信息的修改界面,Saler _del.jsp是商品供应商联系人详细信息的删除界面。
·Purchase(商品采购信息表)商品采购的详细信息是由商品采购部负责管理的,Purchase _insert.jap是商品采购详细信息的录入界面,Purchase _update.jsp是商品采购信息的修改界面,Purchase _del.jsp是商品采购信息的删除界面。
使用JSP+Java Bean开发的电子商务网络购物系统,在连接数据库是有两种选择。第一种是通过ODBC做为“桥”(Bridge)对数据库访问,第二种是直接对数据库访问。我选用了第二种方式连接数据库。因为,第二种方法可以高效快速的实现数据库的操作,并且在某一个具体的事务中只需要一次数据的建立连接操作,在以后,对数据库进行操作时,系统后台不需要建立连接,这样就极大的提高了系统的效率。
位于底层数据库之上的第二层数据库操作bean, 负责数据库的连接,数据库的一些设置,及其相关必要的操作安全与转化。在这一层bean中封装的是连接数据库的操作。
(1)这一部分代码封装在DataBase.java中,其框架结构如下:
public class DataBase()中
private String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ManagermentDB";
private String dbUser = "ren";
private String dbPwd = "ren";
public getConnection(dbUrl,dbUser,dbPwd) throws Exception{}
//建立数据库连接
public closeConnection(Connection con) throws Exception{}
//关闭数据库连接
public closePrepStmt(PreparedStatement prepStmt) throws Exception{}
//关闭预处理记录集
public closeResultSet(ResultSet rs) throws Exception{}
//关闭记录集
(2)具体主要代码解释说明 调有系统函数,获得数据库连接
public Connection getConnection()throws Exception{
return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
}
关闭实据库的连接
public void closeConnection(Connection con){
try{
if(con!=null) con.close();
}catch(Exception e){
e.printStackTrace();
}
}
调有系统函数,关闭的数据库连接,当数据库的连接为空时,产生异常,当数据库连接不为空时,关闭数据库的连接。
关闭预处理记录
public void closePrepStmt(PreparedStatement prepStmt){
try{
if(prepStmt!=null) prepStmt.close();
}catch(Exception e){
e.printStackTrace();
}
}
调有系统函数,关闭的记录集预处理,当数记录集的预处理为空时,产生异常,当数记录集的预处理不为空时,关闭预处理集合。
关闭记录集
public void closeResultSet(ResultSet rs){
try{
if(rs!=null) rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
调有系统函数,关闭的记录集,当数记录集为空时,产生异常,当数记录集不为空时,关闭当前记录集合。
在每一次进行数据库操作时都要进行以下操作
DataBase database = new DataBase();
boolean result = false;
Connection con = null;
PreparedStatement prepStmt = null;
ResultSet rs=null;
try { con = database.getConnection();
String sql =””;
prepStmt = con.prepareStatement(sql);
result = prepStmt.execute(sql);
}
catch( SQLException ex )
{
ex.printStackTrace( System.err );
return false;
}
finally{ database.closeResultSet(rs);
database.closePrepStmt(prepStmt);
database.closeConnection(con);
}
return result;
}
在对数据库进行操作时,首先定义一个连接对象,和记录集对象,然后进行数据库连接,只有建立连接后才可以进行数据库的操作,每当操作完数据库后都应该调有关闭当前记录集的函数,同时调用关闭数据库连接的函数,这样才可以保证下一次对数据库进行操作时不会发生异常。
数据存取bean是和数据库结构相对应的,本系统采用的结构是每一个数据库视图对应一个数据存取bean .这一层次的Java Bean 封装了对相应数据库的基本操Insert(),Delete(),Update()等,以及使用get(),set()方法对属性列进行设置和获得。
表8-1 数据库表与数据存取bean的关系清单
数据库表名称 |
相应的数据存取bean |
Protype(商品类型表) |
ProtypeBean.java,Protype.java |
Product(商品信息表) |
Product.java, ProductBean.java |
Checkout(商品销售信息表) |
Checkout.java |
Users(用户登陆表) |
Users.java |
Employees(员工信息表) |
Employees.java, EmployeesBean.java |
Departments(部门信息表) |
Departments.java, DepartmentsBean.java |
Salary(员工工资信息表) |
SalaryBean.java |
Evalution(员工考勤表) |
Evalution.java |
Supplyer(供应商厂家信息表) |
Supplyer.java |
Saler(供应商联系人信息表) |
Saler.java |
Purchase(商品采购信息表) |
Purchase.java |
数据存取bean的实现:各个数据存取模块的编写方法是大同小异的,它们主要实现对数据库的操作,下面仅以一个例子简单介绍一下:
ProductBean.java——Product表;
封装的主要方法:
public Product getProductDetails(String ProId){}//商品列表方法;
编写说明:在销售负责人进入系统后当需要查询某一个商品详细信息时,通过点击商品查询进入商品的查询页面,输入商品的编号,进行查询。此时商品id作为参数传入Bean,查询数据库的商品信息表获得此类别商品的全部信息。
SQL语句:String sql =select *"+"from Product where ProId =?
返回所有商品信息:if (rs.next()) {
Product product=new Product(rs.getString("Proid");
…… …… …… ……
Return Product;
}
public void setItem(){} //获取购物车种物品信息。
编写说明:此方法主要通过初始化的方式返回商品所有属性信息。
例如:this.goods_id = goods_id。
这一层次的java bean主要是用来进行数据处理的,并且维护商务活动。相应的,在超市综合管理信息系统中,其主要作用主要用于人事管理,商品采购管理,商品销售管理,公司财务信息管理,购物车,订单等几大模块。包括ShopCart.java,ShopCartItem.java,Product.java等多个java bean。
JSP页面作为外部用户的接口,一般要求美观,大方,操作简单,容错性较好,由于Jsp页面本身较为简单,在这里将不详细介绍。
以上几个层次的Java Bean中都有实现相同功能的基本方法,现统一说明:
为了操作数据库,在Java Bean内外定义的变量需要通过某些方法来通信,进行设置和读取,因此定义了set(…);get( );方法。当要设置java bean中变量时,使用set(…)方法,取出时用get( )方法。
例如: public void setUsername(String username) {
this.username = username; }
//设置bean中的username.通常this.用来标识bean内的当前对象。
public String getUsername() {
return this.username;
}
说明:每一个操作数据库的方法必须包括两条重要语句。
Statement stmt=conn.createStatement();[9]
SQL语句要通过Statement类来发送, Statement类的对象由createStatement方法创建,用于一般查询语句的执行.
ResultSet rs=stmt.executeQuery();
SQL语句发送后,返回的结果通常存放在一个ResultSet类的对象中,ResultSet可以看作是一个表,这个表包含由SQL返回的列名和相应的值,ResultSet对象中维持了一个指向当前行的指针,通过一系列的rs.get()方法,可以检索当前行的各个列,从而显示出来。当Statement对象执行的是对数据库的插入,删除操作时,通常直接用stmt.execute (sql)语句而不再返回结果值。
在同一个包中的Java Bean可以直接进行相互通信。例如ShopCart.java和ShopCartItem.java.在ShopCart.java中使用ShopCartItem item = getItem(i)。
同一个包中的Java Bean可以直接使用彼此间的对象调用其内部方法,无需再文件开头使用import。
本章详细的介绍了实现该系统各个方面的要求和具体细节,另一方面具体的应用了MVC框架,并且对框架的每层做了具体详细了描述,在本章的最后对于系统所用到的JavaBean技术做了特别详细的介绍,这是因为它是本系统的核心部分。
中型超市综合管理信息系统的开发共包括JSP文件121个,Java文件38个,代码比较复杂,无法详细论述所有的程序代码,在此只将开发过程中遇到困难的地方和比较有个人特色的地方代码片断阐述一下。
(1)方法选择 在选择购物车的编写方法时,我查阅了很多参考资料。购物车的编写基本上有三种常见方法:DB, session, cookie。
DB数据库:用户对购物车的操作可以和数据库的操作一一对应起来。这种方法最大的特点就是直观,但是过分依赖数据库,使其使用效率很低。
Session:这种形式是将用户的购买的商品的信息保存在一个session bean中,在用户的一次登陆过程中都是有效的。这种方式提取数据快速,数据操作检索方便,但是会消耗很多的服务器的内存。
Cookie:cookies是通过浏览器将信息保存在客户端,这种方法的安全性和效率都是最好的。但这个时候就要求客户的浏览器必须设置成cookies的开启,这是这种方式最大的障碍。
最终我选择了使用session,因为这个方法和其他几类相比起来更加常见也更加简单方便。
(2)代码编写 ShopCart.java作为session bean,使用其对象cart,在scopt=session的生存期内,操作数据bean .见前文。
通常先调试语法错误,然后调试Servlet错误,最后是逻辑错误。
(1)调试过程 首先在dreamweaver中编写程序代码,将其保存。打开tomcat服务器,在ie标题栏输入http://localhost:8080//…后接文件名,即可开始调试。如果有语法错误存在,就无法打开该网页并有错误提示显示错误位于第几行。当改正了全部的语法错误以后,如果还不能运行,证明有Servlet错误存在。
(2)通常采用的调试方法 语法错误按照页面提示的错误出现位置进行修改错误。
Servlet错误无法直接显示所在的位置,在tomcat文件夹下沿路径C:\Program Files\Apache Software Foundation\Tomcat 5.0\managerment
\Catalina\localhost\_\org\apache\jsp,可以找到***.jsp.java文件,为系统程序的Servlet文件。在错误提示中显示在Servlet文件中的错误位置,可以寻找错误。
逻辑错误的修改需要根据程序仔细推敲修改。
本章较为简单的介绍了系统编码和该系统中所用到的调试方法,在编码中主要介绍了购物车中的关键技术,至于程序调试方法,介绍了常用的几种程序测试方法。
测试是程序设计的重要环节,为了进一步规范的测试工作,为软件测试工作提供详细的指引,以提高软件开发工作的质量,制定测试规范。
(1)每一个页面的功能键、触发键、按钮、菜单、选择项功能正确。
(2)多个页面之间切换正确。测试实例:用鼠标和快捷键在不同的菜单之间切换;
(3)每个页面的表单提交是否正确
(4)每页javascript能否正确运行
(1)从index.jsp进入系统开始,分别按照用户的不同权限浏览整个系统。
管理员—人事管理模块,公司财务管理模块,商品采购管理模块,商品销售管理模块,个人信息管理模块,依次检查各个模块的功能。在浏览过程中查看各个模块是否可以按照预期标准实现。
(2)有写/删除操作的程序,写/删除操作的结果正确,测试时应该手工打开数据库表,以检查写/删除的效果。测试实例:选择会员注册,按照正常流程注册一个新用户。打开数据库表,看能否写入数据库。其他定单等对数据库的操作也按照这个方法进行。
(3)对照管理员权限检查权限于操作能否一致。
(1)非法键容错测试 在不同的画面,不同的字段处输入非法键,被测试程序应有非法键容错能力。测试实例:在注册页面和订单生成页面,如果没有按照表单要求输入信息,将弹出警告对话框。
(2)异常数据容错测试 在不同的画面,不同的字段输入异常数据,被测试程序应有异常数据容错能力。在本系统中,各个JavaBean中的每个主要方法都有捕获错误的语句,JSP程序中也有容错功能。
(3)程序负作用检查 检查退出被测试程序后应恢复到进入前的系统状态,不应影响其它程序的正确运行。
项目编号:01 项目名称:中型超市综合管理信息系统
编程员:任晓明 测试完成日期:2006年6月16日
安装: 是 否
(1)程序运行环境已经正确设定 √
(2)程序代码检查:
①程序单位首部有程序说明和修改备注 √
②变量、过程、函数命令符合规则 √
③程序中有足够的说明信息 √
④修改注释符合要求 √
⑤类库的使用符合要求 √
(3)页面格式检查:
①画面和报表格式符合规定需求 √
②程序命名符合格式需求 √
(4)功能测试:
①多画面之间切换正确 √
②功能键、触发键、按钮、
菜单、选择项功能正确 √
③数据项关联及限制功能正确 √
(5)测试内容:
①正确性测试:
a. 用户前台各模块正确实现 √
b. 数据库操作正确 √
②可靠性测试:
a. 非法键容错测试 √
b.异常字符容错测试 √
本章简单的介绍了系统的测试方法,以及测试中应该注意那些方面。
中小型超市综合管理信息系统的开发是在WindowXP平台上,以JSP+JavaBean为前台,采用SQL Server 2000作为数据库管理系统管理后台数据库。本系统是超市信息管理建设中必不可少的一部分,它实现了现代管理信息系统的大部分功能需要。使用本系统可以使企业管理更加方便快捷,合理的页面设计也使得这个企业用户充分享受到未来基于Internet管理信息系统的优越。
本系统开发说明:
(1)功能完备 在开发初期,查看了大量关于电子商务,管理信息系统,J2EE等方面的资料,同时借鉴了很多其他电子商务网站和管理信息的流程。经过总结,确定了满足需求分析的基本模块。系统总体设计上实现了整个系统模块的划分,系统主要包含5大模块,分别是:人事管理信息,企业财务管理,商品采购管理,商品销售管理,个人信息咨询,基本上实现了综合管理系统的所有功能。
(2)界面友好 系统用户登陆到管理页面后,每页有导航和引领的作用。系统根据用户角色的不同,直接进入不同的管理页面,同时导航条方便快捷的引导用户进行各种合理的操作。
(3)管理科学 本系统一开始就从管理学的角度做出了详细细致的考虑,后来有参考了ERP,现代电子商务管理等,最后才做出了系统总体设计,同时在设计中也遵循现代企业管理的理念,因此可以讲该系统是较为科学的。
这一次独立开发综合管理信息系统,从开始拿到课题的困惑到最终完成了一个自己还算满意的作品,我学到了很多很多东西。需求分析—>系统架构设计—>总体模块设计—>详细模块设计—>编码—>调试测试,按照这个步骤一步一步走过来,我的进度可以说是相对比较慢的。而且中间有过很多次的反复,几乎每一个细节模块都经历过否定和重新编写。即使再写论文的过程中,我仍然在不断的修改完善系统程序。后台管理部分就是在后期制作完成的。几个月的不断磨练,我最大的收获除了学到了真正可以应用的知识外,更重要的是激发了自己对Java和JSP的强烈兴趣。
由于第一次开发大型应用程序,而且使用了当前比较新的网络编程语言和数据库管理系统,整个系统的实现还很稚嫩有很多需要完善和提高的地方。整个开发过程给我留下的收获实在太多了,为今后在技术上的发展打下了一个好的基础,同时也是一个好的开端。
1 Vivek Sharma,Rajiv Sharma.电子商务网站开发指南.清华大学出版社.2002
2 徐明,采振祥.电子商务系统设计与实现.中国科学技术大学出版社. 2001
3 都志辉.JSP编程实践――动态网页的引擎.清华大学出版社.2002.9
4 黄静舒,黄浩文.JSP核心技术和电子商务应用实例.机械工业出社.2001.3
5 胡大奎,陈酌.JSP高级开发技术.中国水利水电出版社.2001.7
6 王迪华.JSP/Servlet——基于Java的最新网站建设工具.清华大学出版社.2001
7 蒋民.JavaScript实例、技巧与应用.清华大学出版社.2003.4
8 魏江江.JavaScript网页特效编程百例通.科学出版社.2003.3
9 孙一林.Java数据库编程实例.电子工业出版社.2003.10
10 周明涛.Dreamweaver MX网页设计指南.机械工业出版社.2002
11 袁鹏飞.SQL Sever 数据库应用开发技术.人民邮电出版社.1999
12 王宏.SQL Sever2000数据库管理.北京-人民邮电出版社 .2001
13 施伯乐,丁宝康.数据库系统教程.高等教育出版社.1999.12
14 张海藩,软件工程导论,清华大学出版社,2001
15 网冠科技.HTML4.0时尚编程百例.北京.机械工业出版社.2001.6
16 HTML JavaScript与Java完全实战演练.曹建.北京.电子工业出版 社.2001.1