目录
1前言
1.1研究的背景及意义
1.2国内外的研究状况和发展趋势
2需求分析
2.1系统需求分析
2.1.1技术可行性
2.1.2经济可行性
2.1.3操作可行性
2.2系统的开发环境
2.2.1 Springboot框架
2.2.2 数据库Mysql
2.2.3 IntelliJ IDEA平台
2.2.4 Mybatis和MyBatis-plus
2.2.5 前端框架技术vue.js
3数据库设计
3.1建立数据模型
3.2数据库表
4系统设计
4.1系统概要设计
4.2系统结构设计
4.3系统流程设计
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游戏分类模块实现
5.3.4游戏评论管理模块实现
5.3.5人员管理模块实现
5.3.6订单管理模块实现
6系统测试
6.1测试方法
6.2测试目标
6.3测试结果
7结束语
致谢
基于SpringBoot的游戏商城系统
的设计与实现
摘要:随着时代的迅速发展,人们的生活压力增加的同时,释放压力的方法也逐渐增多,从以前的看戏剧、打牌,到现在的玩游戏和上网冲浪,现如今游戏产业已成为全球最重要的经济来源之一,为了促进游戏行业发展和帮助人们更好的选择自己喜欢的游戏,游戏平台应运而生。本系统是B/S的架构,实现项目前后端分离主要使用Vue2技术、Springboot和MyBatis等技术,功能上实现了登录、注册、游戏购买、购物车等,玩家可以对游戏进行评论,发表意见,遇见好的游戏便可进行购买,节省了人们寻找游戏的时间。
关键词:游戏;玩家;Springboot;Vue2;Mysql
Design And Implementation Of Game Mall System Based On SpringBoot
By
Dd Sdaddd
March, 2024
Abstract: Along with the rapid development of the times, People's life pressure increases at the same time, the way to release the pressure also gradually increases, from the past to see drama, play cards, to now play games and surf the Internet, today, the game industry has become one of the world's most important economic sources, in order to promote the development of the game industry and help people to better choose their favorite games, game platforms emerged. The system uses B/S architecture, written in Java language, to achieve the project front-end separation, front-end using Vue2 technology, back-end using Springboot and MyBatis technology, etc. , database use to manage the database functions to achieve login, registration, game purchase, shopping carts, and so on, players can comment on the game, comment, encounter a good game can be purchased, it saves people time looking for games.
Keywords: game; game player; Springboot; Vue2; Mysql
1前言
1.1研究的背景及意义
随着文明的发展和时代的变化,带给社会和人们的压力也与日俱增,同时消除压力的娱乐方式也发生巨大的变化。电子游戏已经成为青年一种重要的娱乐活动。无论是早期的单机游戏,还是当下的网络游戏,电子游戏对玩家们的社交行为有着非常重要的影响,也成为当下游戏吸引众多青少年的主要原因之一[1]。对于他们而言,每一款新的游戏生产发行决定都是一次与市场的博弈,甚至对于小型的工作室来说,是一场性命攸关的赌博[2]。
在线商城是一种电子商务,基于商家与消费者模式(Business to Customer),阿里巴巴的成功使得在线商城成为热口的话题[3]。游戏商城系统的开发和使用,加强了游戏开发商和个人客户之间的联系,通过一个平台,使游戏开发商有展示自己开发成果和售卖自己游戏的渠道,同时个人客户可以通过平台搜索自己想要游玩的游戏和对自己喜欢,感兴趣的游戏进行购买。通过查看游戏评论,可以尽可能更了解想购买的游戏。因此,研究游戏评论可以帮助游戏开发人员更好地理解用户的关注点,并进一步提高用户对游戏的感知质量[4]。现代社会中,一个好的游戏平台不仅可以促进游戏业的发展,也可以将好的游戏进行推荐,帮助人们缓解,释放压力。
1.2国内外的研究状况和发展趋势
在现如今的时代发展下,国内外比较出名的游戏平台分别是腾讯公司的WeGame和美国维尔福(Valve)软件公司的Stream。即使是现今的中国游戏市场,大部分用户依然会选择使用Steam进行游戏的购买,但Wegame的出现,在中国游戏市场中也是尤为重要的,平衡国内外游戏市场,并提供国内消费者更稳定的体验。WeGame和steam在分割游戏市场这个经济大蛋糕,互相竞争,但这种竞争有望于给国内用户带去更好的游戏消费体验,也给国内游戏开发者提供更好的创作条件[5]。
由于中国游戏产业的快速发展,越来越多的工作室,公司逐渐以游戏开发和发行为经济主体,面对这样潜力无穷的宝藏,必然会出现许多良莠不齐的游戏,同时也会出现一些素质不佳的玩家,所以一个好的游戏商城平台对于人们来说是有利的。面对大量游戏,玩家的增加,游戏商城管理系统可以大量减少人们寻找优质游戏,心仪游戏的时间,同时一个平衡的价位,也可以吸引开发商和游戏作者的到来。
2需求分析
2.1系统需求分析
现在面临越来越多的游戏开发商和日益增大的生活压力,电子游戏已成为一项巨大的经济产业。本游戏平台通过从技术方面,操作复杂度和经济层次等方面对实现项目系统进行分析,判断它开发与否和开发的难度。这样完成的项目对于开发商和用户来说都是好处多多的。
2.1.1技术可行性
本游戏商城平台系统采用Springboot+MyBatis后端技术进行数据的处理,完成功能,并使用Vue.js前端技术和Mysql数据库技术作为程序开发的基本技术需求,Springboot不仅可以通过学校进行系统的学习,同时在网络上也可以进行拓展学习;而Vue作为现在较为流行的前端技术,简单易学易上手,也可以通过上网学习,进行开发。在技术方面的要求上有一定打把握。
2.1.2经济可行性
面对开发这个系统的经济,首先是具体的系统设计,工具方面上使用idea进行免费开发;程序技术方面,主要是通过学校和网络学习所需的知识,所付出的成本只有时间,在经济上几乎是免费的,所用的资源都可以在互联网上进行免费下载,因此该程序在经济上的可行性是存在的。
2.1.3操作可行性
对于系统的操作,由于自己本身在设计界面的前端知识不足,所以在界面上不会太复杂,程序需要基本的操作也不是太难,用户的体验是最重要的。简单的操作和界面对于现在还是学生的我来说,实现的难易度会降低许多。在操作可行性完全可以实行的。
2.2系统的开发环境
2.2.1 Springboot框架
Spring框架主要的特点及优点是自动配置、自定义配置、模块化和提供微服务框架开发功能,除了将Web程序打包为war文件的部署方式,还可以将Web程序编译为可独立运行的jar包,同时还可以内嵌J2EE容器,使得Web程序也可以独立于容器外运行[6]。不用去编写注释,冗余的样板代码和复杂的XML基本配置,提高工作效率,减少了开发人员的代码量。
2.2.2 数据库Mysql
本系统使用Mysql数据库进行数据的存储和操作,大部分后台管理系统的数据都是基于Mysql进行管理的,使用JDBC驱动程序连接MySQL数据库[7],Mysql server是目前的主流数据库软件,它不仅支持众多编程语言,而且作为开源软件,服务器上传速度快,易操作。
2.2.3 IntelliJ IDEA平台
IntelliJ IDEA是我作为程序开发者使用的程序开发工具,不仅本身提供代码提示助手,多种快捷键加快编写速度,内置插件不仅支持java语言开发,还提供其他语言编译插件。
2.2.4 Mybatis和MyBatis-plus
MyBatis是持久层框架,它支持定制化SQL、存储过程以及高级映射,MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集[8]。MyBatis通过对XML配置进行编写和注解配置、编写数据实体和sql语句执行来达到数据库数据处理的目的。
Mybatis-Plus基于MyBatis新开发的产品,使编写xml和sql代码简单化、加快整体的编写效率。Mybatis-Plus可以启动即会自动注入基本CURD,内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求[9]。可以让我们避免许多重复性的工作。
2.2.5 前端框架技术vue.js
本系统的前端采用轻量级渐进式 Vue.js 框架,依托于模型-视图-视图模型(MVVM) ; 系统的总体结构基于浏览器-服务器(B/S)体系结构; 系统功能通过 HTML5、 Node.js 和数据库技术实现[10]。
Vue.js技术中,Vue.js本身简单易学,前后端分离也是基于Vue技术对第三方库和项目的耦合性低,已维护的特点实现的;另外, Vue在与现代的工具箱和各类支援类库相配合的情况下,还能建立一个成熟的单页面应用程序(SPA)来供人使用。如:Vue.js路由通过vue-router可以很简单的实现vue页面之间的跳转,使用axios基于 Promise 的 HTTP 库来完成 ajax 请求等。
3数据库设计
3.1建立数据模型
这个系统采用了 Mysql数据库来进行数据存储,通过对系统需求的对象,以对象也就是‘游戏’和‘系统使用者’为核心建立相应的数据库表,构建数据模型。后台管理加上数据库进行增删改查的功能,极大地减少了对数据的处理,加快了程序运行的速率。由资料库中的资料组成表格,各表格各部份的资料可以按照某种联系进行准确的合并。
根据游戏商城系统项目的功能,把存在的基本数据库实体构思并创建,若将其划分为若干个实体信息,那该系统的主要实体属性图具体为:
玩家实体信息首先是id也就是序号主键、avatar(头像)、玩家用户的名称、用于识别玩家的密码和mail等基本用户属性,如图3.1所示。
图3.1 玩家实体属性图
管理员实体包括id、用户名、密码等属性,如图3.2所示。
图3.2 管理员实体属性图
而将id、游戏图片(caption)、游戏的名称、游戏作者、游戏简介、游戏价格、分类id等属性组合起来,便可以组成系统最重要的游戏实体信息,如图3.3所示。
图3.3 游戏实体属性图
关于游戏评论实体属性的构成由主键id、用于找到具体游戏的game_id、发布者、游戏评论内容、发表时间等组成,如图3.4所示。
图3.4 游戏评论实体属性图
订单实体由id、玩家id、订单编号、订单的总体价格、是否付款和生成订单的时间属性组成,是构成订单的基本,如图3.5所示。
图3.5 订单实体属性图
系统中实体与实体之间的关系的E-R图如图3.6所示。
图3.6 系统实体关系E-R图
3.2数据库表
根据需要的数据,将数据库表分成七个表,分别是t_user用户表、admin管理员表、category游戏分类表、game游戏表、comment游戏评论表、t_order订单表。
(1)t_user 表(用户表)
玩家用户表里边有用户的多个属性,用户基本属性如:id(主键)、用户的头像、密码、 用户的姓名、邮箱等。具体如表3-1所示。
表3-1 t_user表
字段名称数据类型主键非空描述
idint(11)是否用户id
avatarvarchar(90)否否头像网址
usernamevarchar(12)否否用户名
passwordvarchar(10)否否用户密码
mailvarchar(50)否否邮箱
(2)admin 表(管理员表)
管理员登录表属性有:管理员id(主键)、管理员的使用者名称和用于识别的密码等组成。具体如表3-2所示。
表3-2 admin表
字段名称数据类型主键非空描述
idint(11)是否管理员id
usernamevarchar(20)否否用户名
passwordvarchar(20)否否密码
(3)game表(游戏商品表)
游戏商品表中id为主键,同时cid作为该表与category表进行链接的字段,通过cid与分类表进行内链接,此外游戏表内部还包含caption(游戏图片)、gamename(游戏名)、author(游戏制作商)、introduction(游戏简介)和price(价格),如表3-3所示。
表3-3 game表
字段名称数据类型主键非空描述
idint(11)是是游戏id
captionvarchar(100)否否游戏图片
gamenamevarchar(100)否否游戏名
authorvarchar(100)否否游戏制作商
introductiontext否否游戏简介
pricevarchar(11)否否游戏价格
cidvarchar(10)否否分类id
(4)game表(游戏商品表)
游戏分类表就比较简单,只有id作为主键,category字段表示游戏分类名,如表3-4所示。
表3-4 category表
字段名称数据类型主键非空描述
idint(11)是否分类id
categoryvarchar(20)否否分类名
(5)comment表(游戏评论表)
游戏评论表也是id作为表的主键,表内容包含game_id(游戏id)、created(发布时间)、content(游戏内容)、creator(发布者),如表3-5所示。
表3-5 comment表
字段名称数据类型主键非空描述
idint(10)是否评论序号
game_idint(10)否否游戏id
createddate否否发布时间
contenttext否否内容
creatorvarchar(200)否否发布者
(6)t_order表(订单列表)
订单列表将id作为表的主键,表内容包含user_id(用户id)、order_number(订单编号)、order_price(订单价格)、order_pay(是否付款)、created(发布时间),如表3-6所示。
表3-6 t_order表
字段名称数据类型主键非空描述
idint(10)是否id
uidint(10)否否用户名
ordernumbervarchar(12)否否订单编号
orderpriceint(10)否否订单总价
orderpayvarchar(20)否否是否付款
createtimevarchar(20)否否创建时间