全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)

01、系统设计


电子商务平台分为两个子系统,一是后台管理子系统,一是电子商务子系统。下面分别说明这两个子系统的功能需求与模块划分。


1●系统功能需求

1.后台管理子系统

后台管理子系统要求管理员登录成功后,才能对商品进行管理,包括添加商品、查询商品、修改商品以及删除商品。除商品管理外,管理员还需要对商品类型、注册用户以及用户的订单等进行管理。


2.电子商务子系统

1)非注册用户

非注册用户或未登录用户具有的功能如下:浏览首页、查看商品详情以及搜索商品的功能。

2)用户

成功登录的用户除具有未登录用户具有的功能外,还具有购买商品、查看购物车、收藏商品、查看订单、查看收藏以及查看用户个人信息的功能。


2●系统模块划分

1.后台管理子系统

管理员登录成功后,进入后台管理主页面(selectGoods.html)可以对商品、商品类型、注册用户以及用户的订单进行管理。后台管理子系统的模块划分,如图9.1所示。

image.png


2.电子商务子系统

非注册用户只可以浏览商品、搜索商品,不能购买商品、收藏商品、查看购物车、查看用户中心、我的订单和我的收藏。成功登录的用户可以完成电子商务子系统的所有功能,包括购买商品、支付等功能。电子商务子系统的模块划分,如图9.2所示。

image.png


02数据库设计


系统采用加载纯Java数据库驱动程序的方式连接MySQL5.5数据库。在MySQL5.5中创建数据库ch9,并在ch9中创建8张与系统相关的数据表:ausertable、busertable、carttable、focustable、goodstable、goodstype、orderdetail和orderbasetable。


1●数据库概念结构设计

根据系统设计与分析,可以设计出如下数据结构:

1.管理员

包括管理员ID、用户名和密码。管理员的用户名和密码由数据库管理员预设,不需要注册。

2.用户

包括用户ID、邮箱和密码。注册用户的邮箱不能相同,用户ID唯一。

3.商品类型

包括类型ID和类型名称。商品类型由数据库管理员管理,包括新增和删除管理。

4.商品

包括商品编号、名称、原价、现价、库存、图片以及类型。其中,商品编号唯一,类型与“3.商品类型”关联。

5.购物车

包括购物车ID、用户ID、商品编号以及购买数量。其中,购物车ID唯一,用户ID与“2.用户”关联,商品编号与“4.商品”关联。

6.收藏商品

包括ID、用户ID、商品编号以及收藏时间。其中,ID唯一,用户ID与“2.用户”关联,商品编号与“4.商品”关联。

7.订单基础信息

包括订单编号、用户ID、订单金额、订单状态以及下单时间。其中,订单编号唯一,用户ID与“2.用户”关联。

8.订单详情

包括订单编号、商品编号以及购买数量。其中,订单编号与“7.订单基础信息”关联,商品编号与“4.商品”关联。


根据以上的数据结构,结合数据库设计的特点,可以画出如图9.3所示的数据库概念结构图。

090d44afa13774d010a4a3e6af5ae386.png

■ 图9.3  数据库概念结构图


2●数据库逻辑结构设计

将数据库概念结构图转换为MySQL数据库所支持的实际数据模型,即数据库的逻辑结构。


管理员信息表(ausertable)的设计,如表9.1所示。

image.png

用户信息表(busertable)的设计,如表9.2所示。

image.png

商品类型表(goodstype)的设计,如表9.3所示。

image.png

商品信息表(goodstable)的设计,如表9.4所示。

image.png

购物车表(carttable)的设计,如表9.5所示。

image.png

商品收藏表(focustable)的设计,如表9.6所示。

image.png

订单基础表(orderbasetable)的设计,如表9.7所示。

image.png

订单详情表(orderdetail)的设计,如表9.8所示。

image.png


03、HTML页面及静态资源管理


1●后台管理子系统

管理员在浏览器的地址栏中输入http://localhost:8080/eBusiness/admin/toLogin访问登录页面,登录成功后,进入后台商品管理主页面(adminGoods.html),adminGoods.html的运行效果如图9.4所示。

image.png


2●电子商务子系统

注册用户或游客在浏览器的地址栏中输入http://localhost:8080/eBusiness可以访问电子商务子系统的首页(index.html),index.html的运行效果如图9.5所示。

image.png


04、后台管理子系统的实现


1●管理员登录

管理员输入用户名和密码后,系统将对管理员的用户名和密码进行验证。如果用户名和密码同时正确,则成功登录,进入后台商品管理主页面(adminGoods.html);如果用户名或密码有误,则提示错误。


login.html页面提供登录信息输入的界面。效果如图9.6所示。

image.png


2●类型管理

管理员登录成功后,管理商品类型。类型管理分为添加类型和删除类型,如图9.7所示。

image.png


3●添加商品

单击图9.4中“添加商品”超链接打开如图9.9所示的“添加商品”页面。

43b7960a10adefc781bc08683b1ff2b4.png

■ 9.9  添加商品


4●查询商品

管理员登录成功后,进入如图9.4所示的后台管理子系统主页面,在主页面中单击“详情”链接,显示如图9.10所示的详情页面。

image.png


5●修改商品

单击图9.4中的“修改”超链接(goods/detail(id=${gds.id},act=update))打开修改商品信息页面updateAGoods.html,如图9.11所示。在图9.11中输入要修改的信息后,单击“提交”按钮,将商品信息提交给goods/addGoods?act=update处理。

d0370ee660b58035b71c3a38d103a799.png

■ 图9.11  修改商品页面


6●删除商品

单击图9.4中“删除”超链接('javascript:deleteGoods(' + ${gds.id} +')')可实现单个商品的删除。成功删除(关联商品不允许删除)后,返回删除商品管理主页面。


7●查询订单

单击后台管理主页面中“查询订单”超链接(selectOrder?currentPage=1),打开查询订单页面allOrder.html,如图9.12所示。

image.png


8●用户管理

单击后台管理主页面中“用户管理”超链接(selectUser?currentPage=1),打开用户管理页面allUser.html,如图9.13所示。


单击图9.13中“删除”超链接('javascript:deleteUsers('+ ${u.id} +')')可删除未关联的用户。

image.png


9●安全退出

在后台管理主页面中,单击“安全退出”超链接(loginOut),将返回后台登录页面。系统根据@RequestMapping注解找到对应控制器类com.ch.ebusiness.controller.admin.UserAndOrderAndOutController的loginOut方法处理请求。在loginOut方法中执行session.invalidate()将session失效,并返回后台登录页面。具体代码如下:

image.png


05、前台电子商务子系统的实现


游客具有浏览首页、查看商品详情和搜索商品等功能。成功登录的用户除具有游客具有的功能外,还具有购买商品、查看购物车、收藏商品、查看我的订单以及用户信息的功能。


1●导航栏及首页搜索

在前台每个HTML页面中,都引入了一个名为header.html的页面,引入代码如下:

<div th:include="user/header"></div>

header.html中的商品类型以及广告区域的商品信息都是从数据库中获取。header.html页面的运行效果如图9.14所示。

image.png


在导航栏的搜索框中输入信息,单击“搜索”按钮,将搜索信息提交给search请求处理,系统根据@RequestMapping注解找到com.ch.ebusiness.controller.before.IndexController控制器类的search方法处理请求。并将搜索到的商品信息转发给searchResult.html。searchResult.html页面的运行效果如图9.15所示。

image.png


2●推荐商品及最新商品

推荐商品是根据商品表中的字段isRecommend值判断的。最新商品是以商品ID排序的,因为商品ID是用MySQL自动递增产生的。


3●用户注册

单击导航栏的“注册”超链接(user/toRegister),将打开注册页面register.html,如图9.16所示。


image.png


4●用户登录

用户注册成功后,跳转到登录页面login.html,如图9.17所示。

image.png


5●商品详情

可以从推荐商品、最新商品、广告商品以及搜索商品结果等位置处,单击商品图片进入商品详情页面goodsDetail.html,如图9.18所示。

image.png


6●收藏商品

登录成功的用户可以在商品详情页面、首页以及搜索商品结果页面,单击“加入收藏”按钮收藏该商品。此时,请求路径为cart/focus(Ajax实现)。系统根据@RequestMapping注解找到com.ch.ebusiness.controller.before.CartController控制器类的focus方法处理请求。


7●购物车

单击商品详情页面中的“加入购物车”按钮或导航栏中的“我的购物车”超链接,打开购物车页面cart.html,如图9.19所示。

image.png


与购物车有关的处理请求有cart/putCart(加入购物车)、cart/clearCart(清空购物车)、cart/selectCart(查询购物车)和cart/deleteCart(删除购物车)。系统根据@RequestMapping注解分别找到com.ch.ebusiness.controller.before.CartController控制器类的putCart、clearCart、selectCart、deleteCart等方法处理请求。


8●下单

在购物车页面单击“去结算”按钮,进入订单确认页面count.html,如图9.20所示。

image.png


在订单确认页面单击“提交订单”按钮,完成订单提交。订单完成时,提示页面效果如图9.21所示。

image.png


单击图9.21中“去支付”完成订单支付。


9●个人信息

成功登录的用户,在导航栏的上方,单击“个人信息”超链接(cart/userInfo),进入用户修改密码页面userInfo.html,如图9.22所示。

image.png


10●我的收藏

成功登录的用户,在导航栏的上方,单击“我的收藏”超链接(cart/myFocus),进入用户收藏页面myFocus.html,如图9.23所示。

image.png


11●我的订单

成功登录的用户,在导航栏的上方,单击“我的订单”超链接(cart/myOder),进入用户订单页面myOrder.html,如图9.24所示。

image.png


单击图9.24中的“查看详情”超链接('cart/orderDetail?id=' + ${order.id}),进入订单详情页面orderDetail.html,如图9.25所示。

image.png


06、小结



本篇讲述了电子商务平台通用功能的设计与实现。通过我们的学习,不仅掌握Spring Boot应用开发的流程、方法和技术,还应该熟悉电子商务平台的业务需求、设计以及实现。


目录
打赏
0
1
0
0
1026
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
24 0
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
17 0
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——MyBatis 介绍和配置
本文介绍了Spring Boot集成MyBatis的方法,重点讲解基于注解的方式。首先简述MyBatis作为持久层框架的特点,接着说明集成时的依赖导入,包括`mybatis-spring-boot-starter`和MySQL连接器。随后详细展示了`properties.yml`配置文件的内容,涵盖数据库连接、驼峰命名规范及Mapper文件路径等关键设置,帮助开发者快速上手Spring Boot与MyBatis的整合开发。
33 0
Java笔记:SpringBoot开发常用技术整合
Java笔记:SpringBoot开发常用技术整合
144 0
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
317 1
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!

热门文章

最新文章