赞
踩
目 录
现如今我们正在处于一个神奇的科技时代,各种高新技术产品喷涌而出改变着我们日常的生活,尤其是数码类的产品以其独有特性潜移默化的改变着我们的日常生活,数码市场也是快速的发展,数码商城不仅给用户带来了种类丰富的数码产品也给用户带来了方便快捷的购买体验。
基于SSM的数码商城的设计与实现
现如今,人们越来越倾向于网上购物,这种方便快捷的方式。随着科学技术的发展,各种数码产品层出不穷,极大地吸引客户的购买。正是在这样的环境下,数码商城应运而生。
数码商城可以满足人们在线上对数码产品的购买需要,操作简单,使用方便。用户进入数码商城之后,可以在首页浏览商品的分类和推荐的商品。点击分类的数码商品图标,即可进入对应分类的商品列表。右上角可以进行登录或注册操作,若用户没有登录,则不能对商品进行添加购物车或立即购买的操作。导航栏的功能有首页、购物车、我的订单、个人中心等,点击会进入对应的也买你。点击商品会进入到商品详情页面,可以对商品进行添加购物车或立即购买的操作。用户在购物车页面,可以对购物车里面的商品进行购买或移出购物车,在我的订单页面,可以进行退款操作。在个人中心里面,用户可以查看个人资料信息,对个人资料进行修改,用户还可以进行退出登录的操作。若是用户忘记了密码,可以在登录界面点击忘记密码,即可通过验证,来对密码进行修改。
IDEA全称IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web应用服务器。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
Navicat Premium是一套可创建多个连接的数据库管理工具,用以方便管理MySQL、Oracle、PostgreSQL、SQLite、SQLServer、MariaDB和MongoDB等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud和Mongo DB Atlas等云数据库兼容。你可以创建、管理和维护数据库。Navicat Premium的功能足以满足专业开发人员的所有需求,但是对数据库服务器初学者来说又简单易操作。Navicat Premium的用户界面(GUI)设计良好,让你以安全且简单的方法创建、组织、访问和共享信息。
Visual Studio Code(简称V S Code)是Microsoft开发的代码编辑器,是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。然后将其余部分留给IDE。V S Code集成了所有一款现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、以及代码片段收集等。它支持Windows,Linux和macOS等操作系统以及开源代码。它支持测试,并具有内置的Git版本控制功能以及开发环境功能,例如代码完成(类似于IntelliSense),代码段和代码重构等。编辑器支持用户定制的配置,例如仍在编辑器中时,可以更改各种属性和参数,例如主题颜色,键盘快捷键等,内置的扩展程序管理功能。
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,Free Maker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。
Thymeleaf支持Spring Expression Language语言作为方言,也就是SpEL,在学习JSP时我们对EL表达式都有一定的认识了,SpEL是可以用于Spring中的一种EL表达式。
Layui是一套开源的Web UI解决方案,采用自身经典的模块化规范,并遵循原生HTML/CSS/JS的开发方式,常适合网页界面的快速开发。Layui区别于那些基于MVVM 底层的前端框架,它更多是面向后端开发者,无需涉足前端各种工具,只需面对浏览器本身,让一切所需要的元素与交互。
数码商城在性能上达到如下需求:
操作界面设计合理美观,界面简洁易懂,符合人机交互工程学。可以满足不同用户的需求,实现对用户购买信息与个人资料的管理与维护。服务器要运行稳定高效,前后台的数据要交互流畅。
登录页面,用户可进行登录等操作,在忘记密码的情况下可跳转至用户修改密码页面。
注册页面,用户可进行注册操作。
用户修改密码页面,用户通过手机号,输入新密码进行密码的修改。
首页可以浏览数码商城商品分类信息和推荐的数码商品信息。
商品分类页面,用户可以查看对应商品分类的商品列表。
商品搜索页面,用户可以通过输入商品名称,来对所有商品进行模糊查询,将查询到的结果显示出来。
商品详情页面,用户可以对商品进行添加购物车或立即购买的操作。
购物车页面,用户可以对满意的商品进行购买,或者对不满意的商品移出购物车。
我的订单页面,用户可以查看个人订单信息,可以对不满意的订单进行退款操作。
个人中心页面,用户可以更换头像,修改昵称、性别、收货地址,还可以进行退出登录的操作。
人类在复杂的工程技术系统如能源、交通等建设方面,积累了丰富的经验,为研究复杂系统如管理系统提供了科学的指导性方法论,其主要原则如下:
(1)整体性原则。系统是相互联系,相互作用的诸要素组成的综合体。我们必须从整体和各组成部分的相互关系来考察事物,从整体目标和功能出发,正确处理系统各组成部分之间的相互关系和相互作用。
(2)分解—协调原则。就是把复杂问题化成若干相对简单的子问题以方便求解。若子系统的问题比较复杂,还可以再分。但在处理各类子问题时,必须根据系统的整体功能和目标,协调各子系统的行为、功能与目标,以保证整体功能目标的实现。
(3)目标优化原则。所谓目标优化原则对简单的系统来说,是求最优解,对复杂系统来说,求的是满意解。一定要注意,目标优化原则并不简单是求最优解的问题。
这里最需要指出的是:以上三原则是系统方法中处理复杂系统问题的三个主要原则,并非是全部原则。在处理实际问题时,还需要在这些原则的指导下,根据问题的特点,确定求解的具体方法和策略。
登录注册页面,用户可进行注册或登录等操作。用户修改密码页面,用户通过手机号,输入新密码进行密码的修改。用户登录后可以看到,数码商城主要分为首页、商品分类、购物车、我的订单、个人中心五大页面部分。用户可以在首页可以浏览数码商城推荐的数码商品信息。商品分类页面,用户可以查看对应商品分类的商品列表。商品详情页面,用户可以对商品进行添加购物车或立即购买的操作。购物车页面,用户可以对满意的商品进行购买,或者对不满意的商品移出购物车。我的订单页面,用户可以查看个人订单信息,可以对不满意的订单进行退款操作。个人中心页面,用户可以更换头像,修改昵称、性别、收货地址,还可以进行退出登录的操作。
数据库是由一对多对多联系的数据表组成,本数据库利用MySQL实现并完成数据库的设计,在本系统中包括如下:确定数据库内所有数据表的名称及表内所含字段的名称、类型、长度、主键及是否为空;确定数据库文件是否需要建立索引、是否具有外键等。系统的数据库设计,如图2-1所示。
图2-1 系统的数据库设计图
1.用户表(user)用于存储用户的相关信息内容,如表2-1所示:
表2-1 用户信息表
序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
1 | uid | 用户id | int | 主键,自增 | |
2 | phone | 手机号 | varchar | 25 | 无 |
3 | password | 密码 | varchar | 255 | 无 |
4 | user_name | 昵称 | varchar | 255 | 无 |
5 | gender | 性别 | varchar | 25 | 无 |
6 | address | 收货地址 | varchar | 255 | 无 |
7 | img_url | 头像路径 | varchar | 255 | 无 |
2.商品表(goods)用于存储商品的相关信息,如表2-2所示:
表2-2 商品信息表
序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
1 | gid | 商品id | int | 主键,自增 | |
2 | goods_name | 名称 | varchar | 255 | 无 |
3 | price | 价格 | varchar | 25 | 无 |
4 | sort | 类别 | int | 无 | |
5 | img_url | 图片路径 | varchar | 255 | 无 |
3.购物车信息表(cart)用于存储购物车的相关信息,如表2-3所示:
表2-3 购物车信息表
序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
1 | sid | 购物车id | int | 主键,自增 | |
2 | uid | 用户id | int | 无 | |
3 | gid | 商品id | int | 无 |
4.订单信息表(orders)用于存储订单的相关信息,如表2-4所示:
表2-4 订单信息表
序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
1 | oid | 订单id | int | 主键,自增 | |
2 | uid | 用户id | int | 无 | |
3 | gid | 商品id | int | 无 |
5.商品分类信息表(sort)用于存储商品分类的相关信息,如表2-5所示:
表2-5 商品分类信息表
序号 | 字段名称 | 字段说明 | 类型 | 位数 | 属性 |
1 | sid | 分类id | int | 主键,自增 | |
2 | sort_name | 分类名称 | varchar | 255 | 无 |
3 | img_url | 图片路径 | varchar | 255 | 无 |
用户进入数码商城后,如果没有登录,则不能进行加入购物、购买商品、修改个人信息等操作。如图3-1所示:
图3-1 数码商城登录页面
用户在注册页面,可以进行注册账号的操作。如图3-2所示:
图3-2 数码商城注册页面
如果用户登录是忘记密码,可以进入修改密码页面,输入手机号和新密码进行修改密码。如图3-3所示:
图3-3 数码商城修改密码页面
首页可以浏览数码商城商品分类信息和推荐的数码商品信息。如图3-4、3-5、3-6所示:
图3-4 数码商城首页面
图3-5 数码商城首页面
图3-6 数码商城首页面
商品分类页面,用户可以查看对应商品分类的商品列表。如图3-7所示:
图3-7 数码商城分类页面
商品搜索页面,用户可以通过输入商品名称,来对所有商品进行模糊查询,将查询到的结果显示出来。如图3-8所示:
图3-8 数码商城搜索页面
商品详情页面,用户可以对商品进行添加购物车或立即购买的操作。如图3-9所示:
图3-9 数码商城商品详情页面
购物车页面,用户可以对满意的商品进行购买,或者对不满意的商品移出购物车。如图3-10所示:
图3-10 数码商城购物车页面
我的订单列表页面,用户可以查看个人订单信息,可以对不满意的订单进行退款操作。如图3-11所示:
图3-11 数码商城我的订单页面
个人中心页面,用户可以更换头像,修改昵称、性别、收货地址,还可以进行退出登录的操作。如图3-12所示:
图3-12 数码商城个人中心页面
为了更好的完成每个模块的功能测试,运用到了单元测试等一系列的方法。本系统的测试主要采用黑盒测试中的功能测试,测试用例设计采用等价类划分进行设计。测试情况如下:
登录页面,用户可进行登录操作,在忘记密码的情况下可跳转至用户修改密码页面。如表4-1所示:
表4-1用户登录页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
验证用户输入信息 | 成功验证 | 是 |
忘记密码时是否能跳转至用户修改密码页面 | 成功跳转 | 是 |
成功登录时是否能跳转至首页面 | 成功跳转 | 是 |
注册页面,用户可进行注册操作。如表4-2所示:
表4-2用户注册页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
验证用户输入信息 | 成功验证 | 是 |
操作数据库添加用户信息 | 成功添加 | 是 |
成功注册时是否能跳转至登录页面 | 成功跳转 | 是 |
用户修改密码页面,用户通过手机号,输入新密码进行密码的修改。如表4-3所示:
表4-3用户修改密码页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
是否能验证用户输入的信息 | 成功验证 | 是 |
是否能操作数据库修改用户信息 | 成功修改 | 是 |
跳转至登录页面 | 成功跳转 | 是 |
首页可以浏览数码商城推荐的数码商品信息。如表4-4所示:
表4-4数码商城首页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
浏览商品分类信息 | 分类信息成功显示 | 是 |
浏览推荐商品信息 | 商品信息成功显示 | 是 |
商品分类页面,用户可以查看对应商品分类的商品列表。如表4-5所示:
表4-5数码商城分类页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
显示商品分类信息 | 成功显示 | 是 |
跳转至商品详情页面 | 成功跳转 | 是 |
商品搜索页面,用户可以通过输入商品名称,来对所有商品进行模糊查询,将查询到的结果显示出来。如表4-6所示:
表4-6数码商城搜索页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
显示搜索商品的信息 | 成功显示 | 是 |
跳转至商品详情页面 | 成功跳转 | 是 |
商品详情页面,用户可以对商品进行添加购物车或立即购买的操作。如表4-7所示:
表4-7数码商城商品详情页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
显示商品详情信息 | 成功显示 | 是 |
进行立即购买操作 | 成功购买 | 是 |
进行添加购物车操作 | 成功添加 | 是 |
操作数据库修改购物车和订单信息 | 成功修改 | 是 |
购物车页面,用户可以对满意的商品进行购买,或者对不满意的商品移出购物车。如表4-8所示:
表4-8数码商城购物车页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
显示购物车信息 | 成功显示 | 是 |
进行立即购买操作 | 成功购买 | 是 |
进行移出购物车操作 | 成功移出 | 是 |
操作数据库修改购物车和订单信息 | 成功修改 | 是 |
我的订单页面,用户可以查看个人订单信息,可以对不满意的订单进行退款操作。如表4-9所示:
表4-9数码商城个我的订单页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
查看个人订单信息 | 成功显示 | 是 |
对订单进行退款操作 | 成功退款 | 是 |
操作数据库修改订单信息 | 成功修改 | 是 |
个人中心页面,用户可以更换头像,修改昵称、性别、收货地址,还可以进行退出登录的操作。如表4-10所示:
表4-10数码商城个人中心页面功能测试
预测功能 | 预测结果 | 实际结果是否与预测相同 |
更换头像 | 成功更换 | 是 |
修改昵称、性别、收货地址 | 成功修改 | 是 |
退出登录 | 成功退出 | 是 |
操作数据库修改用户信息 | 成功修改 | 是 |
随着我国计算机科技技术水平的提高,人们越来越多的使用网络信息平台,各种数码产品也层出不穷。为了满足人们对数码产品方便、快捷的购物需求,设计这款数码商城,来实现人们线上安全地对数码商品进行挑选和购买。
本次课程设计实现了数码商城,满足用户对数码商品的购买需要。每个页面设计美观、合理,方便用户的使用。具有诸多功能,以满足用户的不同需求。
利用Thymeleaf和Layui来进行前端页面的搭建,有利于前后端分离,降低了项目的耦合度,提高了开发效率,有利于项目的更新和维护工作。在这次的设计中学到了以前书本上所学不到的东西,那就是理论应用到实际的过程中,这些东西对于以后的学习工作都有很大的帮助。
在这次课程设计中,我利用所学Java Web高级编程、tomcat、数据库开发技术等知识,完成了数码商城。这次课程设计不仅加强了我所学知识的记忆程度,而且还让我领悟了前端框架搭建前台页面的精髓。通过这次课程设计让我有了做综合项目的经验,这些是课本上所学不到的,这是让我感觉此次课程设计最大的收获。
虽然此次课程设计困难重重,但是让我收获颇多。当经过无数次的调试,修改后,能看到最终的成品,让我感觉无比的自豪。我也十分感谢同学们的帮助,和老师们的指导。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了一些技术上的难题,让我能把课程设计做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了在编写程序时的一些难题。同时也感谢学院为我提供良好的做毕业设计的环境。在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。同时,也要感谢我的老师和同学们在设计过程中给予我的支持和帮助。
最后再一次感谢所有在课程设计中曾经帮助过我的良师益友和同学。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。