网上商城购物网站系统论文
摘 要
随着人们生活水平的不断提高,网络的不断成熟时,网上购物也不断成熟,网上商城也越来越多。
本文介绍了网上商城购物网站系统的开发环境,主要需求分析,界面
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,
数据库设计,以及主要的框架,配置和功能实现。
我主要是用powerdesigner来设计E-R图,数据流图,用mysql来创建数据库与表,利用集成开发环境myeclipse+服务tomcat进行基于Java web开发设计。系统的功能主要是完成并实现网站前台和后台的各项功能,系统前台:该部分主要包括商品展台、商品查询、会员管理、商品购物。系统后台:该部分主要对商城内的一些基础数据进行有效管理,包括用户管理、产品管理、类别管理、订单管理等。
关键词:系统前台,系统后台,powerdesigner,mysql,myeclipse
I
ABSTRACT
Ceaseless rise living standard with people, web shopping is also unceasingly mature , the commercial center is also more and more many on the net when network ceaselessness is mature,
Systematic exploitation environment , main need analysis , interface design , the data base designs, and the main frame , allocation and function realize the shopping website the main body of a book has been introduced having caught with a net the commercial center.
I am to use powerdesigner to come to design E-R picture , the data stream picture mainly , use mysql to come to establish the data base and the form , make use of integrated exploitation environment myeclipse + to serve a tomcat being in progress owing to that the Java web develops design.The function commanding is various function , systematic proscenium accomplishing and realizing website proscenium and background mainly: Be a part's turn to show the platform , commodity inquiry , member administration , commodity mainly including the commodity shopping. Systematic background: Owe a part carrying out effective administration on some basis data of commercial center inner , including consumer administration , management of product , category administration , order form administration mainly and so on.
Keywords: Systematic proscenium , systematic background , powerdesigner , mysql , myeclipse
II
目录
摘 要............................................................... I ABSTRACT ........................................................ II 第一章 引言......................................................... 1
1.1 背景 ........................................................ 1
1.2 研究内容 .................................................... 1 第二章 开发环境介绍................................................. 3
2.1 数据库访问技术分析 .......................................... 3
2.1.1 JDBC数据库访问技术 .................................... 3
2.2 开发环境及框架介绍 .......................................... 4
2.2.1 MyEclipse.............................................. 4
2.2.2 JSP语言环境 ........................................... 4
2.2.3 JavaScript脚本语言 .................................... 5
2.2.4 Sql Server 2000........................................ 5
2.2.5 PowerDesigner.......................................... 6
2.3 本章小结 .................................................... 8 第三章 系统需求分析................................................. 9
3.1 客户需求和总体设计目标 ...................................... 9
3.1.1 客户性能需求........................................... 9
3.1.2 系统功能需求........................................... 9
3.2 本章小结 ................................................... 11 第四章 数据库设计.................................................. 12
4.1 需求分析 ................................................... 12
4.1.1 数据流图.............................................. 12
4.1.2 系统E-R图............................................ 14
4.2 结构设计 ................................................... 15
4.3 数据库逻辑结构设计 ......................................... 16
4.4 创建表的脚本文件 ........................................... 18
4.4.1 数据库的安全性........................................ 19
III
4.4.2 数据完整性............................................ 20
4.5 本章小结 ................................................... 20 第五章 系统分析设计与实现.......................................... 22
5.1 系统分析 ................................................... 22
5.1.1 业务层................................................ 22
5.1.2 DTO层 ................................................ 24
5.1.3 JavaScript语言的使用 ................................. 24
5.1.4 css+div技术的使用 .................................... 24
5.1.5 Ajax技术的使用 ....................................... 25
5.2 界面设计 ................................................... 26
5.2.1 用户登录界面设计...................................... 26
5.2.2 用户购物模块.......................................... 27
5.3 本章小结 ................................................... 28 第六章 结束语...................................................... 29 致 谢.............................................................. 30 参考文献........................................................... 31
IV
第一章 引言
1.1 背景
网上购物越来越受欢迎了,网上购物是一种潮流,网上购物是网络发展的必然趋势。网上购物的平台有B2B的,有有B2C的,大家耳熟能详的有百度有啊,淘宝网,卓越网,当当网,易趣网,拍拍网,还有一些较大的网上商城,如湖北
网上购物的发展是一种趋势,等为什么呢, 天天电视购物等。
随着人们生活水平的不断提高,网络的不断成熟时,网上购物也不断成熟,网上商城也越来越多。网上购物会出现两种不同的发展趋势:一种是走低价格路线,像超市一样,有物美价廉的商品;另一种是销售高档消费商品。 随着人民文化和生活水平的不断提高,在人们生活必需品消费价格越来越低的情况下,人们对于高档消费品的需求也会不断提高,而网上购物也会为这部分需求提供服务。因此,网上购物将会向这两个不同的方向发展,拥有各自的客户群体,并且都可能会做得很好。
1.2 研究内容
电子商务网站是信息时代企业生存的基础,同时也是企业对外展示信息、从事商务活动的窗口和平台。如何设计、建立一个经济、实用、安全、高效、稳定的网站是每个电子商务网站必须考虑的问题。使用该网站能够提高企业内部管理效率,充分利用企业内部资源,从整体上降低成本,加快对市场的响应速度,提高服务质量,进而全面提高企业的竞争力。电子商务系统是一个典型的Java Web应用程序,它由系统前台和后台管理两部分组成。
(1)系统前台:该部分主要包括商品展台、商品查询、会员管理、商品购物。
(2)系统后台:该部分主要对商城内的一些基础数据进行有效管理,包括用户管理、产品管理、类别管理、订单管理等。
实现网上商城用户的注册,密码的找回,用户的登录以及登录后基本信息和密码的修改,商品的展示,购物车,购物订单货单的制作,后台:管理员的登录,用户信息的维护,商品管理(具体包括商品的查询,增加商品,删除商品,上传
1
更改商品图片,商品信息的修改,商品分类),类别管理(具体包括类别的展示,
增加类别,修改类别名以及删除某些类别),用户订单状态的修改及订单的处理。
2
第二章 开发环境介绍
2.1 数据库访问技术分析
2.1.1 JDBC数据库访问技术
JDBC是Java的开发者——Sun的Javasoft公司制定的Java数据库连接(Java Data Base Connectivity)技术的简称,是为各种常用数据库提供无缝联接的技术。JDBC在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。ODBC(OpenData Base Connectivity),称为开放式数据库互联技术,是由Microsoft公司倡导并得到业界普遍响应的一门数据库连
[1]接技术。JDBC现在可以连接的数据库包括:xbase、Oracle、Sybase、Aceess以及Paradox等。
JDBC API 通过一个数据库管理器(Data Manager)和为各种数据库定制的驱动程序提供与不同数据库的透明连接。JDBC 数据库管理器将确保正确的驱动程序被用于连接数据源。它可以同时支持与不同数据库的连接。
JDBC 数据库管理器将
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的JDBC 指令转换成适用于不同数据库通信的网络协议指令或其他API 指令。这种指令的转换机制,使基于JDBC 接口开发的程序可以独立于数据库的种类。如果底层的数据库被更换了,用户只需相应的替换
[2]程序中所引用的JDBC 驱动程序即可。
JDBC有一个非常独特的动态连接结构,它使得系统模块化。使用JDBC来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。
JavaSoft公司开发了JDBC API,JDBC API是一个标准统一的SQL数据存取接口。JDBC在Internet中的作用与ODBC在Windows系列中的作用类似。它为Java程序提供了一个统一缝地操作各种数据库的接口,程序员编程时,可以不关心它所要操作的数据库是哪个厂家的产品,从而提高了软件的通用性,而且在Internet
[3]上确实无法预料你的用户想访问什么类型的数据库。只要系统上安装了正确的驱动器组,JDBC应用程序就可以访问其相关的数据库。
用JDBC来实现访问数据库记录可以采用下面的几个步骤:
3
1、 通过驱动器管理器获取连接接口。
2、 获得Statement或它的子类。
3、 限制Statement中的参数。
4、 执行Statement。
5、 查看返回的行数是否超出范围。
6、 关闭Statement。
7、 处理其它的Statement。
8、 关闭连接接口。
2.2 开发环境及框架介绍
2.2.1 MyEclipse
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的
[4]J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。
在结构上,MyEclipse的特征可以被分为7类:1. J2EE模型。2. WEB开发工具。3. EJB开发工具。4. 应用程序服务器的连接器。5. J2EE项目部署服务。6. 数据库服务。7. MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
2.2.2 JSP语言环境
JSP 提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。JSP 代码被编译Servlet 并由Java 虚拟机解释执行,这种编译操作仅
4
在对JSP 页面的第一次请求时发生。在JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML 页面只依赖于Web 服务器,而JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。JSP 是面向Web 服务
[3]器的技术,客户端浏览器不需要任何附加的软件支持。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
2.2.3 JavaScript脚本语言
JavaScrip t语言的前身叫作LiveScript,自从Sun公司推出著名的Java语言之后, Netscape公司引了Sun公司有关Java的程序设计概念, 将自己原有
[6]的LiveScrip t重新进行设计,并更名为JavaScript。
JavaScript是由Netscape公司开发并随Navigator导航者一起发布的、介于Java与HTML之间、基于对象事件驱动的编程语言,通过 JavaScript 可以做到响应用户的需求事件(如表单的输入),这样当一位使用者输入一项信息时,它不需要通过网络传送到服务器端进行处理再传回来的过程,而可以直接在客户端进行事件的处理。因它的开发环境简单,不需要Java编译器,而是直接运行在Web浏览器中,而因倍受Web设计者的所爱。
2.2.4 Sql Server 2000
SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT。
SQL Server 2000 的特性Microsoft? SQL Server? 2000 的特性包括:
5
Internet 集成: SQL Server 2000 数据库引擎提供完整的 XML 支持。它还具有构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等
[7]功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功能。
可伸缩性和可用性:同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows? 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。
企业级数据库功能:SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以
[8]维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
易于安装、部署和使用:SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。
数据仓库:SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。
2.2.5 PowerDesigner
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。我们一般能利用PowerDesigner来制作数据流程图、概念数据模型、物理数据模型,可以生成多
6
种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设备模型进行控制。
它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。
PowerDesigner系列产品提供了一个完整的建模解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
,业务或系统分析人员,设计人员,数据库管理员DBA和开发人员可以对其裁剪以满足他们的特定
[9]的需要;而其模块化的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesigner提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。
PowerDesigner不仅加速了开发的过程,也向最终用户提供了管理和访问项目的信息的一个有效的结构。它允许设计人员不仅创建和管理数据的结构,而且开发和利用数据的结构针对领先的开发工具环境快速地生成应用对象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的结构和整理文档,以及生成应用对象和在开发过程中使用的组件。应用对象生成有助于在整个开发生命周期提供更多的控制和更高的生产率。
PowerDesigner是一个功能强大而使用简单工具集,提供了一个复杂的交互
[10]环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。PowerDesigner产生的模型和应用可以不断地增长,适应并随着你的组织的变化而变化。
PowerDesigner包含六个紧密集成的模块,允许个人和开发组的成员以合算的方式最好地满足他们的需要。这六个模块是:PowerDesigner ProcessAnalyst,用于数据发现。PowerDesigner DataArchitect,用于双层,交互式的数据库设计和构造。PowerDesigner AppModeler,用于物理建模和应用对象及数据敏感组件的生成。PowerDesigner MetaWorks,用于高级的团队开发,信息的共享和模型的管理。PowerDesigner WarehouseArchitect,用于数据仓库的设计和实现。 PowerDesigner Viewer,用于以只读的、图形化方式访问整个企业的模型信息。
7
2.3 本章小结
良好的开发环境和开发工具是开发系统的重要条件。本系统采用了B/S结构模型进行开发,利用JSP语言的动态性和Sql Server 2000数据库的强大功能来编译序,并采用Hibernate框架连接数据库来完成对数据库的添加、修改、删除和查询等操作.通过PowerDesigner来绘制E-R图,流程图。本章主要对系统的开发环境和开发技术做了一个简要的介绍。通过对B/S结构模型的特点和优缺点的比较来分析选择开发结构模型,通过对数据库访问技术的介绍和比较选择系统采用的ADO数据库访问技术,通过对数据共享系统数据库存储方式单一、面向对象、集成环境、处理多种数据信息等特点的分析,系统最终采用了SQL Server2000数据库进行开发。通过对MyEclipse编程环境的功能和ssh三大框架的介绍来分析选择系统编译的环境。最后,通过对JavaSprict的介绍来进一步说明系统采用JSP语言进行开发的优越性。
8
第三章 系统需求分析
3.1 客户需求和总体设计目标
3.1.1 客户性能需求
(1)操作简便
系统操作按钮简洁,功能一目了然,操作过程简单。
(2)易于维护
系统的开发方法基于目前最普遍而有效率的机制,使得本系統易于维护,管理,减少不必要的重复性工作及因人为因素导致的错误。
(3)易于使用
系统配合企业实际操作的需要,后期可以根据实际情况方便的变换界面极其功能。
(4)易于推广
系统界面定位友善,程序小而精致,可以很有效的介绍商品,完成各种网上购物的操作。
(5) 配合未来行业趋势
系统设计时,将定位在人性化操作基础上,顺延现代行业化发展趋势进行。 3.1.2 系统功能需求
电子商务系统是一个典型的Java Web应用程序,它由系统前台和后台管理两部分组成。
9
※系统前台:该部分主要包括商品展台、商品查询、会员管理、商品购物。
前台功能模块
商品购物会员管理 商品展台
会
商会会员订购品员员资单物查注登料查车询册录修询
改
图3-1 系统前台功能模块
※系统后台:该部分主要对商城内的一些基础数据进行有效管理,包括用户管理、
产品管理、类别管理、订单管理等。
后台功能模块
类别管理产品管理
后商商商用类类订退
台品品品户别别单出
登显维搜管显维管系
录示护索理示护理统
图3-2系统后台功能模块
实现网上商城用户的注册,密码的找回,用户的登录以及登录后基本信息和密码的修改,商品的展示,购物车,购物订单货单的制作,后台:管理员的登录,用户信息的维护,商品管理(具体包括商品的查询,增加商品,删除商品,上传更改商品图片,商品信息的修改,商品分类),类别管理(具体包括类别的展示,增加类别,修改类别名以及删除某些类别),用户订单状态的修改及订单的处理。
10
3.2 本章小结
需求分析是一个非常重要的过程,因为它具有决策性,方向性,策略性的作用,在软件开发的过程中具有举足轻重的地位。本章主要完成了系统客户端和服务器端的模块功能需求,对系统的总体设计目标有了一个明确的方向,在客户端的设计中,实现网上商城用户的注册,密码的找回,用户的登录以及登录后基本信息和密码的修改。通过这两个模块,客户端服务端实现数据的传递,在功能上欲求实现客户操作的简捷性和灵活性。在服务端,主要是商品的管理,如购物车,购物订单,商品管理,商品类别,还有就是管理员的信息管理。
11
第四章 数据库设计
4.1 需求分析
网上商城有以下功能:用户的注册,密码的找回,用户的登录以及登录后基本信息和密码的修改,商品的展示,购物车,购物订单货单的制作,后台:管理员的登录,用户信息的维护,商品管理(具体包括商品的查询,增加商品,删除商品,上传更改商品图片,商品信息的修改,商品分类),类别管理(具体包括类别的展示,增加类别,修改类别名以及删除某些类别),用户订单状态的修改及订单的处理。
4.1.1 数据流图
(1)用户登陆模块:用户只有在注册后或有账号的情况下才能登陆,登陆时
密码,经过后台数据库的检验,正确则可登陆进行购物,其流要输入用户账号,
程图如图4-1。
图 4-1 用户登陆流程图
12
(2)用户购物模块:用户注册成为会员后可进行修改密码,修改信息,购物等操作,购物时会员可把要买的商品放入购物车中,这样就可以同时买很多东西,当会员想要购买时可选中购物车中的商品,点击购买系统会打印出货单,上面有商品的基本信息,如单价,数量等,其流程图如图4-2。
图4-2 用户购物流程图
(3)后台管理:只有管理员才能进入后台,当管理员登陆后可进行一些操作,其中包括用户的删除(当用户很长的一段时间没登陆时则可删除,一些错误用户也可删除),类别的添加删除修改,商品的添加删除修改。商品的添加还包括图片的上传。其流程图如图4-3。
图4-3 后台管理流程图
13
4.1.2 系统E-R图
网上商城主要有如下实体:用户实体,商品实体,订单实体,货单实体,类别实体。(其E-R图如图4-4,物理模型图如图4-5)
一个用户有多个订单,而一个订单只属于一个用户。当用户要购买某物时系统就会打印订单。
一个订单中可以有很多个货单,而一个货单只属于一个订单。货单是记录某种产品的单价,数量等信息的,而订单中不只一种商品。
一个货单中有多个商品,而一个商品只属于一张货单。一张货单中有一到多个商品。
一个类别中有很多个商品,一个商品也可以有多个类别。一个番茄既是水果类又是蔬菜类。
图4-4 系统整体E-R图
14
图4-5 物理模型图
4.2 结构设计
1.会员类
,包装会员类
,与订单有一对多的关系 2.管理员类
包装系统管理员
3.产品类
,包装产品的信息
,与订单多对多的关系 4.类别类
,包装产品的类别
,树状结构
15
,与产品是一对多的关系
5.订单类
,包装订单的信息
,与产品多对多的关系
,与会员是多对一的关系
6.购物车类
,包装购物车的信息
,与产品是多对多的关系
4.3 数据库逻辑结构设计
各个表的设计结果如下:
用户类属性为:用户ID,用户名,密码,电话,地址,注册时间,如表4-1
表4-1 用户表 (user) id Int(12) 主键,自动递增 非空唯一 username Varchar(40) 用户名 password Varchar(16) 密码 phone Varchar(40) 电话 addr Varchar(255) 地址 rdate Datatime(20) 注册时间
16
产品类的属性为:产品ID,产品名,描述,市场价,会员价,上柜日期,
类别ID,具体如表4-2
表4-2 产品表 (product) id Int(12) 主键,自动递增 非空唯一 name Varchar(255) 产品名 descr Varchar(255) 描述 normalprice Varchar(50) 市场价 memberprice Varchar(50) 会员价 pdate Datetime(20) 上柜日期 categoryID Int(12) 类别ID 引用category表的id
类别类的属性为:ID,分类名,描述,父ID,具体如表4-3
表4-3 类别表 (category) id Int(12) 主键,自动递增 非空唯一 name Varchar(255) 分类名 descr Varchar(255) 描述 pid Int(12) 父id
订单类的属性为:ID,用户ID,送货地址,下单时间,订单状态,具体如
表4-4
表4-4 订单表 (salesOrder) id Int(12) 主键,自动递增 非空唯一 userid Int(12) 用户id addr Varchar(255) 送货地址 odate Datatime(20) 下单时间 status Int(255) 订单状态
17
订单项类的属性为:ID,产品ID,单价,数量,订单ID,具体如表4-5
表4-5 订单项表 (salesItem) id Int(12) 主键,自动递增 非空唯一 productid Int(12) 产品id unitprice Varchar(50) 单价 pcount Datatime(50) 数量 orderid Int(12) 订单 id 引用salesOrder的id
4.4 创建表的脚本文件
利用mysql创建数据库并创建各表,建表语句如下:
create database myshopping; #创建数据库
use myshopping; #使用数据库
create table user ( #创建用户表
id int primary key auto_increment,
username varchar(40),
password varchar(16),
phone varchar(40),
addr varchar(255),
rdate datetime
);
create table category( #创建类别表
id int primary key auto_increment,
pid int, #pid为0的是最顶层节点
name varchar(255),
descr varchar(255),
cno int, #最多三层, 每层占两位, 最多99个子节点
grade int #代表级别, 从1开始
);
create table product( #创建产品表
id int primary key auto_increment,
name varchar(255),
descr varchar(255),
normalprice double,
memberprice double,
18
pdate datetime,
categoryid int references catetory(id)
);
create table salesorder( #创建订单表 id int primary key auto_increment,
userid int,
addr varchar(255),
odate datetime,
status int
);
create table salesitem #创建货单表
(
id int primary key auto_increment,
productid int,
unitprice double,
pcount int,
orderid int
);
Myshopping在mysql中存贮的各表如图4-6
图4-6 myshopping数据库
4.4.1 数据库的安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更
19
改或破坏。计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。在一般的计算机系统中,安全
措施
《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施
是一级一级设置的。
在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。数据库安全可分为二类:系统安全性和数据安全性。系统安全性是指在系统级控制数据库的存取和使用的机制,包含:有效的用户名/口令的组合;一个用户是否授权可连接数据库;用户对象可用的磁盘空间的数量;用户的资源限制;数据库审计是否是有效的;用户可执行哪些系统操作。数据安全性是指在对象级控制数据库的存取和使用的机制,包含:哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。
4.4.2 数据完整性
它是指数据的正确性和相容性。数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规则。ORACLE应用于关系数据库的表的数据完整性有下列类型:
(1)插入或修改表的行时允许不允许包含有空值的列,称为空与非空规则。 (2)唯一列值规则,允许插入或修改的表行在该列上的值唯一。 (3)引用完整性规则,同关系模型定义。
(4)用户对定义的规则,为复杂性完整性检查。
(5)ORACLE允许定义和实施上述每一种类型的数据完整性规则,这些规则可用完整性约束和数据库触发器定义。
(6)完整性约束,是对表的列定义一规则的说明性方法。
(7)数据库触发器,是使用非说明方法实施完整性规则,利用数据库触发器(存储的数据库过程)可定义和实施任何类型的完整性规则。
4.5 本章小结
本章主要介绍了数据库设计的重要性并对自助装机报价系统的数据库进行
20
了分析与设计。通过分析,系统完成了用户,产品,类别,订单,订单项表等数据库表的设计,通过系统的需求分析来设计每个表的数据项。通过对数据库概念结构的设计和逻辑结构的设计清晰地展现了系统的数据库总体设计以及主要的表中每一个字段属性。最终通过对数据库的需求分析实现后台对表信息的轻松管理。
21
第五章 系统分析设计与实现 5.1 系统分析
本系统的具体项目列表如下图5-1
图5-1 项目栏
5.1.1 业务层
业务层主要是数据库中各表的关联类,类中的字段对应了数据库中表的属性,也称为dao层,类中有一些方法,给控制层的操作带来很大方便,商城中主
要业务成为user,product,categoty,order等业务层。
package com.zcx.shopping.product; import java.util.List;
//ProductMgr业务层
public class ProductMgr {
//注入ProductDAO的实例对象
private static ProductDAO dao = new ProductMySQLDAO();
//productMgr单例模式
22
private static ProductMgr mgr = null;
private ProductMgr();
public static ProductMgr getInstance();
public List
getProducts();//返回商品List对象
public int getProducts(List products, int pageNo, int pageSize, boolean lazy); //返回商品个数
public void add(Product p);//增加一个商品对象
public void update(Product p);//更新商品对象
public void delete(int id); //根据ID删除一个商品对象
public Product loadById(int id);//根据ID返回一个商品对象
public void delete(String[] idArray); //根据ID删除一组商品对象
public int find(List products, int pageNo, int pageSize, int categoryId);//根据categoryId找到商品,并返回商品数
public int find(List products, int pageNo, int pageSize, String
keyword); //根据keyword找到商品,并返回商品数
public int find(List products, int pageNo, int pageSize, ProductSearchFormBean bean); //根据bean找到商品,并返回商品数
public List loadById(int[] ids);//根据ID数组,返回商品 }
package com.zcx.shopping.product; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import com.zcx.shopping.category.Category; import com.zcx.shopping.util.DB; //ProductMySQLDAO业务层
public class ProductMySQLDAO implements ProductDAO {
public void add(Product p);//增加一个商品
public void delete(int id);//根据id删除对应商品
public List getProducts();//返回商品List对象
public int getProducts(List products, int pageNo, int pageSize, boolean lazy);//返回商品数量
public void add(Product p);//增加一个商品对象
public void delete(int id); //根据ID删除一个商品对象
public void update(Product p); //更新商品对象
public Product loadById(int id); //根据ID返回一个商品对象
public void delete(String conditionStr);//删除符合条件的商品
public int find(List products, int pageNo, int pageSize, String
queryStr);//返回查询结果中商品的数量
23
}
5.1.2 DTO层
DTO,Data Transfer Object数据传输对象,用来保存客户端的数据,类似于数据关联类但它不以表的形式存放在数据库中,只是暂时存储一类信息,为了不重复对数据库的操作,减轻数据库的负担,比如客户端包中的类CartItem.java包括商品信息product及商品数量信息count,如下代码。 public class CartItem {
private Product product;
private int count;
}
该类不以table的形式保存在数据库中,但它给客户端购物车的使用带来方便,而它的属性product是由商品类product.java用getProduct()从数据库表中取得,属性count则是类中的方法getProducts()来返回。
5.1.3 JavaScript语言的使用
JavaScript 是一种新的描述语言,此一语言可以被箝入 HTML 的文件之中。 透过 JavaScript 可以做到回应使用者的需求事件 (如: form 的输入) 而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端 (server) 处理,再传回来的过程,而直接可以被客户端 (client) 的应用程式所处理。
JavaScript主要是进行客户端检验,对客户端进行基本的数据验证,例如myShopping中当注册用户时onclick=“return check();”对用户名进行校验判断其长度是否在6到10之间,密码是否为6到10位的整数,重复密码是否和密码匹配等客户端验证。
5.1.4 css+div技术的使用
Css是层叠样式表(Cascading Style Sheets)的简称,常见的有内部样式表,外部样式表,内嵌样式表等等,内嵌样式表一般不是使用,内部样式表在样式少的
24
时候使用,外部样式表一般用于大型网站开发。选择器selector一般使用类选择器class selector,例如
…
.div1{
width:160px;//宽160像素
height:120px;//高120像素
backgrade:#FFFFFF;//背景色为白色
…
}
而有些是网页上唯一的标签,如结尾end则使用id选择器id selector,id是唯一的不能相同的,因此该css只能在同一张网页上出现一次。 例如…
#end{
width:1004px//宽1004像素
height:200px;//长200像素
padding:0px;//与内容距离0像素
margin:0px;//与外部距离0像素
…
}
Div是division的缩写是html的块标签,它的使用给网页带来了新的革命,是网页布局更加灵活,块可大可小,位置也可随意调整,功能很强大可以满足用户更大的视觉需求。
div+css可以很好的布局网页,使网页不在单调。
5.1.5 Ajax技术的使用
Ajax是异步JavaScript及xml(Asynchronous JavaScript and XML)的缩写,AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,您的 JavaScript 可使用 JavaScript 的
25
XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。
例如本系统中用到的商品价格的改变如下图5-2
图5-2 ajax技术使用
图中红色部分可直接点击修改,修改后价格背景色会变灰,并且直接显示更改后的数据。
5.2 界面设计
5.2.1 用户登录界面设计
用户登陆界面主要包括用户名,密码的输入。如果在数据库中不存在该用户则不能登录,登陆界面中有用户的注册,密码的找回等功能,如下图5-3
图5-3用户登陆界面
26
5.2.2 用户购物模块
进入主界面可以看到商品列表如下图5-4
图5-4商品列表
点击图中的水果可进入水果页面,登陆的用户可点击旁边的购物车进行购
-5 买,如图5
图5-5 商品展示
后台模块功能图展示,包括用户管理模块,类别管理模块,产品管理模块,订单管理模块,如图5-6
图5-6后台功能图
27
5.3 本章小结
网上商城公务系统是一个中间转换服务程序,需要定时的从源端抓取数据,根据一定的需求和规则后,通过订阅把数据发送回订阅方,根据订阅方配置的解析规则解析并转换入库。
通过设计人员或者比较精通系统和数据库人员定义一个任务,配置执行时间后,定时的开始抓取数据到服务端,在服务端通过配置不同的过滤器,根据不同的需求形成不同的资源,该资源发布在服务系统端,其它部门可以通过订阅的方式来订阅自己所需要的信息,同时通过配置转换、定时执行的方式把数据正式入库到自己的系统呢,在订阅资源的时候,用户可以点击资源,查看该资源的详细信息,系统需要根据不同的会员记录该会员的订阅日志和查看日志以及操作日志。
28
第六章 结束语
本次数据共享系统的涉及到的技术以及概念都是我以前没有接触过的,本身自己的java入门没多久。刚开始真的挺困难的,不过通过在网上的搜集资料,还有校外学长的帮忙是我对java开发有了新的认识。对数据库之间的转换有了更多的了解,感觉自己的水平又上了一个台阶。
这个系统主要是不同部门之间的一个数据共享,数据交换。通过中心端整合,然后可以有效地利用这些资源。
从业务逻辑上来说,这次设计让我有见识了不少了,增长了很多知识。从技术上来说,我又更上一层楼了。
总之,通过本次设计的学习和实践,使我的理论知识有了进一步的加强,实践能力和独立思考的能力都得到了提高,这是我在书本上所学不到的。这次毕业设计过程中所积累的
经验
班主任工作经验交流宣传工作经验交流材料优秀班主任经验交流小学课改经验典型材料房地产总经理管理经验
将为我在今后工作岗位上发挥自己的才能奠定坚实的基础。
29
致 谢
经过几个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,没有导师的指引和赠予,没有父母和朋友的帮助和支持,我在大学的学术成长肯定会大打折扣。当我打完毕业论文的最后一个字符,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚挚谢意。我首先要感谢我的导师老师,他平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。使我在完成论文的同时也深受启发和教育。他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次我要感谢我的父母,是他们让我有了上大学的机会,是他们让我懂得了怎样去抓住机会,珍惜机会。最后还要感谢大学四年来所有的老师,为我们打下计算机专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。
30
参考文献
[1]朱瑜.数据资源共享系统设计[J].航空计算技术.2008,01(21):70-71 [2]张作宸.JDBC原理及操纵数据库方法[J]. 科技信息.2009(02):51-490 [3]赵祖荫,张瑜,赵卓群.电子商务网站建设教程(第二版)[M].清华大学出版.2008,1:1-83
[4]韩海雯.电子商务网站建设全程实例[M].中国电力出版社.2009.5:1-108 [5]JavaScript and CSS[M].Apress.2007,5,02:135-167
[6]张波.韩衍文.基于MVC模式的STRUCTS框架的研究与实现[J].甘肃科技出版社.2008,07(24):53-24
[7]汤京弋,张魏群. SQL Server 2000在数据规划过程中的数据完整性实现[J]. 四川工程职业技术学院学报.2008(06):69-71
[8]严杰.浅析浏览器端开发技术Ajax[J]浙江旅游职业学院.2007(02):1-21 [9]刘安洁,桂秀强.应用服务器JBOSS中集群技术的研究[J].科技情报开发与经济.2007(19):207-209
[10]丁荣涛.电子商务网站界面设计[M].人民邮电出版社.2009.9:1-152
31