乐优购物商城设计与实现
文末获取源码和万字论文,制作不易,感谢点赞支持。
乐优购物商城设计与实现
摘 要
现如今先进科学技术高速发展,计算机技术已经被社会的各个领域广泛应用。随着计算机技术和通信技术的迅猛发展,互联网的规模也逐步增大,互联网的元素也随之逐渐增加,可以利用其发展通信,也可以利用其进行商业用途,可以在互联网上进行出售、收购、宣传等操作,从而使得互联网逐渐成为当今社会上必不可少的元素,而网站就是这个里很庞大的元素之一。
现如今,乐优购物商城是商业贸易中的一条非常重要的道路,可以把其从传统的实体模式中解放中来,网上购物可以为消费者提供巨大的便利。通过乐优购物商城这个平台,可以使用户足不出户就可以了解现今的流行趋势和丰富的商品信息,为用户提供了极大的方便,乐优购物商城的主要功能包含:商品类别管理、商品的信息管理、订单管理、用户的管理等。网站分为管理员、会员用户这二种用户平台。乐优购物商城主要使用MySQL作为数据库管理系统,开发环境是Java,这是一个基于Web技术的B/S结构的乐优购物商城。实现了一个乐优购物商城网站。能够让广大消费者体验到网上平台购物的乐趣,为网上购物提供了一个管理高效的、决策科学化、安全有效的电子商务平台。
关键词:乐优购物商城,MySQL,MyEclipse ,商业贸易
Nowadays, advanced science and technology have developed rapidly, and computer technology has been widely used in various fields of society. With the rapid development of computer technology and communication technology, the scale of the Internet has gradually increased, and the elements of the Internet have gradually increased. It can be used to develop communications and can also be used for commercial purposes. The Internet can be sold, acquired, and promoted on the Internet, making the Internet an indispensable element of today's society. The website is one of the very large elements in this.
Today, Leyou Shopping Mall is a very important road in commercial trade. It can be liberated from the traditional physical model. Online shopping can provide consumers with great convenience. Through the platform of Leyou Shopping Mall, users can understand the current trends and rich commodity information without leaving home, providing users with great convenience. The main functions of Leyou Shopping Mall include: product category management, product information management, order management, and user management. The website is divided into two user platforms: administrators and member users. Leyou Shopping Mall mainly uses MySQL as a database management system and the development environment is Java. This is a Web technology-based B/S structure Leyou Shopping Mall. Realized a Leyou Shopping Mall website. Can let consumers experience the fun of online platform shopping, online shopping to provide an efficient management, scientific decision-making, safe and effective e-commerce platform.
Key words: Leyou Shopping Mall, MySQL, MyEclipse, Commercial Trade
第1章 绪论
1.1 背景和研究意义
1.2 论文研究的主要内容
1.3 国内外现状
1.4 论文结构
第2章 关键技术介绍
2.1 JSP语言介绍
2.2 ssm简介
2.3 html/CSS简介
2.4 MySQL介绍
第3章 系统分析
3.1 功能需求分析
3.2数据流程分析
3.3可行性分析
3.3.1 经济可行性
3.3.2 功能可行性
3.3.3 技术可行性
第4章 系统设计
4.1体系结构设计
4.2功能模块设计
4.3数据库设计
4.3.1 概念模型设计
4.3.2 数据库表设计
第5章 系统实现
5.1数据库连接实现
5.2系统前台主要功能实现
5.2.1 首页实现
5.2.2商品分类展示实现
5.2.3商品详情实现
5.2.4购物车实现
5.3系统后台主要功能实现
5.3.1管理员登陆实现
5.3.2商品管理实现
5.3.3订单管理实现
第6章 系统测试
6.1 测试用例
6.2 测试结果分析
第7章 结 论
参考文献
致 谢
第1章 绪论
本章详细介绍了本人选择改项目做毕业设计的原因,做为当今最火的电子商务项目,本人首先从电子商务项目的开发背景和研究意义进行详细分析,然后做出电子项目研究内容的具体分析,最后从国内外乐优购物商城项目的研究现状进行详细解析。
1.1 背景和研究意义
随着21世纪以来,人们经济高速的发展,人们的生活发生了日新月异的变化,特别是计算机相关的应用已经普及到社会和经济社会的各个领域,为了让消费者的购物过程变得简单,方便,简洁,方便,网上商城购物已经成为一种新型而且热门·的购物方式,而商品无疑是顾客的选购的热点,这样来说网上销售成为新兴而热门的行业,网上销售是24个小时,只要把商品信息放到网上,就可以24小时营业了,开门市的费用低,房租和水电不用过多考虑,还有一个小仓库就可以解决问题,没有地区限制,只要是上网的用户都可以成为顾客。
乐优购物商城是一种具有交互功能的商业信息系统,而本系统作为一种销售网站,采用MySQL,运JSP语言,简单编程,用户可以自己自行浏览商品,还可以查看各个商品的简介及其评价,不仅如此,系统也提供了搜索功能,并且给予顾客更多的商品的相关介绍,并且顾客可以根据销售量及好评信息而对于选择商品也有自己的借鉴意义,新型的网上销售模式更加能不受空间时间的限制,改变传统的销售模式,顾客并且可以在短时间内找到自己想要的商品,节约了时间,提高了效率,并且网上销售系统通过将一些东西发到平台上,用户可以通过网络登上网站查看商品信息,并且提交订单来订购所需要的商品,实现在线交易,开发这样一个平台就有很大的必要,此商品开发以后不仅可以减少大量人力物力,降低了成本,而且突破了时间和空间,使得交易可以在任何时间地点进行,解决了传统销售模式的缺点,能够使得电子商务模式迅速发展并且成为当今社会的主流模式。
1.2 论文研究的主要内容
随着我国计算机互联网技术的飞速发展,,乐优购物商城系统的实施与建设,在技术与能力上已经日渐成熟。网络购物这一消费方式给人们生活带来了巨大的变化,除了购物场所的改变以外,更重要的是大大改变了传统的消费行为习惯,无论是否在网上购物,上网查看商品的相关信息,已经成为购物决策环节的重要组成部分,这一环节对购物行为的实际发生起到了至关重要的指导作用。
乐优购物商城系统是一个不断发展的新型项目,本课题的研究目的开发一个集商品管理,在线购物等功能于一体的乐优购物商城。乐优购物商城是现在商业贸易中的一条非常重要的道路,它能够让全球范围内的人在同一平台上发布自己的销售信息,同时购买到自己钟意的商品。本网站从符合界面友好、操作简单、安全、方便等前提出发充分考虑用户体验,让用户在网购体验上能达到一个较高的水平。为网上购物提供了一个管理高效的、决策科学化、安全有效的商务平台。
1.3 国内外现状
根据前期对商品销售的经营和管理模式的调查研究,基本上解了商品销售行业的整体概况。在国内,曾经商品的在线销售是为了适应市场的巨大变化而出现和发展起来的。发展至今,已形成例如:淘宝、拍拍、凡客等多个巨头争霸之势。要想在这个行业占得一席之地实属艰难。但是,这种在线销售也有些许不足:客户下单后要等待至少两到三天才能收到货,换货所耗费的时间过长。所以本系统是针对区域商品在线销售而开发的,这样在具备各大主流电商的基本优势的前提下,又弥补了长途运输耗时长的不足之处,同时又为客户提供了更加便捷的售后服务。
国内外乐优购物商城比较著名的有亚马逊、淘宝、京东商城、eBay等。这些网站的内容丰富,功能齐全(注册功能、搜索功能、在线订单功能、个人管理功能、留言功能等)。随着互联网应用的普及,国内乐优购物商城的建设、推广已经发展到一个比较高的水平。能够以便捷的网站制作系统,让客户企业通过“自助建站系统”就可以方便地完成公司网站建设的全部内容;提供多种精美的网页设计模版,提供强大的网站管理系统,做到只要会打字,就可随时管理网站内容的服务。并通过商品信息、新闻的发布,商品展示、交易等业务的扩展塑造电子商务专业网站建设专家形象,并开展信息分析、网络交易等多项业务。
1.4 论文结构
论文的第1章主要阐述了课题的背景和研究意义以及主要内容和国内外的现状。第2章介绍了制作本网站所采用的关键性技术。第3章分析了网站的功能需求、数据需求以及可行性。第4章介绍了系统的体系结构、功能模块、数据库和页面样式的设计。第5章展示了本网站的前后台以及数据库的功能实现。第6章对网站进行了系统测试并对测试结果进行分析。最后一章为进行为期半年的毕业设计过程进行总结。
第2章 关键技术介绍
本项目是通过MVC框架技术来进行设计和实现的。项目主要用到的技术有JSP,javascript,html/css等。数据库使用的是MySQL。
2.1 JSP语言介绍
JSP,超文本预处理器(Hypertext Preprocessor ),是一种通用的开源脚本语言。编程范型为面向对象和命令式编程语言,同时JSP可以在windows/Mac/linux跨平台中操作,它几乎支持所有流行的数据库。 JSP语言容纳了Java、C语言和Perl的特点,是众多开发语言中较为简单的一种开发语言,在Web开发领域中使用广泛,利于学习。
JSP拥有很多其他语言的语法特点,当然也有自己自创新的语法。JSP将程序嵌入到HTML文档中,可以将HTML写的静态网页与数据库联系在一起,形成动态网页。
2.2 ssm简介
ssm是一个轻量级组合框架,能更好的实现MVC模式,充分发挥了各自的优势。其中通过Struts在表示层中处理页面请求和转发工作;通过Spring的依赖注入(Inversion of Control,IoC)技术降低了程序之间的耦合性,也使程序员养成用接口编程的好习惯;通过Hibernate完成在持久层与数据库的交互工作。三层框架的整合形成一个结构良好、功能强大,层次清晰的框架体系。
1.Struts
Struts是一个独立的MVC模式框架,很好的实现了显示处理和业务处理逻辑之间的低耦合性。但Struts主要是针对表示层设计的,对业务逻辑方面的支持不是很强,比如事务管理、安全检查等本属于系统层面的,实现代码也穿插在整个业务逻辑中,降低了代码的可维护性,而Spring则可以很好地解决这些问题。
2.Spring
Spring也是独立的MVC模式框架,通过IoC技术,降低各组件之间的依赖,而Spring提供的面向切面编程(Aspect Oriented Programming,AOP)技术,在事务管理上具有独特优势。Spring框架不仅能有效地服务中间层对象,而且易于同其他层框架进行无缝集成,使各层之间相互独立,实现了在架构上各框架间的低耦合性。
3.MyBatis
MyBatis 是集合多种操作型关系数据库的概念和方法,它是一个强大的数据访问工具和解决方法[5]。对比 Hibernate,MyBatis 是一个半自动框架,Hibernate 则是一个全自动框架,无法直接维护 MyMySQL 。MyBatis在书写 MyMySQL 的灵活性很好,Hibernate 就不行,会比较麻烦。本文使用 MyBatis 作为海田在线商城这种多变性的项目,Hibernate 比较适合稳定的项目。而且 MyBatis 速度相对于 Hibernate 的速度要快些。
2.3 html/CSS简介
HTML全称为Hyper Text Markup Language,是一种超文本标记语言或超文本链接语言,被用来制作万维网页面的简单标记语言,它消除了计算机之间信息交流的障碍,是万维网浏览器通用的一种标准语言。它可以用很多浏览器打开。
在目前,它在网络上被广泛应用,是大众普遍接受的一种通用制作网页的语言。HTML主要用于制作静态页面,HTML命令可以说明图形信息、表格信息、文字信息、链接信息等。HTML作为制作网站最基础的语言,它主要由头部(head)和主体(body)组成,头部可以加标题,展示浏览器所需信息,主体则是包含网页显示的内容。作为最基础的语言,在HTML文件中可以插入JSP语言形成JSP文件,也可以插入JavaScript语言形成不同风格的功能特效。
2.4 MySQL介绍
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的MySQL“结构化查询语言”。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
第3章 系统分析
本章将对乐优购物商城系统进行需求分析。首先对系统进行功能需求分析,分析确定系统用户角色,分析系统所要实现的功能。然后对系统进行数据需求分析,为了更好地完成系统项目,为项目的进一步开发工作做准备,了解具体数据,有利于软件的实现。最后确定系统开发环境并且从多个角度对系统进行可行性分析。
3.1 功能需求分析
乐优购物商城共分为两个部分,一部分是面向用户的前台部分,包括:用户的注册、登陆、查看商品信息、购物、提交订单、对商品进行查询等操作。另外一部分是网站的后台管理部分,这部分包括:对普通用户的账号进行删除、更改、查询管理,商品的管理、订单的管理等。
1.商品管理用例:
商品管理功能,主要完成商品的添加、删除、更新和查看。
商品管理模块添加商品功能用例描述详见下表。
表3.1 商品管理模块添加商品功能的分解用例描述
用例名称 | 添加新商品 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行添加新商品操作 | |
前置条件 | 管理员添加新商品前必须登录系统 | |
后置条件 | 系统中添加一件新商品 | |
基本事件流 | 参与者动作 | 系统响应 |
4、管理员填写新商品信息,点击“添加”按钮。 | 2、系统打开添加新商品界面。 3、系统检查管理员输入的商品信息是正确有效的。 5、系统将商品添加到数据库中。 6、系统提示“操作成功”。 7、系统跳转到商品管理界面。 | |
其他事件流 | 1、系统验证管理员输入的商品名为空,则提示“*请填写商品名称!”。 2、系统验证管理员输入的价格不是货币格式,则提示“*价格必须是货币格式!” |
商品管理模块删除商品功能用例描述详见下表。
表3.2 商品管理模块删除商品的分解用例描述
用例名称 | 删除商品 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行删除商品操作 | |
前置条件 | 管理员删除商品前必须登录系统 | |
后置条件 | 系统中删除一件商品 | |
基本事件流 | 参与者动作 | 系统响应 |
1、管理员在后台主界面选择“商品管理”。 4、管理员选择一件商品,点击“删除”按钮。 6、管理员点击“确定”按钮。 | 2、系统从数据库中获取商品信息列表 3、系统打开商品列表界面。 5、系统提示“你确定要删除吗?”。 7、系统将商品从数据库中删除。 8、系统提示“删除成功”。 9、系统跳转到商品管理界面。 | |
其他事件流 | 无 |
2.用户管理用例:
用户管理功能,主要完成用户的删除、更新和查看。
用户管理模块修改用户信息功能用例描述详见下表。
表3.3 用户管理模块修改用户信息功能的分解用例描述
用例名称 | 修改用户 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行修改用户信息操作 | |
前置条件 | 管理员已经登录系统 | |
后置条件 | 系统中更新一条用户记录 | |
基本事件流 | 参与者动作 | 系统响应 |
1、管理员在后台主界面选择“用户管理”。 4、管理员在用户列表中选择一个用户,点击“编辑”按钮。 6、管理员填写用户信息,点击“保存修改”按钮。 | 2、系统从数据库中获取用户信息。 3、系统打开用户列表界面。 5、系统打开修改用户信息界面。 7、系统将更改后的添加到数据库中。 8、系统提示“操作成功”。 9、系统跳转到用户管理界面。 | |
其他事件流 | 无 |
商品购买功能,主要完成用户对商品进行购买、生成订单,付款,管理员管理用户的订单信息等。
商品购买模块添加购买功能用例描述详见下表。
表3.5 商品购买模块功能的分解用例描述
用例名称 | 添加购买记录 | |
参与者 | 用户 | |
用例概述 | 本用例用于用户进行对商品购买操作 | |
前置条件 | 用户已经登录系统 | |
后置条件 | 系统中增加一条用户购买记录 | |
基本事件流 | 参与者动作 | 系统响应 |
1、用户在前台首页选择任意一个商品分类。 4、管理员在用户列表中选择一件商品。 7、用户填写购买订单,点击“购买”按钮。 | 2、系统从数据库中获取商品列表信息。 3、系统打开商品列表界面。 5、系统从数据库中获取商品信息。 6、系统打开商品信息及购买界面。 8、系统检查用户输入的信息是正确有效的。 9、系统将购买记录添加到数据库中。 | |
其他事件流 | 1、系统验证用户输入的字段为空,则提示“*购买数量不能为空!”。 |
3.2数据流程分析
对本系统的数据流进行分析,得到系统数据流程图0层图,1层图,2层图,如下所示。
图3.5数据流程图(0层)
图3.5数据流程图(1层)
商品管理数据流图
图3.5数据流程图(2层)
3.3可行性分析
本网站将在经济、功能、技术这三个角度上进行可行性分析。
3.3.1 经济可行性
经济可行性分析主要是对项目的经济效益进行评价。本网站是一个在线的商品购买网站,顾客可以直接在网站上购买商品,让网站获益,通过网站的发布和推广可以让更多的人知道商品的品牌,增加访问量和关注的同时,更能吸引顾客的购买,购买数量越多网站获益也就多了。
3.3.2 功能可行性
功能可行性分析主要分析网站的功能是否可以满足用户的需求,从实际使用情况来分析,整体网站功能完整,运行速度良好,符合了浏览者的浏览习惯。为用户提供了更为方便简单的浏览环境。
3.3.3 技术可行性
技术可行性分析的目的是确认使用现有的技术能否实现系统以及对开发效率和完成情况的评估。
系统基于MVC框架开发,具有简单易学,灵活,良好的可扩展性,执行效率高,易于配置和部署等优点。使用MySQL数据库管理系统进行数据存储,具有体积小、速度快、总体拥有成本低,尤其是开放源码这一优点。
采用以上技术可以有效的保证系统成功及高效地开发。
第4章 系统设计
本章将对乐优购物商城系统进行系统设计。包括体系结构设计、功能模块设计、数据库设计和页面设计。首先确定系统的实现将采用B/S架构,根据需求分析阶段的结果设计功能模块,最后设计数据库概念模型和逻辑模型。
4.1体系结构设计
随着软件工程的不断进步和规范以及面向对象编程思想的应用,原本的双层架构已经不能满足开发者的效率上需求,因为在代码上的封装、移植、扩展、复用等操作使得双层架构难以招架,因此才有三层架构的出现,问题迎刃而解。什么叫三层架构呢?指的是表示层、组件层、数据访问层。组件层是双层架构没有的,它的加入,把复杂的问题分解得更简单、明了,通过组件层,实现控制数据访问层,这样达到功能模块易于管理、易于访问等目的,例如在一个网站的登录功能上,开发者可以分为登录界面模块,登录控制器模块、登录数据访问查询模块等三个模块,登录界面指的是表示层,登录控制器就是组件层,它将开发者的逻辑思想实现出来,然后调用数据访问层,登录数据访问查询模块就是数据访问层。
表示层又叫UI层,指的是用户和软件的交换界面,是可视化的,例如安卓app的xml布局文件和网页的html文件等。在基于B/S模式中,有两个方面的优势。一,使用浏览器作为客户端的操作界面,它的优点是用户界面统一,用户操作便利。二,对于软件开发人员来说,可以将开发的重点放在后台事务的处理方面,前台的细节可以忽略,这样可以大大的提高了系统开发的效率。另外,系统必须拥有良好的界面,一方面考虑到系统用户的操作便利,另一方面考虑到系统的动态性。一般系统的主要界面包括以下几个组成部分:网站登陆界面、网站主界面、各个主要功能模块的界面等。
业务逻辑层(Business Logic Layer)主要负责数据传递的功能。一方面,业务逻辑层响应用户表示层的请求后,从数据访问层中获取所需要的数据,接着在表示层中显示出来。另一方面,业务逻辑层可以接受表示层提交的数据进行业务逻辑的处理,然后提交给数据访问层,实现数据的增删改等数据操作,实际上,业务逻辑层是表示层和数据访问层之间交互的枢纽。
数据访问层(Data access layer)是系统的最基本的层次,用来与数据库进行数据交换,包括数据的增删改查等操作,显然如果没有数据访问层,软件将只是个空壳,可以说数据访问层是软件的灵魂,当今软件的开发过层中,数据访问层基本都可以自动生成数据操作的逻辑代码,节省了开发人员的开发时间。
4.2功能模块设计
通过软件的需求分析已经获得了系统的基本功能需求。根据面向对象的不同系统分为前台普通用户界面和后台管理界面。系统功能结构如下图所示。
图3.1 乐优购物商城功能层次图
前台子系统为用户提供注册、登陆的功能,以及浏览商品,购买商品,提交订单后采用模拟的金额支付,实现商品的购买流程。后台子系统供网站内部管理人员使用,可以添加新的商品、商品修改和调整,商品种类维护,可以对用户进行管理。对用户的订单进行管理发货等等。
1. 前台模块设计:
- 注册功能。用户首先要进行注册成为网站的用户,注册时需填写用户名、邮箱号、密码3项信息,然后点击“注册”按钮。如果注册成功,则提示注册成功并转到用户登录界面,同时用户信息会被写进数据库中的用户表中。如果注册失败,则会提示失败原因。用户注册成功后就可以登陆了。
- 登陆功能。如果用户是网站的已注册用户,在购买商品前需要填写邮箱号和密码,之后点击“登陆”按钮,之后系统会将用户填入的信息与数据库中用户注册时填写的信息进行比对,如果一致的话网站将会跳转到首页用户即可享受到网站的购买商品。如果用户填写的信息有误,网站将会提示用户输入的信息有误。
- 商品展示功能。网站将所有商品信息从数据库中提取出来显示在网站中,用户可以浏览网站,将自己心怡的商品放入购物车中,这是系统会提取该商品的信息并将信息加入购物车表中。
- 购物车功能。当用户选择完商品后可以进入购物车页面,系统会从购物车表中提取用户的购物车信息并显示出来,用户可以在这里查看自己要购买的商品,也可以取消购买某商品,这时该商品的信息会从购物车表中删除。
- 订单生成功能。在购物车模块,当用户确定所买的商品后,单击“订单生成”的功能,进入订单的界面。在结账界面,系统会将购物车表中的商品信息显示在订单中并根据用户购买的数量和商品的单价计算出用户购买的商品的总价,接下来只需要用户填写收货信息选择付款和发货方式并点击“确认提交订单”按钮。确认后产生将订单,系统会将订单信息插入数据库中的订单表和订单商品表中,并进入支付页面。
2.后台模块设计:
- 用户管理功能。管理员在后台首页点击用户管理就会进入用户列表页面,系统会将数据库中的用户信息以列表的形式显示出来,管理员可以在这个页面进行用户的更新和删除操作,系统可以将最新更新的信息重新写入用户表中并替换原信息,也可以将用户的信息从数据表中删除。
- 商品类别管理功能。管理员在后台点击商品分类按钮会进入商品分类界面,系统会将数据库中的商品分类信息以列表的形式展现出来,管理员可以对商品的分类进行排序,也可以在该页面点击添加新分类、编辑和删除按钮,同时系统会在数据库中对商品分类表中的数据进行相应的新增,更新和删除。
- 商品信息管理功能。管理员在后台点击商品管理就会进入商品管理界面,系统会将数据库中的商品信息以列表的形式显示出来,管理员可以在该界面对商品进行添加、更新和删除的操作。在新增时,如果添加成功系统会提示新增成功同时将新商品信息添加进数据库中的商品表,如果添加失败,系统会提示失败的原因。当管理员对商品信息进行更新时,数据表中的商品信息也会随之更新。管理员删除商品,数据表中相应的商品信息也会随之删除。
- 客户购物管理功能。管理员在后台点击订单管理就会进入订单管理界面,系统会从数据库中将订单信息提取出来,依列表的形式展现出来。管理员可以在该界面对订单的发货状态进行更改也可以删除订单,同时数据库中订单表中的订单状态也会更新,或者删除订单数据。
- 新闻管理功能。网站会不定时的更新一些有关于时尚潮流趋势的新闻,用户也可以浏览这些新闻从中了解近期的时尚资讯。管理员在后台点击编辑新闻就会进入编辑新闻界面,系统会将新闻数据表中的数据提取出来显示在页面上,管理员可以在这里修改新闻,然后点击“保存修改”按钮进行保存,然后系统会同步更新新闻表中的内容并提示更新成功。
- 商品资讯管理:管理员发布商品资讯后,普通用户便可以查询到该商品资讯,用户选择某个商品资讯,查询商品资讯,管理员审核添加,或删除商品资讯。
- 购买须知管理功能。网站会不定时的更新一些有关于时尚潮流趋势的新闻,用户也可以浏览这些新闻从中了解近期的购买须知。管理员在后台点击编辑新闻就会进入编辑新闻界面,系统会将新闻数据表中的数据提取出来显示在页面上,管理员可以在这里修改新闻,然后点击“保存修改”按钮进行保存,然后系统会同步更新新闻表中的内容并提示更新成功。
4.3数据库设计
4.3.1 概念模型设计
本小节将设计数据库的逻辑结构,包括所需的实体和关系,实体规范化等工作,主要反映业务逻辑。
根据需求分析可以得到的实体有:用户、商品、商品类别、购物车、订单。系统E-R图如下图所示。
图3.5系统E-R图
4.3.2 数据库表设计
将概念模型转换成数据库表,得到如下几张表。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | username | 150 | 255 | |||
3 | pwd | 150 | 255 | |||
4 | cx | 150 | 255 | |||
5 | addtime | DateTime | 8 | 19 |
dingdanxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | dingdanbianhao | 150 | 255 | |||
3 | jine | 150 | 255 | |||
4 | dingdanneirong | 1073741823 | 255 | |||
5 | yonghuming | 150 | 255 | |||
6 | xingming | 150 | 255 | |||
7 | shouji | 150 | 255 | |||
8 | dizhi | 150 | 255 | |||
9 | beizhu | 1073741823 | 255 | |||
10 | issh | 30 | 255 | |||
11 | iszf | 30 | 255 | |||
12 | addtime | DateTime | 8 | 19 |
dx表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 10 | ||
2 | leibie | 150 | 255 | |||
3 | content | 1073741823 | 255 |
goumaijilu表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | shangpinbianhao | 150 | 255 | |||
3 | shangpinmingcheng | 150 | 255 | |||
4 | leibiemingcheng | 150 | 255 | |||
5 | jiage | 150 | 255 | |||
6 | kucun | 150 | 255 | |||
7 | goumaishuliang | 150 | 255 | |||
8 | jine | 150 | 255 | |||
9 | beizhu | 1073741823 | 255 | |||
10 | goumairen | 150 | 255 | |||
11 | issh | 30 | 255 | |||
12 | addtime | DateTime | 8 | 19 |
liuyanban表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | cheng | 150 | 255 | |||
3 | xingbie | 150 | 255 | |||
4 | | 150 | 255 | |||
5 | youxiang | 150 | 255 | |||
6 | shouji | 150 | 255 | |||
7 | neirong | 1073741823 | 255 | |||
8 | huifuneirong | 1073741823 | 255 | |||
9 | addtime | DateTime | 8 | 19 |
pinglun表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 10 | ||
2 | xinwenID | 1073741823 | 255 | |||
3 | pinglunneirong | 1073741823 | 255 | |||
4 | pinglunren | 1073741823 | 255 | |||
5 | addtime | DateTime | 8 | 19 | ||
6 | biao | 150 | 255 | |||
7 | pingfen | Int | 4 | 10 |
shangpinleibie表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | leibiemingcheng | 150 | 255 | |||
3 | addtime | DateTime | 8 | 19 |
shangpinxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | shangpinbianhao | 150 | 255 | |||
3 | shangpinmingcheng | 150 | 255 | |||
4 | leibiemingcheng | 150 | 255 | |||
5 | tupian | 150 | 255 | |||
6 | jiage | 150 | 255 | |||
7 | kucun | 150 | 255 | |||
8 | shangpinjieshao | 1073741823 | 255 | |||
9 | issh | 30 | 255 | |||
10 | addtime | DateTime | 8 | 19 |
shoucangjilu表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 10 | ||
2 | username | 1073741823 | 255 | |||
3 | xwid | 1073741823 | 255 | |||
4 | biao | 1073741823 | 255 | |||
5 | addtime | DateTime | 8 | 19 | ||
6 | ziduan | 1073741823 | 255 | |||
7 | biaoj | 1073741823 | 255 |
xinwentongzhi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | biaoti | 150 | 255 | |||
3 | leibie | 150 | 255 | |||
4 | neirong | 1073741823 | 255 | |||
5 | shouyetupian | 150 | 255 | |||
6 | dianjilv | 150 | 255 | |||
7 | tianjiaren | 150 | 255 | |||
8 | addtime | DateTime | 8 | 19 | ||
9 | ddd | DateTime | 8 | 19 |
yonghuzhuce表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | yonghuming | 150 | 255 | |||
3 | mima | 150 | 255 | |||
4 | xingming | 150 | 255 | |||
5 | xingbie | 150 | 255 | |||
6 | chushengnianyue | DateTime | 8 | 19 | ||
7 | | 150 | 255 | |||
8 | youxiang | 150 | 255 | |||
9 | shouji | 150 | 255 | |||
10 | shenfenzheng | 150 | 255 | |||
11 | touxiang | 150 | 255 | |||
12 | dizhi | 150 | 255 | |||
13 | beizhu | 1073741823 | 255 | |||
14 | issh | 30 | 255 | |||
15 | addtime | DateTime | 8 | 19 |
youqinglianjie表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | wangzhanmingcheng | 150 | 255 | |||
3 | wangzhi | 150 | 255 | |||
4 | addtime | DateTime | 8 | 19 | ||
5 | logo | 1073741823 | 255 |
第5章 系统实现
乐优购物商城分为前台用户购物子系统和后台管理系统。本章节只要详细分析了该系统的数据库连接和系统各功能模块的实现过程和实现方法。在网站前台,用户通过操作表示层页面,页面调用业务逻辑层的对象方法,来操作数据库,实现相应的功能。
5.1数据库连接实现
目前的数据库包括MySQL、SQL、PgSQL、Oracle、Ibase以及PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息。
在项目的配置文件Config/config.JSP 文件里,增加以下数据库配置选项即可达到数据库连接目的:
<? JSP
return array(
//'配置项'=>'配置值'
'DB_TYPE' => 'MySQL', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => dzswwz', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '123456', // 密码
'DB_PORT' => 3306, // 端口
'DB_PREFIX' => 'tp_', // 数据库表前缀
'DB_CHARSET'=> 'utf8', // 字符集
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录MySQL日志 3.2.3新增
5.2系统前台主要功能实现
5.2.1 首页实现
首页是网站的入口,主要包含了:LOGO、导航、Banner、以及热卖商品推荐等功能。首页页面,如下图所示。
图5.1 首页页面图
首页主要代码如下:
title>易买得乐优购物商城</title>
<LINK href="images/style.css" type=text/css rel=stylesheet>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>
<BODY leftMargin=5 topMargin=5 rightMargin=5>
<table width="100%" height="210" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#D9E9FF" style="border-collapse:collapse">
<TBODY>
<TR
align=middle bgColor=#ffffff>
<td colspan="4" bgColor=#CADCEA><strong>系统基本信息</strong></td>
首页热卖商品推荐部分主要是显示被网站推荐的商品,可以让用户刚进入网站便可以了解网站近期主推的商品,实现功能的部分代码如下:
商品信息</title>
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js" charset="gb2312"></script>
</head>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
int count = 0;
for(HashMap map:new CommDAO().select("select id,fid,fname from hsgwuxianfenlei order by id asc"))
{
%>
subcat[<%=count%>] = new Array("<%=map.get("fname")%>","<%=map.get("fid")%>","<%=map.get("id")%>");//产生数组
<%
count = count + 1;
}
%>
5.2.2商品分类展示实现
商品分类展示页是根据分类展示网站商品的页面,当用户在导航上选择一种商品分类时,系统会将被选中的分类项的id,然后用MySQL语句拼接,从数据库选出该分类id下的所有商品,只会遍历出来,放入<td>中MySQL语句="select shangpinmingcheng,id,tupian,jiage,addtime from shangpinxinxi order by addtime desc"。
商品分类展示页面,如下图所示。
图5.2 商品分类展示页面图
商品分类展示主要代码如下:
商品类别</title>
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js" charset="gb2312"></script>
<script type="text/javascript" src="js/popup.js"></script>
</head>
<%
String id="";
%>
5.2.3商品详情实现
商品详情页向用户展示商品详细信息的页面,用户可以在商品分类展示页或者在网站任意一个商品类别的页面中选择一件商品,系统将商品的id通过GET方法传递到shangpinxinxidetail.JSP中的detail方法中,然后通过M方法实例化模型,传入到shangpin表中连接信息,获取到该id的商品信息,最后将信息反馈到Goods类的shangpinxinxidetail.html界面上。
商品详情页面,如下图所示。
图5.3商品详情页面图
商品详情主要代码如下:
商品信息</title>
<link rel="stylesheet" href="kindeditor_a5/themes/default/default.css" />
<link rel="stylesheet" href="kindeditor_a5/plugins/code/prettify.css" />
<script charset="utf-8" src="kindeditor_a5/kindeditor.js"></script>
<script charset="utf-8" src="kindeditor_a5/lang/zh_CN.js"></script>
<script charset="utf-8" src="kindeditor_a5/plugins/code/prettify.js"></script>
<script>
KindEditor.ready(function(K) {
var editor1 = K.create('textarea[name="xiangqing"]', {
cssPath : 'kindeditor_a5/plugins/code/prettify.css',
uploadJson : 'kindeditor_a5/jsp/upload_json.jsp',
fileManagerJson : 'kindeditor_a5/jsp/file_manager_json.jsp',
allowFileManager : true,
afterCreate : function() {
var self = this;
K.ctrl(document, 13, function() {
self.sync();
document.forms['example'].submit();
});
K.ctrl(self.edit.doc, 13, function() {
self.sync();
document.forms['example'].submit();
})
5.2.4购物车实现
购物车是用户用于暂时存放所选心怡商品的页面,当用户对某一件商品产生购买欲望的时候,用户可以进入该商品的商品详情页面选择想要购买的数量颜色等属性,然后点击“加入购物车”按钮,用户选择的该商品的信息就会通过POST方法传递到goumaijilu_add_post.JSP中的addCar方法中,然后系统根据用户登陆时保存到Session的用户id迅速为该用户在数据库中的cart表中添加一条购物车信息,并将该信息反馈到前台的index.html页面上。用户可以通过点击页面右上角的购物车图标来进入购物车页面查看购物车中的商品。
购物车页面,如下图所示。
图5.4 购物车页面图
购物车主要代码如下:
购买记录</title>
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js" charset="gb2312"></script>
<script type="text/javascript" src="js/popup.js"></script>
</head>
<%
String id="";
id=request.getParameter("id");
HashMap mlbdq = new CommDAO().getmap(id,"shangpinxinxi");
String bianhao="";
String mingcheng="";
String leibie="";
String jiage="";
String faburen="";
bianhao=(String)mlbdq.get("bianhao");
mingcheng=(String)mlbdq.get("mingcheng");
leibie=(String)mlbdq.get("leibie");
jiage=(String)mlbdq.get("jiage");
faburen=(String)mlbdq.get("faburen");
%>
5.3系统后台主要功能实现
5.3.1管理员登陆实现
管理员登陆页是后台管理员进入后台管理各项数据必经的页面。管理员输入的账号密码经过后台的Login.JSP的login方法中通过M方法实例化模型,传入到allusers表中连接信息,通过与表中的信息进行比对确定管理员能否登陆。
管理员登陆页面,如下图所示。
图5.5 管理员页面图
登录系统主要代码如下:
易买得乐优购物商城</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
*{overflow:hidden; font-size:9pt;}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
background-repeat: repeat-x;
background-color: #D4D8E3;
}
.STYLE8 {color: #A1A8D2}
.STYLE7 {color: #FFFFFF}
.STYLE9 {color: #000000; font-size:12px}
-->
</style>
</head>
<script type="text/javascript">
<%
String error = (String)request.getAttribute("error");
if(error!=null)
{
%>
alert("用户名或密码错误");
<%}%>
5.3.2商品管理实现
用户在网站后台点击添加商品,跳转至shangpin_add.jsp页面,填写好表单参数,提交至shangpin_add_post.jsp页面,然后又shangpin_add_post.jsp操作数据库,完成商品的添加。首先管理员点击进入普通商品列表shangpinxinxi_list.jsp,可以选择删除、或者修改,如果管理员点击删除,则将通过js提示管理员是否删除onClick="return confirm('真的要删除?')",如果删除后将请求sh.jsp进行数据库数据删除,如果管理员选择修改商品信息,将跳转至shangpinxinxi_updt2.jsp,然后管理员修改后,页面请求shangpinxinxi_updt2_post.jsp来操作数据库完成商品信息的修改。
商品管理页是管理员管理商品的页面,管理员在这里可以对网站中的商品进行添加、删除、更新以及查看操作。
商品管理页面,如下图所示。
图5.6 商品管理页面图
商品管理主要代码如下:
商品信息</title>
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js" charset="gb2312"></script>
</head>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
int count = 0;
for(HashMap map:new CommDAO().select("select id,fid,fname from hsgwuxianfenlei order by id asc"))
{
%>
subcat[<%=count%>] = new Array("<%=map.get("fname")%>","<%=map.get("fid")%>","<%=map.get("id")%>");//产生数组
<%
count = count + 1;
}
%>
5.3.3订单管理实现
注册用户购买商品,生成订单后,用户可以查询个人订单情况,查询个人订单是否被管理员接单,并审核,也可以取消订单,管理员对所有购买订单进行管理,审核订单,查询订单,删除订单,修改订单。
订单管理页面,如下图所示。
图5.9订单管理页面图
订单管理主要代码如下:
订单信息</title>
<!--bixanjxiqxi-->
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js" charset="gb2312"></script>
<script type="text/javascript" src="js/popup.js"></script>
</head>
<%
String id="";
%>
第6章 系统测试
软件需要按照测试方案和测试流程对软件的性能和功能进行测试。系统测试是通过执行程序来发现系统中的错误。测试和开发需要同步进行。
6.1 测试用例
用户登录功能测试,如表6.1所示。
表6.1 用户登录功能测试用例表
用例编号 | 用例名称 | 测试功能 | 输入 | 操作过程 | 预期输出 | 测试结果 |
LO_1 | 用户登录模块测试 | 正确输入用户信息,用户成功登陆。 | 用户的信息 | 1.在电子邮箱输入框输入用户的电子邮箱。2.在密码框输入用户的密码。3.点击登陆按钮。 | 跳转到首页界面 | 正确 |
用户注册功能测试,如表6.2所示。
表6.2 用户注册功能测试用例表
用例编号 | 用例名称 | 测试功能 | 输入 | 操作过程 | 预期输出 | 测试结果 |
RE_1 | 用户注册模块测试 | 正确输入用户信息,完成用户的注册。 | 用户的基本信息 | 用户在网站的注册页面根据提示填写相应的信息,然后点击“注册”按钮。 | 提示成功并跳转到登陆界面。 | 正确 |
RE_2 | 用户注册模块测试 | 用户注册失败的情况 | 用户不填写用户名 | 用户在网站的注册页面根据提示填写除了用户名以外相应的信息,然后点击“注册”按钮。 | 注册失败,提示“*用户名不符合要求”。 | 正确 |
RE_3 | 用户注册模块测试 | 用户注册失败的情况 | 用户两次输入密码不一致 | 用户在网站的注册页面根据提示填写相应的信息,填写密码时两次输入的密码不一致,然后点击“注册”按钮。 | 注册失败,提示“*两次输入密码不一致”。 | 正确 |
商品信息界面测试,如表6.3所示。
表6.3 商品信息界面测试用例表
用例编号 | 用例名称 | 测试功能 | 输入 | 操作过程 | 预期输出 | 测试结果 |
GINFO_1 | 商品信息显示功能模块测试 | 商品信息显示的正常情况 | 在网站的首页选择一个商品分类进入商品分类列表页,然后选择一件商品。 | 进入商品信息界面 | 正确 |
加入购物车功能测试,如表6.4所示。
表6.4 加入购物车功能测试用例表
用例编号 | 用例名称 | 测试功能 | 输入 | 操作过程 | 预期输出 | 测试结果 |
ADDCART_1 | 加入购物车功能测试 | 商品加入购物车成功场景。 | 在网站的商品信息页选择商品点击“加入购物车”按钮。 | 界面提示“有一件商品加入购物车!” | 正确 |
管理员添加商品功能测试,如表6.6所示。
表6.6管理员添加商品功能测试用例表
用例编号 | 用例名称 | 测试功能 | 输入 | 操作过程 | 预期输出 | 测试结果 |
ADDG_1 | 管理员添加商品功能测试 | 添加商品成功的情况。 | 新商品的基本信息。 | 管理员在后台首页选择“新商品”选项,然后填写新商品信息,点击“添加”按钮。 | 新商品添加成功。 | 正确 |
ADDG _2 | 管理员添加商品功能测试 | 添加商品失败的情况。 | 管理员不填写商品名称。 | 管理员在后台首页选择“新商品”选项,然后填写除商品名称以外的新商品信息,点击“添加”按钮。 | 添加失败,提示“*请填写商品名称!”。 | 正确 |
ADDG _3 | 管理员添加商品功能测试 | 添加商品失败的情况。 | 管理员在价格框输入非数字字符。 | 管理员在后台首页选择“新商品”选项,然后填在价格框输入非数字字符,点击“添加”按钮。 | 添加失败,提示“*价格必须是货币格式!”。 | 正确 |
6.2 测试结果分析
在网站完成后,及时的对网站进行一系列的测试,通过一次次的测试来去发现程序中的问题。首先对各个功能模块进行了独立的测试。然后再对整个网站进行测试。测试用户的登陆和注册功能,商品的显示、购买,以及管理员在网站后台对网站的各部分进行管理,根据测试结果得知各个功能模块都达到了设计的要求。各个模块在整个系统中都能完成各自的功能,相互之间的连接也很顺利。对数据库的增加、删除、更新、查看操作也都能够顺利的完成。经过测试整个网站的功能都达到了预期的要求。在测试过程中发现的程序错误等也得到了及时的解决,从而保证了后期系统的稳定运行。
第7章 结 论
本文对乐优购物商城的研究背景、现状和意义进行分析,研究了乐优购物商城设计的相关技术和开发工具,在对网站功能分析、性能分析和安全分析的基础上,建立了乐优购物商城的整体设计方案,对乐优购物商城主要功能模块和数据库进行了详细的设计,重点实现了乐优购物商城的用户模块和管理员模块。网站经过测试运行后达到设计要求。
本网站是基于MVC框架开发,使用的数据库为MySQL,以此为基础构建了三层架构的乐优购物商城。网站充分考虑到客户的需求,最终实现了预期效果,并使万丈更加的美观和人性化。乐优购物商城主要功能有用户的登陆注册,商品的浏览、购买和支付,以及管理员在后台管理网站的商品、用户、订单等各项内容。但是,网站还存在许多不足的地方,受到个人能力和相关技术的限制没能对已完成的功能模块进行更深层次的开发和优化,这都是后期开发的主要工作。
在整个网站的编写过程中,充分体会到编程人员的辛苦,因为每一个细微的细节都必须十分注意,如果稍有偏差,则会造成很多麻烦,而且往往很多时候,对于查找错误的所在会产生很大的困扰,这是对意志品质的考验。由于在知识、经验方面都很是不足,同时整个开发的时间比较短,因此网站必定存在很多不足之处,比如实现功能上不够细化,不够详细,页面不够美观等,所以有待以后经过学习后更加完善它。尽自己最大的努力来完成这个网站。
由于本网站设计只是实现了商品管理,在线购物等信息交流互动功能的一个小型平台,在实际应用时还不够完善。有些功能的实现也不是很完美,只是大致按照流程来实现,同时很多功能还需要改进,这样才能更好的方便时尚爱美人士以及网站会员的使用,网站在这一方面还有待改进。
参考文献
[1] 付森,石亮.MySQL开发与实践[M],人民邮电出版社,2014
[2] 罗宾·尼克松.Learning JSP,MySQL,JavaScript和CSS(第二版)[M],中国电力出版社,2014
[3] 于广.JSP项目开发实战密码[M],清华大学出版社,2015
[4] 乌尔曼.深入理解JSP:高级技巧、面向对象与核心技术[M],机械工业出版社,2014
[5] 桑德.Learning JSP设计模式[M],中国电力出版社, 2014
[6] 唐俊.JSP+MySQL网站开发技术(项目式) [M],人民邮电出版社,2013,220-230
[7] 郑阿奇.MySQL实用教程(第2版)[M],电子工业出版社,2014,110-120
[8] 仲林林.JSP+MySQL开发技术详解[M],中国铁道出版社,2013,30-50
[9] 欧雪冰.诗意的边缘:JSP顶级框架Zend Framework开发实战[M],电子工业出版社,2012,40-54
[10] Marc Rochkind.Expert JSP and MySQL: Application Design and Development (Expert's Voice in Web Development) [M],Apress,2013
致 谢
通过近段时间的不懈努力,我的毕业设计终于完成了,这也意味着四年的大学生活也即将结束。虽然四年的学习生活将划上一个句号,但于我的人生来说却仅仅只是一个逗号,我将面对新的征程的开始。在这次的毕业设计中发挥了我在学校近四年学到的文化只是和技能,也算是我最后一次做学校的作业了。从选择毕业设计题目,到毕业设计规划,查找相关资料,设计模型,具体实施,结束论文,整个大致的流程中,我的导师都给予了我耐心的指导和默默的关心,在我的指导老师的亲切关怀和耐心的指导下完成的。我要感谢我的指导老师。是她们用心为我营造一种良好的学术氛围,让我的论文更加的严谨。
最后,再次对那些在论文完成过程中,关心、帮助我的同学和朋友们表示衷心地感谢!