admin 管理员组

文章数量: 887021


2024年1月13日发(作者:rng电子竞技俱乐部官网)

太 原 理 工 大 学

毕业设计(论文)任务书

毕业设计(论文)题目:

基于j2ee的蛋糕销售系统的设计与实现

毕业设计(论文)要求及原始数据(资料):

1.综述网上蛋糕销售系统的研究现状;

2.深入了解网上蛋糕销售系统的相关技术;

3.熟练掌握网上蛋糕销售系统的应用;

4.设计并实现网上蛋糕销售系统;

5.深入分析网上蛋糕销售系统的关键技术与编写语言;

6.训练检索文献资料和利用文献资料的能力;

7.训练撰写技术文档与学位论文的能力。

毕业设计(论文)主要内容:

1.综述网上蛋糕销售系统的应用;

2.了解网上蛋糕销售系统的相关技术;

3.熟悉网上蛋糕销售系统的开发环境;

4.设计基于java的网上蛋糕销售系统的功能;

5. 深入分析网上蛋糕销售系统的应用技术和设计流程;

6.熟练掌握基于java的网上蛋糕销售系统的编写;

7.设计与实现网上蛋糕销售系统的程序。

学生应交出的设计文件(论文):

1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;

2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关

材料。

主要参考文献(资料):

[1]黄敏学 . 电子商务 ,高等教育出版社 ,2001年6月第1版

[2]李源彬 . 电子商务概论 ,人民邮电出版社 ,2004年6月第1版

[3]薛华成 . 管理信息系统 ,清华大学出版社 ,2003年12月第4版

[4]萨师煊. 数据库系统概论 ,高等教育出版社 ,2000年2月第3版

[5]张海藩. 软件工程 ,人民邮电出版社 ,2002年3月第1版

[6]张登辉 . ASP编程基础及应用 ,机械工业出版社,2003年3月第1版

[7] 李源彬 ,电子商务概论 ,人民邮电出版社 2004年6月第1版

[8]王君学 . 网页制作基础FrontPage2002 ,人民邮电出版社 ,2001年6月第1版

[9]编程起步 ,人民邮电出版社 ,2001年4月第1版

[10]编程起步 .人民邮电出版社 ,2002年二月第1版

[11]Data C Introducetion to Database System(Ed.6).Addision_Wesley,1995

[12]Ullman J ples of Database er SciencePress,1980

[13]

专业班级

学生

要求设计(论文)工作起止日期

指导教师签字

教研室主任审查签字

系主任批准签字

2015年3月23日~2015年7月3日

日期 2015年3月23日

日期

日期

网上蛋糕销售系统的设计与实现

摘 要

二十一世纪的今天,互联网已成为人类必不可少的生活必需品,与此同时,计算机技术也越发成熟。计算机技术广泛应用于互联网,例如电子商务则是其中发展最快的一项。电子商务实现了买卖双方在虚拟的环境中交易的方式,而实用最大的则是网站。

网上蛋糕销售系统便于用户能不受时间限制、不受地区限制的搜索以及购买自己想要的蛋糕。本系统的前台主要功能包含:蛋糕类别模块、蛋糕查询模块、特价蛋糕模块、蛋糕车模块、订单模块、用户信息模块、系统公告模块等。后台主要功能包括:修改密码模块、用户管理模块、蛋糕类别模块、蛋糕管理模块、订单管理模块等。

网上蛋糕销售系统通用JSP建立前台,并且连接MySQL数据库建立后台。利用MyEclipse跟Tomcat建立一个MVC框架的网上蛋糕销售系统。

关键词:网上蛋糕销售系统; JSP技术; MVC框架

The design and implementation of the online cake selling

system

Abstract

Today, twenty-first century, the Internet has become an essential human necessities, at

the same time, computer technology is more mature. Computer technology is widely used on

the Internet, e-commerce is one of the fastest growing one. E-commerce transactions between

buyers and sellers realize the way in the virtual environment, and practical is the largest site.

Online bookstore system facilitates users without time limit, without geographical

restrictions they want to find and buy books. Front main function of this system include:

book category module, query module books, special books module, shopping cart module,

order module, user information module, system announcements module. Background main

function of this system include: change password module, the user management module,

class module library, library management module, order management module.

Universal JSP online bookstore system to establish reception, and connect MySQL

database to establish the background. Use MyEclipse to create a MVC framework of the

online bookstore system with Tomcat.

Keywords: Online cakestore; JSP technology; MVC framework

目 录

1 绪论 .................................................................. 1

1.1 课题背景 .......................................................... 1

1.2 课题意义 .......................................................... 2

1.3 课题目标 .......................................................... 2

2 可行性研究 ............................................................ 3

2.1 引言 .............................................................. 3

2.1.1 编写目的 .................................................... 3

2.2 可行性研究 ........................................................ 3

3 关键技术 .............................................................. 5

3.1 MVC框架 .......................................................... 5

3.1.1 MVC编程模式 ................................................. 5

3.1.2 框架内容 .................................................... 5

3.1.3 常见框架 .................................................... 6

3.2 JSP技术 .......................................................... 6

3.2.1 JSP简介 ..................................................... 6

3.2.2 JSP技术原理 ................................................. 7

3.3 Spring框架 ....................................................... 7

3.4 Struts框架 ....................................................... 8

3.5 Hibernate框架 .................................................... 9

4 项目开发计划 ......................................................... 11

4.1 引言 ............................................................. 11

4.2 项目概述 ......................................................... 11

4.3 产品 ............................................................. 11

4.3.1 程序 ....................................................... 11

4.3.2 功能 ....................................................... 11

4.4 实施计划 ......................................................... 11

5 需求分析 ............................................................. 12

5.1 项目概述 ......................................................... 12

5.1.1 功能描述 ................................................... 12

5.1.2 用户及一般约束 ............................................. 12

5.2 系统功能设计 ..................................................... 12

5.2.1 会员功能 ................................................... 12

5.2.2 管理员功能 ................................................. 13

5.3 模块说明 ......................................................... 13

5.4 设计的主要思想 ................................................... 14

5.5 数据字典 ......................................................... 14

6 概要系统设计 ......................................................... 16

6.1 总体设计 ......................................................... 16

6.2 蛋糕销售系统模块总体结构 ......................................... 16

6.3 系统结构图 ....................................................... 17

6.3.1 总体结构图 ................................................. 17

6.3.2 网络蛋糕销售系统的E-R图 ................................... 17

7 详细系统设计 ......................................................... 18

7.1 前台部分 ......................................................... 18

7.1.1 用户登录 ................................................... 18

7.1.2 安全退出系统 ............................................... 20

7.1.3 用户注册 ................................................... 21

7.1.4 蛋糕查询 ................................................... 22

7.1.5 购物车系统 ................................................. 24

7.1.6 订单系统 ................................................... 24

7.1.7 系统首界面 ................................................. 25

7.2 后台部分 ......................................................... 25

7.2.1 登录界面 ................................................... 26

7.2.2 管理员主界面 ............................................... 26

7.2.3 修改密码 ................................................... 27

7.2.4 用户管理 ................................................... 27

7.2.5 蛋糕类别 ................................................... 28

7.2.6 蛋糕管理 ................................................... 30

7.2.7 订单管理 ................................................... 31

7.3 数据库的分析与设计 ............................................... 32

7.3.1 数据库的概念 ............................................... 32

7.3.2 数据库的分析与设计 ......................................... 32

7.3.2.1 数据库的概念结构设计 ................................... 33

7.3.2.2 数据库的逻辑结构设计 ................................... 36

7.3.2.3 数据库的连接原理 ....................................... 38

7.3.3 中文乱码问题处理 ........................................... 39

结 论 .................................................................. 40

参考文献 ................................................................ 42

致 谢 .................................................................. 43

外文原文 ................................................................ 44

中文翻译 ................................................................ 51

1 绪论

1.1 课题背景

21世纪以来,计算机技术及其应用以迅雷不及掩耳之势风靡全社会,推进了各个领域应用系统的高速发展,其中,互联网的应用最为迅捷,人类开始进入了以计算机为主的网络信息时代。

互联网的出现为人类的生产生活带来了极大的方便,因此,短短20年间,互联网已渗透到经济社会的各个领域,成为生产建设、科技创新、经济贸易、生活娱乐、文化传播、公共服务的新型平台和变革力量,其中电子商务的应用最为广泛。电子商务即以信息网络技术为手段,以商品交换为中心的商务活动,通常是指在全球各地的商业贸易活动中,在因特网开发的环境下,基于浏览器/服务器应用方式,买卖双方不需见面就能实现的商品消费活动。电子商务网站为用户提供了可靠的信息存储和快捷的处理信息的方式。作为计算机应用技术的一部分,电子商务使用计算机管理某企业或公司的产品销售信息,具有手工管理无法企及的优越性,例如:检索迅速、效率高、存储量大、安全性好、成本低廉等。因此开发一套电子商务软件很有其必要性。

随着计算机硬件技术的日趋先进,计算机已成为当前人类社会不可或缺的工具,无论在生活、工作还是娱乐、学习方面都离不开计算机。硬件的发展为软件的发展提供了强有力的条件,因而电子商务技术也日渐完善,随处可见的网络购物系统正是其见证者。现在有很多网上购物网站,譬如电器信誉最好的京东商城,物价最低廉的淘宝网,图书信誉最高的亚马逊,这些都是各个销售领域的代表,这些优越网站也是实现本系统最好的参考。

目前,电子商务系统中的网上购物功能已相当成熟,其中所涉及的网络技术和数据库技术也基本完善,本系统的开发参考大多数电子商务网站,是基于JSP技术的网站,其开发主要包括前台应用程序的开发以及后台数据库的建立与维护两方面。其中,前台应用程序要求程序功能完备,页面美观足够吸引客户,最重要的是易操作和使用;而后台数据库的建立与维护要求数据库有完整性、安全性、一致性的特点,方便数据的统一管理和使用。该项目开发的目的是要满足消费者和管理员双方的需求,达到一种双赢的结果。

1.2 课题意义

本课题的研究意义在于人们只要有一台电脑或一个笔记本,异或是一部智能手机,也可以是其他任意一种上网设备,就可以随时随地在自己需要的时候在网上查找到自己喜欢的蛋糕并且可以购买,即使在家也可以订购蛋糕悠然等待送货上门,如此一来,购买蛋糕变得快速而又便捷。另一面,对于卖家而言,卖家可以在家中做生意,只需在固定的时间点上网站查看客户信息,就可及时制作,尽快发货。卖家在家中做生意不仅消除了开店面的地域限制,省去了租地成本,而且通过网络还扩大了客源,促进了销售,同时在家也能兼顾到家中的生活大小事务,更自由也更轻松。

1.3 课题目标

网上蛋糕销售系统的主要目的是实现用户网上查找以及购买蛋糕的需求。在这个系统中,每个用户都可以注册自己的账号,设置自己的密码,登录后能够通过蛋糕查询快速检索,在短时间内可以查看到蛋糕的相关信息简述,从而找到符合自己要求的蛋糕。蛋糕选定之后就可以放入购物车下订单。网站管理员进入后台后可以查看客户信息,蛋糕信息,订单信息以及其他信息,并且有权修改和删除这些信息。

2 可行性研究

2.1 引言

人类已经步入网络信息时代,网络如今与我们十分贴近,渗透到了我们生活的方方面面。现代是一个知识经济的时代,信息正以空前绝后的速度在膨胀,未来的世界将完全是一个网络的世界。

我们是21世纪的主力军,我们有责任承担起属于我们的任务,我们有责任让我国紧跟时代的步伐,让我国更快地适应这个高科技的社会。为了实现我们的任务,我们必须具备从外界及时迅速获取有效科学信息的能力,要具备判断信息真伪的能力,也要具备传播科学信息的能力,而网络为我们锻炼这种能力提供了有利的条件。因此,电子商务应运而生,网络销售作为其产物也快速发展。网上蛋糕销售系统正是网络销售中非常普遍的的一个系统,它的主要目的是让全国各地的人们随时随地就可以买到自己想吃的蛋糕。

传统的蛋糕销售主要是以店面为基础,要想销量好,就必须要选择一个有利的地理位置,还要做宣传,这些都要花费很多的钱财,并且由于受地域限制的影响,客源也十分有限。而网络蛋糕销售系统恰好完美地解决了这些问题,利用网络可以在家里做生意,不仅避免了选取店面宣传店面带来的开支,而且网络上人人都能看到网店,扩大了客户来源,增加了销量,也就增加了营业额。当今社会的人们对电脑操作十分熟悉,因而这样的系统非常易于接受和采纳,是一种相对实用的软件工具。

2.1.1 编写目的

编写该可行性研究报告的目的在于对网上蛋糕销售系统作充分的可行性研究分析,显示其存在的重要性和必要性。要达到这个目的,需要对比原始的蛋糕销售方式和网上销售方式,通过对比,明确网上蛋糕销售系统的开发方向和途径,确定该系统的开发步骤以及对策,务必要显示出该系统的优越性、先进性。

2.2 可行性研究

可行性研究阶段的主要任务是对系统是否能够正常实现等问题做出判断,避免在花费了大量人力物力财力之后才发现系统不能实现引起的浪费,可行性分析要求用最小的

代价在最短的时间内确定问题是否能够解决。这里,我们将通过以下三个方面对该网上蛋糕销售系统作出分析。

(1)经济可行性分析

网上蛋糕销售系统一旦实现,能给人们带来了极大的方便,只需要有网,人们就

能够随时随地订购蛋糕,因此,从消费群体来看,构建一个网上蛋糕销售系统在经济

上是完全可行的。

就电子商务的发展而言,电脑的普及为消费者网上购物提供了有利的条件,当然

网上蛋糕销售系统也是其受益者。网上蛋糕销售系统是一个基于电脑的系统软件,消

费者只要借助电脑就可以足不出户买到蛋糕,商家也可以从中获取利润,可谓两全其

美。

开发本系统所使用的软件并不过度依赖于计算机硬件,因此对计算机硬件并没有

太高的要求,一般的计算机配置都可行,无需花费高价购买硬件设施;开发本系统的

软件也可以免费下载,所以无论软件还是硬件,开发本系统都节省成本,具有经济可

行性。

(2)技术可行性分析

本系统的开发并不十分复杂,但是为了使系统更加完美,必须很多技术结合使用,

要结合这些技术,必须要有一套完整的开发方法。此次开发分为前台和后台两部分,

前台主要应用JSP技术,后台用到了spring、struts、hibernate框架,关于三大框

架的具体信息将在下一章做出介绍,此处不作详解。

(3)操作可行性分析

在网络信息高速发展的时代,越来越多的人掌握了计算机的使用。而本系统但凡

是能够使用计算机的人都能够轻而易举地使用本系统,因此,从操作上来说本系统完

全可行。

由以上经济、技术、操作三方面的分析可以看到,本系统无论从哪种角度考虑都

是可行的。

3 关键技术

3.1 MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于 映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

3.1.1 MVC编程模式

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web

应用程序的模式:

(1)Model(模型)表示应用程序核心(比如数据库记录列表),是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

(2)View(视图)显示数据(数据库记录),是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

(3)Controller(控制器)处理输入(写入数据库记录),是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

3.1.2 框架内容

MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

(1)视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML

等一些标识语言和Web services。MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

(2)模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

(3)控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

3.1.3 常见框架

常见的MVC框架主要有三种,分别是spring、struts、hibernate。这三种框架分别在3.3,3.4,3.5节做详细介绍。

3.2 JSP技术

3.2.1 JSP简介

JSP是Java Server Page的缩写,是Servlet的简化。它是由Sun公司提出的,并由许多公司参与制定的一种动态网页标准。其主要特点是在HTML页面中加入Java代码片段,或者使用各种JSP标签,包括使用用户标签,构成JSP网页。早期使用JSP页面的用户非常广泛,一个Web应用可以全部由JSP页面组成,只辅以少量的JavaBean即可。自J2EE标准出现以后,人们逐渐认识到使用JSP充当过多的角色是不合适的。因此,JSP慢慢发展成单一的表现层技术,不再承担业务逻辑组件及持久层组件的责任。虽然有各种模板技术,但JSP还是最经典、应用最广的表现层技术。

3.2.2 JSP技术原理

JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。

从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet 的一种特殊形式,每个JSP页面就是一个Servlet 实例--JSP页面由系统编译成Servlet, Servlet 再负责响应用户请求。JSP其实也是Servlet 的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet 容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。JSP的工作原理图如图3-1所示:

图3-1 JSP工作原理图

根据上面的工作原理图,我们可以得到以下四个结论:

(1)JSP文件必须在JSP服务器内运行;

(2)JSP文件必须生成Servlet才能执行;

(3)每个JSP页面的第一个访问者速度都很慢,因为必须等待JSP编译生成

Servlet;

(4)JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,

因为JSP页面输送到客户端的是标HTML页面。

3.3 Spring框架

Spring 为企业应用的开发提供了一个轻量级的解决方案。该解决方案包括:基于依赖注入的核心机制,基于AOP的声明式事务管理与多种持久层技术的整合,以及优秀的WebMVC框架等。

Spring 为J2EE应用的表现层、业务逻辑层及数据持久层都提供了极好的解决方案,因为Spring提供的不仅仅是一种框架,而且提供了一种企业应用的开发规范。Spring是实际开发的抽象,其提供的"模板设计"大大简化了应用的开发。

Spring的系列Template将通用步碟以优雅的方式完成,留给开发者的仅仅是与特定应用相关的部分,从而大大提高企业应用的开发效率。Spring支持对POJO的管理,能将J2EE应用各层的对象"焊接"在一起,甚至这些对象无须是标准的JavaBean。

Spring框架是java中用来解决对象之间相互调用的,它可以降低对象之间调用的耦合性,所以使得编程很容易,使得程序的伸缩性提高。控制反转(IOC)思想对于降低对象之间的耦合性提供了很多好处,而Spring框架则是使得IOC变得标准,从而使得程序员根据Spring框架来进行开发。

Spring框架是用最基本的javabean来代替EJB,使企业应用开发变得简洁,与此同时,还能提供更多的应用功能,并且任何的java应用都能使用Spring框架。Spring框架实际上就是使得整个应用比较统一,让程序员更加容易地使用J2EE来开发程序,并且通过揉合单框架形成组合,从而建立起一个体系。因此Spring框架提供了一个更加完善的开发环境,能提供企业级的服务给POJO对象。

3.4 Struts框架

从实际应用开发的角度而言,Struts 应该是MVC框架的第一选择。因为它具有稳定性,以及成熟的开发群体和丰富的信息资埠,保证了企业应用的稳定开发。经过长达六年的发展,Struts 已经成长为稳定、成熟的框架,并且是所有MVC框架中应用最广泛的框架。

近来,WebWork也加入到Struts 阵营,更提高了Struts 的竞争力。如今,Struts作为全世界第一个开源MVC框架,具有高度的成熟性和广泛的项目应用,保证了其应用的稳定性。

Struts框架是用来规范MVC的开发。在Struts中, JSP、ActionServlet、ActionForm、Action、JavaBean、配置文件等是通常使用的组件。其工作原理如图3-2所示。

图3-2struts 组件之间关系

当有用户进行操作请求时,JSP界面则会将内容交给ActionServlet。

(1)ActionServlet会使得表单信息封装于ActionForm内,并且转交给Action。

(2)ActionServlet让Action直接调用DAO包,而不是直接处理业务逻辑。

(3)Action将接下来要跳转的JSP页面传给ActionServlet。

(4)ActionServlet实现跳转,并且显示在JSP页面上。

3.5 Hibernate框架

Hibernate 是目前最流行的开源对象关系映射(ORM)框架。Hibernate 采用低侵入式的设计,完全采用普通的Java 对象(POJO),而不必继承Hibernate 的某个超类或实现Hibernate的某个接口。因为Hibernate是面向对象的程序设计语言和关系数据库之间的桥梁,所以Hibernate允许程序开发者采用面向对象的方式来操作关系数据库。

Hibernate将数据库中的每个记录,都当做一个java对象,这样可以使得编程变得容易,也能使得维护性变高。对象关系映射(ORMapping)是数据库层的一种设计思想,而Hibernate则是将它作为基础从而使得程序员所写的程序变得规范。

PO、框架API、Hibernate配置文件、Hibernate映射文件等组件是Hibernate中经常使用的。关系如下图3-3所示。

图3-3Hibernate 各组件之间关系

一个对数据库进行的操作,其流程如下。

(1)首先,API框架获取Hibernate配置文件,并连接到数据库。

(2)其次,操作PO时,框架API根据Hibernate映射文件,来创建要操作的表名与列名。

(3)框架API执行相应SQL语句。

4 项目开发计划

4.1 引言

主要对开发该系统的时间、进度、软硬件设备配置等进行说明规划。

4.2 项目概述

为了能够很好地完成该项目的开发计划,需要明确该软件要实现的主要功能。制定的实施计划包括:明确主要工作;确定开发使用的语言及数据存储形式;确定工作进度;制定测试计划。

4.3 产品

4.3.1 程序

提交的系统为“网上蛋糕销售系统”,采用myeclipse平台,后台数据库使用mysql。

4.3.2 功能

(1)用户注册登录;

(2)信息查询,包括蛋糕、订单、公告、论坛;

(3)修改,包括用户修改购物车信息和管理员修改蛋糕、订单、公告、论坛信息;

(4)保存,包括用户订单和管理员更新的信息。

4.4 实施计划

工作任务的分解:

(1)系统模块的分解

系统分为两大模块:用户模块,管理员模块。

(2)开发者的主要任务

设计并实现网上蛋糕销售系统,包括界面设计和代码最终实现。

5 需求分析

项目概述

5.1.1 功能描述

本系统采用页面显示的方式,使人机交互更为方便,使系统可以可靠运行,有较高的安全性,满足实用性和经济性要求。

5.1.2 用户及一般约束

系统的用户有两类:用户会员和系统管理员。用户会员可以浏览查询蛋糕信息,并且可以下订单,还能在论坛上发表言论。管理员进入后台可以修改蛋糕信息,也可以修改用户和订单信息,还可以发布公告。在本系统中,管理员的权限是最高的。

5.2 系统功能设计

5.2.1 会员功能

本系统分为前台和后台两个平台,前台主要是给用户操作,用户在此可以查询蛋糕、购买蛋糕,可以查看系统公告、留言评论,也可以修改个人信息、查看日历等,其功能显示如图5-1所示。

图5-1 会员功能

5.2.2 管理员功能

后台主要是网站管理员操作,管理员拥有网站最大的权限,他能管理并且查看用户的所有信息,以及对蛋糕、公告、和论坛的增加、删除和修改操作。其具体功能如图5-2所示。

图5-2 管理员功能

5.3 模块说明

会员模块:会员即用户,用户需要先注册才能登录。登录之后用户可以在网上查看对比所有蛋糕信息,如果有看中的蛋糕即可加入到购物车之中,然后下订单,若购物车中有不想要的蛋糕可以删除。除此之外,用户可以查看公告信息,也可以在网站论坛上发表评论。

管理员模块:管理员具有系统最高权限,功能如下:

(1)修改管理员密码:管理员能够在这里修改下次登录的密码,但是管理员的用户名是不可更改的。

(2)用户信息管理:管理员能够查看会员资料,并有权将其删除。被管理员删除的会员将无法用其删除的账户登录该系统。

(3)查看蛋糕信息:管理员能够查看全部蛋糕类别信息及其属性,能够添加和删除蛋糕类别。

(4)蛋糕信息管理:管理员能够查看蛋糕信息,比如查看所有蛋糕的属性,以及可以帮蛋糕设置特价,还能对蛋糕的属性进行添加、修改和删除。

(5)订单信息管理:管理员能够查看订单的信息,并可以选择对其进行受理或者删除操作。

(6)网站论坛:管理员能查看所有用户在网站论坛的留言,对这些留言具有删除权

限。

(7)公告管理:管理员查看网站所发布的所有公告,并且及时对公告做出更新。

5.4 设计的主要思想

网上蛋糕商城这个系统主要用的是MVC设计思想。MVC模式即model-view-controller模式。用户通过网上蛋糕商城这个界面的一些按钮,系统会找到其相对应的struts配置文件,然后到控制层找到相对应action,并且找到操作方法,再到dao包里找到对数据库的操作方法,最后产生一个session,对数据库进行一次操作,如增删改查。

Model——表示应用程序核心,主要是使应用程序的数据结构和事物逻辑封装起来,它能体现出应用程序的状态,当用户对数据进行操作时,可以在View中展现出来。

View——显示数据,它是用来展示Model中的内容,当模型数据改变的时候,则会通过JSP界面将变化展现出来。

Controller——应用程序中处理用户交互的部分,它能够响应用户的操作请求,将模型跟视图连接在一起,并且把数据库中的数据存放到模型中,然后调用视图。

5.5 数据字典

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。该系统中涉及的主要的数据字典如下所示:

文件条目:

(1)文件名:会员清单

组成{账号+密码+姓名+性别+年龄+住址+电话+邮箱}

组织:按序列号递增

(2)文件名:蛋糕种类清单

组成{蛋糕名称+蛋糕品牌+介绍+图片+价格+特价+操作}

组织:按序列号递增

(3)文件名:购物车清单

组成{蛋糕名称+价格+数量+金额+删除}

组织:按序列号递增

(4)文件名:订单清单

用户所见:

组成{订单编号+金额+下单日期+订单状态+编辑}

组织:按序列号递增

管理员所见:

组成{用户信息+订单编号+金额+下单日期+送货地址+付款方式+操作}

组织:按序列号递增

加工说明:

(1)加工名:会员信息、蛋糕信息、订单信息查询

加工逻辑:根据输入要查询的会员、蛋糕和订单信息,检索出结果

输入流:会员信息、蛋糕信息、订单信息

输出流:会员信息清单、蛋糕信息清单、订单清单

(2)加工名:会员信息、蛋糕信息、订单信息更新

加工逻辑:根据输入的会员、蛋糕、订单信息更新相应的清单

输入流:修改的新信息

输出流:修改后的对应清单

6 概要系统设计

6.1 总体设计

程序运行开始后,用户将通过浏览器看到一个动态页面,页面中有注册和登录两个按钮,在未注册的情况下,用户点击登录按钮系统会提示注册之后才能登录。点击注册用户会进入注册窗口,注册成功之后,输入用户名密码就能够登录进入系统。登录进系统之后,用户可以通过蛋糕查询查看所有的蛋糕信息,也能通过特价蛋糕进行对比,之后用户可以选择购买蛋糕,下订单。同时,用户可以在系统论坛中发表评论,或者查看网站公告信息。点击进入后台后,管理员可以登录后台,登录之后管理员可以修改管理员的用户密码,下次启动生效。管理员在后台可以查看用户、蛋糕、公告、订单等信息,并且随时可以对这些信息进行增删改查操作。

网上蛋糕销售系统具有以下特点:

(1)采用C/S工作模式,即客户端/服务器工作模式;

(2)直观的JSP网页界面。

6.2 蛋糕销售系统模块总体结构

根据用户需求,该系统划分为以下9大模块:

(1)主页:在这里我们可以看见该系统的主要功能和信息栏;

(2)用户注册登录:在这里我们可以注册账户,其中有几项是必须要填的,为了

方便购物,注册之后需要登录;

(3)蛋糕查询:在这里我们可浏览蛋糕的信息,看到喜欢的可以点击进入购物车;

(4)购物车:这里主要是存放想要购买的蛋糕;

(5)订单:用户可以查看订单的信息,也可以删除订单;

(6)个人信息修改:用户可以在此界面修改信息;

(7)公告:用户可以在此查看系统公告;

(8)论坛:用户可以发表言论;

(9)后台:管理员进入后台后可以对各个模块进行修改、更新。

6.3 系统结构图

6.3.1 总体结构图

总体结构是从大的方向出发来看的,主要是系统的九大模块。该系统的总体结构图如图6-1所示。

6-1 网上蛋糕销售系统总体结构图

6.3.2 网络蛋糕销售系统的E-R图

6-2 网上蛋糕销售系统的E-R图

7 详细系统设计

7.1 前台部分

前台主要是让会员使用,可以通过个人账号登录系统,然后浏览所有的蛋糕信息,以及通过关键字检索蛋糕信息,并且进行留言以及查看网站公告。

7.1.1 用户登录

用户登录是要进入系统的第一步,用户输入个人账号和密码,系统会根据用户输入的信息到数据库的t_user表中查找信息,若是数据库中的信息与用户输入的信息一致,则跳出的窗口中会提示登录成功。如果不输入账号名和密码,窗口会提示请输入用户名和密码;如果只输入用户名不输入密码,窗口会提示请输入密码;如果输入的用户名和密码不匹配,则会提示密码输入错误;如果不输用户名只输密码,窗口会提示请输入用户名。这五种情况就是五个测试用例,如表7-1所示。

表7-1 登录测试表

测试对象

用户登录

测试案例 预期结果 实际结果

报错,提示请输入用户名

报错,提示请输入密码

报错,提示用户名或者密码错误

报错,提示请输入用户名

提示成功登录

是否通过

通过

用户名:null 报错,请输入密码:null

用户名:yll

密码:null

用户名:yll

密码:l

用户名

报错,请输入密码

报错,用户名或者密码错误

用户登录 通过

用户登录 通过

用户登录

用户名:null 报错,请输入密码:1

用户名:yll

密码:123

用户名

成功登录

通过

用户登录 通过

用户登录系统按图7-1流程图执行:

图7-1 登录系统

判断用户输入是否正确是调用action里UserAction类里的userLogin方法,主要代码如下:

te().find(sql,con);

if(()==0)

sage("用户名或密码错误");

h("qiantai/");

Map session= text().getSession();

TUser user=(TUser)(0);

("user", user);

Cart cart=new Cart();

("cart", cart);

sage("成功登录");

h("qiantai/");

用户登录界面如图7-2所示,登录成功窗口如图7-3所示,未输入密码报错窗口如图7-4所示,未输入用户名报错窗口如图7-5所示,用户名和密码不匹配的报错窗口如

图7-6所示。

图7-2 用户登录界面 图7-3 登录成功

图7-4 报错1 图7-5 报错2

图7-6 报错3

7.1.2 安全退出系统

出于对账户安全的考虑,本系统特别增加了安全退出系统的功能。当用户需要退出网站时,必须点击退出系统才可以,这样做的目的是使数据库产生的session清楚地了解到当前用户的信息,否则,当其他用户登录这个网站时,就会保存当前用户的登录信息,而其他用户可以借此使用当前用户的账号购买蛋糕,对当前用户造成损失。安全退

出系统的关键代码如下:

Map session= text().getSession();

("user");

return S;

安全退出界面如图7-7所示。

图7-7 退出界面

7.1.3 用户注册

在用户没有个人账号的情况下,可以点击注册进入注册界面注册个人账户。注册界面包含8个信息,其中账号和密码是必须要填的内容,其他是选填项。填写完成后,单击确定便能够注册成功,用户就拥有了自己的个人账号。如果输入的信息不符合要求,提交之后系统会报错,提示注册失败。此模块调用的是java里UserAction类的userReg()方法实现,其主要代码如下:

TUser user=new TUser();

rName(userName);

rPw(userPw);

... ...

(user);

注册界面如图7-8所示:

图7-8 注册界面

此模块综合考虑了各方面的因素,基本已经完美,但还有一个缺陷,注册按钮调用的是check1()函数,该函数在此处只检查了账号和密码是否为空,并没有在数据库中进行关键字对比,因此没有检测账号的唯一性。从理论上讲,当注册的账号已经存在时,系统是应该报错的,并且提示重新输入一个账户,但在此系统中账号重复并没有报错,而是对原来的账户进行了覆盖。此功能的测试用例如表7-2所示。

表7-2 注册测试表

测试对象

用户注册

测试案例

账号:null

密码:null

用户名:null

密码:1

用户名:m1

密码:null

用户名:zyw

密码:1

预期结果

报错,请输入

账号

报错,请输入

账号

报错,请输入

密码

注册成功

实际结果

报错,提示请

输入账号

报错,提示请

输入账号

报错,提示请

输入密码

注册成功,请

登录

注册成功

是否通过

通过

用户注册 通过

用户注册 通过

用户注册 通过

用户注册

用户名:zhangyuwen 报错,请用户重密码:1 新输入用户名

不通过

7.1.4 蛋糕查询

蛋糕查询分为按关键字查询和按类别查询两种查询方法。

按关键字查询是指在蛋糕输入框里输入关键字,此处采用的是模糊查询,所有含有搜寻的关键字的蛋糕都会列出。若输入框里输入内容为空,点击查询按钮,则会列出所有蛋糕信息。此处调用的是goodsaction里的goodsSearch()方法。从数据库里查找符合查询条件的蛋糕,并且跳转到界面。此处查询语句如下:

Map request=(Map)text().get("request");

String sql="from TGoods where goodsDel='no' and goodsName like

'%"+()+"%'";

List goodsList=ernateTemplate().find(sql);

("goodsList", goodsList);

return S;

空查结果如图7-9所示:

图7-9 查询界面

按蛋糕类别查询则是根据类别名称快速搜索。这种查询方法是调用catelogAction类中的catelogAll()方法来查询所有的该类别的蛋糕信息,并且将查询到的所有信息都显示到页面。用户只需点击类别信息,该类别蛋糕即可都显示出来,主要代码如下:

List goodsList=ernateTemplate().find(sql,con);

("goodsList", goodsList);

类别查询界面如图7-10所示:

图7-10 类别查询

7.1.5 购物车系统

在浏览蛋糕的过程中必然会有一款用户满意的蛋糕,此时,用户打开蛋糕信息,点击购买,就能够将看中的蛋糕加入到购物车中,购物车中有三个提示按钮,分别是:清空、继续、下一步。点击清空按钮会删除当前购物车中的所有蛋糕;点击继续按钮会跳转回蛋糕首页,用户继续选购;点击下一步按钮就进入了订单确认界面。要删除已选的某一个蛋糕,可以点击其后的X按钮,点击之后会删除掉想要删除的蛋糕。蛋糕购物车如图7-11所示:

图7-11 购物车

清空购物车调用java里cartService类里的clearCart()方法,主要代码如下:

Cart cart=(Cart)ribute("cart");

ms().clear();

继续购买则直接调转到默认界面,及界面,回到首界面,而下一步则是调用buyAction里的orderQueren()方法,进入订单确认界面,主要代码如下:

Map request=(Map)text().get("request");

7.1.6 订单系统

系统首页我的订单一栏点击后会进入订单系统,订单系统中含有所有的订单信息,包括订单编号、金额、下单日期、订单状态、编辑等。编辑之下有两个操作,一个是订单明细,点击之后能够查看订单具体信息,如蛋糕名称、购买数量以及价格;另一个是删除操作,点击之后可以删除对应的订单。在此JSP中使用了迭代器iterator。

我的订单信息界面如图7-12所示:

图7-12 订单信息

订单明细则是调用了action里buyAction的orderDetail()方法,订单明细界面如图7-13所示:

图7-13 订单明细界面

7.1.7 系统首界面

系统首界面分为top,left,right,foot四部分。Top部分主要是网上蛋糕销售系统的logo,为了方便直观,命名为网上蛋糕商城,紧接着还有几个功能模块:系统首页、特价蛋糕、我的蛋糕车、我的订单、我的信息、系统公告、网站论坛、进入后台。Left部分主要是用户登录、蛋糕查询、蛋糕类别和日历表。Right部分展示的是所有蛋糕的信息。Foot部分是网站声明、服务网点、网站地图、已经客服热线,系统首界面如图7-14所示。

图7-14 系统首页

7.2 后台部分

后台主要是为管理员提供控制平台,首先管理员输入账号密码登录,管理系统分为八个部分,分别是修改密码部分、用户管理部分、蛋糕类别管理部分、蛋糕管理部分、订单管理部分、留言管理部分、公告管理部分和退出系统。

7.2.1 登录界面

每个管理员都具有独立的账号和密码,根据提供的账号密码登录管理系统。系统登录界面如图7-15所示:

图7-15 后台登陆界面

当管理员输入完用户名和密码后,点击登录按钮,系统首先会判断用户名和密码有没有输入,若是输入了,系统再到数据库中与存储的数据进行匹配,匹配通过后才能成功登录。判断是否输入用户名和密码的主要代码如下:

if(=="")

alert("请输入用户名");

if(=="")

alert("请输入密码");

当输入的用户名和密码与数据库里所存储的信息不符合时,则会返回登录界面,主要代码如下:

if(data=="no")

alert("用户名或密码错误");

if(data=="yes")

alert("通过验证,系统登录成功");

="<%=path %>/";

7.2.2 管理员主界面

管理员主界面主要分为top、left、right三个部分,top部分仍然是蛋糕商城的logo,left部分为管理员的八大功能模块,right部分为每个功能模块相对应的操作,其主界面如图7-16所示:

图7-16 管理员主界面

7.2.3 修改密码

此功能模块是让管理员在此处修改紫的登录密码。修改密码时首先要输入原始密码,原始密码输入错误是无法进行修改的,系统会通过数据库判断输入的原始密码是否正确,正确后再输入新密码,之后点击确定即可完成密码的修改。修改密码的界面如图8-17所示。

图7-17 修改密码

检查原始密码以及新密码输入是否正确,主要代码如下:

if( !=userPwReal)

alert("原密码不正确");

if( =="")

alert("新密码不能空");

mentById("indicator").y="none";

alert("修改成功");

7.2.4 用户管理

用户登录网上蛋糕销售系统时,均可注册成为网上蛋糕销售系统的会员,在用户管理这一模块中管理员可以查看所有会员的注册信息,并可以删除用户。当点击用户管理

这个按钮时,则会连接到java里的userAction,接下来会到数据库中查找用户信息,然后将其绑定到request对象,最后再回到相应的界面,用户管理界面如图7-18所示。

图7-18 用户管理

用户管理功能中删除用户的关键代码如下:

TUser user=Id(userId);

(user);

用户管理功能中查看用户信息的关键代码如下:

List userList=ernateTemplate().find(sql);

Map request=(Map)text().get("request");

("userList", userList);

7.2.5 蛋糕类别

蛋糕类别管理主要是对蛋糕类别的删除与添加。首先先介绍一下对蛋糕类别的添加功能,点击添加类别,在跳转的页面中,管理员输入正确的类别名称,再点击提交按钮,蛋糕类别就添加成功了。如果输入的蛋糕类别名称为空,系统就会提示请输入类别名称,表示此次添加蛋糕类别失败。输入的数据信息都会通过onclick="check()"方法来检查输入的是否正确。添加蛋糕的类别界面如图7-19所示。

图7-19 蛋糕类别添加

添加蛋糕类别的流程图如图7-20所示。

图7-20 添加蛋糕类别

管理员添加蛋糕类别的关键代码如下:

TCatelog catelog=new TCatelog();

ogName(catelogName);

(catelog);

管理员点击蛋糕类别里的类别管理,系统则会调用catelogAction类查询所有的蛋糕类别信息,并且在页面的右边显示,蛋糕类别信息如图7-21所示。

图7-21 蛋糕类别信息

在显示的所有蛋糕类别信息中,管理员可以删除相应的蛋糕类别,点击删除,然后确定删除,则可删除该蛋糕类别信息,删除成功界面如图7-22所示。

图7-22 删除类别

在蛋糕类别功能模块中,点击类别管理会显示所有的蛋糕类别,主要代码如下:

List cateLogList=ernateTemplate().find(sql);

Map request=(Map)text().get("request");

("cateLogList", cateLogList);

在蛋糕类别功能模块中,删除蛋糕类别调用方法catelogDel()。其主要代码如下:

bernateTemplate().find(sql);

if(()>0)

sage("请先删除此类别下的蛋糕");

h("");

TCatelog catelog=Id(catelogId);

elogDel("yes");

7.2.6 蛋糕管理

网上蛋糕的蛋糕管理功能主要包括所有蛋糕的信息,如蛋糕的编号、名称、蛋糕价格、蛋糕介绍、蛋糕图片等,蛋糕介绍可以使用fckEditor在线文本编辑器实现显示和修改。点击蛋糕管理,系统则会调用java里的goodsAction类,查找蛋糕信息,并且跳转到相应的JSP界面,蛋糕管理信息显示界面如图7-23所示。

图7-23 蛋糕管理信息

蛋糕管理模块调用的是goodsMana()方法,其主要代码如下:

List goodsList=ernateTemplate().find(sql);

Map request=(Map)text().get("request");

("goodsList", goodsList);

蛋糕管理模块还有添加蛋糕功能,可以通过左边功能模块里的添加蛋糕或者蛋糕管理界面里的添加按钮进行添加蛋糕。添加蛋糕需要输入相应的蛋糕信息,如蛋糕类别、蛋糕名称、ISBN、蛋糕介绍、蛋糕图片以及价格,输入完点击提交按钮即可。添加蛋糕

界面如图7-24所示。

图7-24 添加蛋糕

蛋糕管理模块的添加蛋糕信息的主要代码如下:

TGoods goods=new TGoods();

dsCatelogId(goodsCatelogId);

dsName(goodsName);

... ...

(goods);

7.2.7 订单管理

在订单管理系统中,管理员可以查看和管理整个网站的所有订单,包括查看订单明细和查看买家信息,也包括订单的受理与删除。在此处的用户信息通过在线文本编辑器fckEditor文本框实现用户信息的介绍。跳转到userAction类,找到买家信息。其对应的界面如图8-25所示。

图7-25 订单信息

在此界面,管理员也可以选择删除订单,其主要代码如下:

TOrder order=Id(orderId);

(order);

7.3 数据库的分析与设计

7.3.1 数据库的概念

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

7.3.2 数据库的分析与设计

数据库是后台存储数据的仓库,通过数据库,前台所有的操作信息都能映射到数据库中并且响应。数据库作为一个大型的数据集合,它的独立性比较高,扩展性很大,而冗余度却比较小。将前台与后台连接后,数据库可供用户以及管理员共同使用,实现对数据库的基本操作,例如增加信息、删除信息、更改信息和查询信息。用户通过网上蛋糕这个界面的一些按钮,系统会找到其相对应的struts配置文件,然后到控制层找到相对应action,并且找到操作方法,再到dao包里找到对数据库的操作方法,最后产生一个session,对数据库进行一次操作,如图7-26所示。

图7-26 数据库系统

数据库设计是指在特定的应用环境中,根据数据库的逻辑和物理结构建立一个相应的数据库,并且将它应用于一些设计的项目,使得它能存储和管理数据更加有效,从而响应每个用户的操作请求。数据设计一般是由六个阶段构成。

(1)需求分析:指需要准确的了解用户的所有需求以及用户的操作动作。

(2)概念结构设计:主要建立一个数据库对应的概念模型。

(3)逻辑结构设计:即为根据概念模型建立一个数据库系统所支持的数据模型。

(4)物理结构设计:主要是为逻辑数据模型寻找一个合适的存储结构和存取方法即为物理结构。

(5)数据库实施:指建立数据库,设计员利用数据库语句建立符合逻辑结构和物理结构的数据库。

(6)数据库运行和维护:指调试数据库的运行,以及将数据库变的更加完善。

7.3.2.1 数据库的概念结构设计

数据库中的概念结构设计是会形成一个独立的概念模型,这个模型独立于具体的数据库系统,所以说它是数据库设计中非常重要的一步。它可以归纳出用户的需求并将这些需求抽象化,从上向下分析,从下向上分析,从一点扩散以及集中混合起来是概念结构设计经常使用的方法。通常,概念模型使用E-R模型来描述。属性、实体、域、码和其相互之间的联系组成了E-R模型,其可以使用E-R(实体-联系)图来表示。E-R图具有表示实体、属性和联系的方法。矩形一般表示实体,椭圆一般表示属性,而实体之间的联系大多使用菱形。三者之间则用无向边相连。无向边上可以注上联系的类型,比如一对一(1:1),一对多(1:n),多对多(n:m)。

(1)会员信息主要指会员注册时所包含的信息,这些信息就是会员的属性。该系统的会员信息图如图7-27所示:

图7-27 会员信息图

(2)蛋糕类别是对蛋糕的种类的介绍,其拥有三个属性。该系统的蛋糕类别图如图7-28所示:

图7-28 蛋糕类别图

(3)蛋糕信息与蛋糕类别不同,蛋糕信息主要是蛋糕本身的各个属性,该系统的蛋糕信息图如图7-29所示:

图7-29 蛋糕信息图

(4)公告是系统的一种通知信息,它有四个属性。该系统的公告信息图如图7-30所示:

图7-30 公告信息图

(5)管理员是系统另一使用者,拥有系统最高权限。本系统的管理员信息图如图7-31所示:

图7-31 管理员信息图

(6)任何一个购物系统都会生成其订单,订单的属性大同小异,本系统的订单信息图如图7-32所示:

图7-32 订单信息图

(7)留言时用户在论坛的评论信息,有五个属性,本系统的留言信息图如图7-33所示:

图7-33 留言信息图

(8)用户查询以及购买蛋糕E-R图如图7-34所示:

图7-34 查询购买蛋糕E-R图

7.3.2.2 数据库的逻辑结构设计

逻辑结构设计一般分成三个步骤:

(1)首先使用关系模型、网状模型或者层次模型表示概念结构。

(2)再用特定数据库管理系统支持的数据模型来表示转换过来的关系模型、网状

模型和层次模型。

(3)优化数据模型。

根据E-R模型,网上蛋糕销售系统建立了以下逻辑数据模型。

用户(用户ID,用户名,用户密码,姓名,性别,联系方式,住址,年龄,邮箱)

蛋糕类别(类别ID,类别名称,类别介绍)

蛋糕信息(蛋糕ID,类别ID,名称,介绍,蛋糕封皮,蛋糕价格,蛋糕特价)

公告(公告ID,公告标题,公告内容,发布日期)

管理员(编号,用户名,密码)

订单(订单ID,编号,下单时间,订单状态,送货地址,付款方式,总金额,会员ID)

留言(编号,留言标题,留言内容,留言时间,留言用户)

(1)user表即用户表,表中对用户的各个属性进行了约束,该系统的user表如表

7-3所示。

表7-3 user表

列名

user_id

user_name

user_pw

user_realname

user_sex

user_tel

user_address

user_age

user_email

数据类型 长度 允许空 是否主键

int

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

11

50

50

50

50

50

255

50

50

说明

用户ID

用户名

用户密码

姓名

性别

联系方式

住址

年龄

邮箱

(2)catelog是类别的意思,catelog表是对蛋糕类别的属性进行约束,本系统

的catelog表如表7-4所示。

表7-4 catelog表

列名

catelog_id

catelog_name

catelog_miaoshu

数据类型

int

varchar

varchar

长度

11

50

50

允许空

是否主键

说明

类别ID

类别名称

类别介绍

(3)goods,在这里代表的是蛋糕,goods信息即蛋糕信息,这里的goods表是

对蛋糕信息中的蛋糕属性进行约束,该系统的goods表如表7-5所示。

表7-5 goods表

列名

goods_id

goods_catelog_id

goods_name

goods_miaoshu

goods_pic

goods_shichangjia

goods_tejia

数据类型

int

int

varchar

text

varchar

int

varchar

长度 允许空 是否主键

11

4

50

0

50

11

50

说明

图书ID

类别ID

名称

介绍

图书封皮

图书价格

图书特价

(4)gonggao表是对系统公告的属性进行约束,gonggao表记录了系统公告的相

关信息,该系统的公告表如表7-6所示。

表7-6 gonggao表

列名

gonggao_id

gonggao_title

gonggao_content

gonggao_data

数据类型 长度 允许空 是否主键

int

varchar

text

varchar

11

50

0

50

说明

公告ID

公告标题

公告内容

发布日期

(5)admin从词义理解就是管理员的administrator的缩写,它代表的是管理员,

对管理员的属性进行约束。本系统的admin表如表7-7所示。

表7-7 admin表

列名

userId

userName

userPw

数据类型

int

varchar

varchar

长度

11

50

50

允许空 是否主键

说明

编号

用户名

密码

(6)order表是订单表,其中记录了订单的相关信息,表中对订单的属性进行了

约束,本系统的order表如表7-8所示。

表7-8 order表

列名

order_id

order_bianhao

order_data

数据类型 长度 允许空 是否主键

int

varchar

varchar

11

50

50

50

50

50

11

11

说明

订单ID

编号

下单时间

订单状态

送货地址

付款方式

总金额

会员ID

order_zhuangtai varchar

songhuodizhi

fukuanfangshi

jine

user_id

varchar

varchar

int

int

(7)liuyan表记录系统论坛的评论留言,其中对留言的属性进行相关约束,本

系统的liuyan表如表7-9所示。

表7-9 liuyan表

列名

id

title

content

data

user

数据类型 长度 允许空 是否主键

int

varchar

text

varchar

varchar

11

50

0

50

50

说明

编号

留言标题

留言内容

留言时间

留言用户

7.3.2.3 数据库的连接原理

这里先说明一下hibernate连接数据库的原理。Hibernate连接数据库主要是通过配置文件中的配置。在这个文件中定义了数据库进行连接所需要的信息,包括JDBC驱动、用户名、密码、数据库方言等,configuration类借助dom4j的XML解析器解析设置环境,然后使用这些环境属性来生成 SessionFactory。这样这

个sessionFactory生成的session就能成功获得数据库的连接。

该系统就是采用Hibernate框架连接数据库,首先编写Hibernate配置文件,连接到数据库,然后编写PO,以及Hibernate的映射文件,最后编写DAO,使用Hibernate

进行对数据库的操作。利用Hibernate实现对数据库的操作,首先会生成一个SessionFactory,然后每一次的操作,SessionFactory会产生一个session。

添加操作利用session将数据保存到数据库中(object),如果该对象的主键内容在表中存在,则抛出异常。为了避免这个问题,可以使用Update(object),如果主键在数据库中存在,就修改数据,否则保存数据。

连接数据库的主要代码如下:

value="jdbc:mysql://localhost:3306/db_tushu?useUnicode=true&amp;amp;amp;amp;amp;characterEncoding=utf-8">

7.3.3 中文乱码问题处理

乱码是由于系统或软件缺乏对某种字符编码的支持而产生的不能正常阅读的混乱字符。在软件开发的过程中,经常会出现乱码,这些乱码是可以通过修改系统属性来调整的。在该系统中,以utf-8编码为例,一旦出现乱码可以通过以下步骤调整属性:

(1)右键单击工程名称shop,在出现的列表中选择Properties选项;

(2)完成上一步后会出现一个Properties for shop的窗口,该窗口中间一部分为

Text file encoding,其下有两栏,选择Other,选择后单击下拉列表,选中UTF-8,确认。如图7-35所示。

图7-35 更改属性

按以上方法修改之后,再次打开页面,页面就会恢复正常,不会再出现乱码。

结 论

毕业论文是本科学习即将结束之际一次非常难得也必须完成的理论与实际相结合的契机,此次毕业设计我选择了网上蛋糕销售系统这个题目,在自己的努力以及同学和指导老师的帮助下终于完成。在完成这个题目的过程中,我不再是只局限于理论的知识,理论与实践的结合充分锻炼了我的能力,其中包括对基础知识运用的能力,还有解决实际问题的能力。以前我总觉得我们这个专业学的课程很杂,不仅软硬件都学习了,常见的编程语言我们也都学了一遍,我一直认为我们学习的不够精细,在以后的工作中不会有太大的用处,但通过这次的毕业设计,我发现好多学到的东西都用到了,譬如软件工程、软件测试、JAVA、J2EE、数据库等课程,因此我也发现了杂也有杂的好处,因为学的杂,所以学的知识也够全面,真正地开发一个系统是需要各种知识相结合的。

论文是毕业设计的重中之重。编写论文的过程中,为了使论文更加完美,我进行了大量的书籍查阅,这个查阅的过程让我受益匪浅。查找文献提高了我的自主动手能力,编写论文规范了我的写作能力,论文中经常要作图,所以我的绘图能力也得到了显著提高。论文要从大局着眼,通过对掌控整体内容,取舍局部内容,以及仔细斟酌处理细节问题,我的思维能力得到了很好的发展,经验也更为丰富。在一遍又一遍的修改论文的过程中,我的抗压能力和耐力都得到了不同程度的提升。

开发系统的过程中用到了很多先进的技术,虽然在基地我们有经过这些训练,但毕竟学的比较浅显,在这段时间里,我到互联网上查找了很多关于这些技术的相关资料,尤其是J2EE的开发资料。查找到的这些资料使我更加了解JSP界面,以及MVC框架,还有spring、struts、hibernate三大开源框架。Spring框架是对事物操作的一种机制,是数据库事物管理机制。Hibernate框架是用来数据库映射。Struts框架控制跳转。通过了解这些,我做毕业设计时更加得心应手。但在这过程中,还是遇到了很多问题。例如属性里定义的是type=“text”,但我要实现的是输入密码时隐藏,应该改为type=“password”才能实现。

在毕业设计中,我不仅运用了MVC框架和spring、struts、hibernate技术,还用到了JSP技术,并且学习到了一种新的数据库--mysql数据库。将这些技术全部结合到一起后,我所做的网上蛋糕销售系统的综合性能得到了显著地提高。所有运用到的技术在论文中我都做了详细的介绍。网上蛋糕销售系统虽然完成了,但是还是有一些瑕疵,在系统详细设计中,我已经间接说明了这些不足。在以后的日子里,我会以此鞭策自己,

深入研究,让这个系统尽可能做到完美,达到尽善尽美的地步。

在现代这个高速发展的经济社会,我所学的知识更新换代的速度远远超过了其他的知识,这就使得我不得不继续深入学习,当然这种学习并不是说只能在校园里,在工作中同样能够快速学习,并且效率比在校园中会高出很多。这次的毕业设计为我以后的学习和研究奠定了基础,在毕业设计中,我的各种能力都得到了锻炼,这一次的亲自动手开发系统也让我熟练地将理论知识应用到了实际操作上,这让我很有成就感。这一次小的成功一定能为我未来的工作起到很大的作用。


本文标签: 蛋糕 系统 信息 用户