基于SSM的商城系统设计.docx
- 文档编号:27109343
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:43
- 大小:3.33MB
基于SSM的商城系统设计.docx
《基于SSM的商城系统设计.docx》由会员分享,可在线阅读,更多相关《基于SSM的商城系统设计.docx(43页珍藏版)》请在冰豆网上搜索。
基于SSM的商城系统设计
内容摘要
现如今这个时代,“上网购物”这种购物方式已经成为购物主流。
在这种背景之下,可靠的网上商城系统不可或缺,网上购物系统自然而然成为必须。
它可以使消费者更加方便地购物,更快地满足顾客的需求,也可以让用户选择自己真正喜欢的商品。
目前市面上已经有现成、稳定的商品销售系统,但存在操作复杂、维护繁琐等问题。
这些因素直接导致了销售系统在目前市场上的推广受到了限制,开发出费用低廉、功能强大的系统正是我们需要解决的问题。
该系统提供商品在线分享购买的平台,划分用户和管理员两个角色,用户功能有登陆、注册、商品分类展示、商品详情展示分享等,管理员部分的功能有商品分类管理,商品管理等
本课题采用JAVAEE平台,基于B/S结构,SSM框架技术。
关键词:
javaEEssmB/S结构线上购物系统
Abstract
Nowadays,"onlineshopping"hasbecomethemainstreamofshopping.Inthiscontext,asafe,stableandpowerfulonlineshoppingmallsystemisindispensable.Drivenbythismaturemarketdemand,onlineshoppingsystemcameintobeing.Itcanmakeconsumersmoreconvenienttoshop,fastertomeettheneedsofcustomers,butalsoallowsuserstochoosewhattheyreallylike.Atpresent,therearerelativelymaturecommoditysalessysteminthemarket,buttheexistingcommoditywebsitesystemhasmoreorlesscomplexmaintenance,operationandotherissues.Somesystemsevendirectlyusestaticwebpagestopublishcommodityinformation,whichdirectlyleadstothelimitationofthemarketingsysteminthecurrentmarket.
Thesystemisusedbybusinessesandcustomers,andprovidesaplatformforonlinesharingandpurchaseofgoods.Thefunctionsoftheadministratorpartincludecommodityclassificationmanagementandcommoditymanagement,ordermanagement,usermanagement,messagemanagement,etc.
ThisprojectadoptsJavaEEplatform,SSMframeworktechnology,andisbasedonB/Sstructure
Keywords:
javaEE;SSM;B/Sstructure;"onlineshopping";
绪论
1.1研究背景
现如今这个时代,“上网购物”这种购物方式已经成为购物主流。
在这种背景之下,可靠的网上商城系统不可或缺,网上购物系统自然而然成为必须。
它可以使消费者更加方便地购物,更快地满足顾客的需求,也可以让用户选择自己真正喜欢的商品。
目前市面上已经有现成、稳定的商品销售系统,但存在操作复杂、维护繁琐等问题。
这些因素直接导致了销售系统在目前市场上的推广受到了限制,开发出费用低廉、功能强大的系统正是我们需要解决的问题。
1.2目的和意义
商家应用此软件之后,可以降低销售难度,降低人力成本,增加销售业绩。
应用此软件是为了在打破传统线下销售模式,再开辟一条新的销售通路,控制库存量。
此软件的数据统计分析功能完善可拓展,成熟稳定、使用非常方便、界面简洁明了、操作简单不需要学习成本,可以成为一个能真正帮助商家销售发展的有力工具。
1.3开发工具及技术
Jsp用于前端页面设计,java用于后端数据维护。
实现该系统,使用spring和spring-Mvc的同时后端还使用了MyBatis框架对数据库中的数据进行封装和操作。
系统的架构也是基与mvc设计模式。
Mybatis是一个经典的后端开源框架,原理是mybatis框架自动依据开发者自建的XML文件映射(一种声明)创建出会话工厂,然后会话工厂根据配置文件创出SqlSession对象,该对象包含了执行sql所需要的所有方法,可以通过SqlSession这个对象执行所有事先声明的方法使用数据库完成所需目的,操作结束后执行相应的事务控制。
本次采用的是spring的声明式方式。
1功能需求分析
1.1网站前台功能
1.首页商品展示:
展示出最新商品和热门商品。
2.首页:
提供一个网站首页,显示该企业的商标,该网站用户的登录,注册,所有商品的一级分类,热门商品和最新商品的展示等。
3.用户登录:
已经注册的用户登录。
4.用户注册:
用户完成注册功能的使用,利用ajax发送异步请求校验
5.用户退出:
已经登录的用户退出系统。
6.分类页面商品展示:
根据一级分类和二级分类去展示该分类下的所有商品
7.商品详情展示:
点击某个商品时可以展示该商品的具体详细信息。
8.购物车:
用于存放用户的购物内容
9.订单:
用户查看订单
1.2网站后台功能
1.管理员登录
2.商品一级、二级分类管理:
管理者可以对前台显示的一级、二级分类进行增删改
3.商品管理:
管理者可以对前台显示的商品进行管理包括增删改查,以及上传商品图片。
4.用户管理:
查看该网站中所有用户的所有信息。
1.3系统用户用例图
2.2.0用户用例图
2.2.1管理员用例图
2系统设计
2.1系统的总体设计
系统的开发采用B/S模式,基于ssm框架。
SSM框架是目前J2EE领域中最热门而且用的比较成熟的一套开源框架,它是基于MVC设计模式之上,充分发挥了MVC的优点。
SSM是一套轻量级框架,系统功能模块结构图如图3-1所示:
图3-1
2.2数据库的分析与设计
数据库使用mysql,版本为5.5+
3.2.1数据库概念设计
数据库各实体描述:
用户:
包括如图所示九个字段
图3-2-1用户实体联系图
管理员包含的字段如图显示:
3.2.1-2管理员实体图
商品实体:
商品包含的字段如图所示:
订单包含的字段如图所示:
3.2.2数据库物理结构
该系统设计了7张表,在这里列出7张表分别为如下所示:
数据库表总览
描述
表
一级商品分类表
category
管理员表
adminuser
二级商品分类表
categorysecond
管理员表主要记录了管理员的基本消息,表结构如表3-1所示。
管理员表3-1(adminuser)
数据类型
允许空值(默认NO)
自动递增
备注
id
INT(11)
YES
YES
账号
username
VARCHAR(1000)
NO
NO
用户名
password
VARCHAR(1000)
NO
NO
密码
一级分类表主要记录了一级分类的基本信息,表结构如图3-2所示。
一级分类表3-2(category)
数据类型
允许空值(默认NO)
自动递增
备注
cid
INT(11)
YES
YES
一级分类ID
cname
VARCHAR(1000)
NO
NO
一级分类名
二级分类表主要记录了二级分类的基本信息,表结构如图3-3所示。
二级分类表3-3(categorysecond)
数据类型
允许空值(默认NO)
自动递增
备注
Csid
INT(11)
YES
YES
二级分类id
Csname
VARCHAR(1000)
NO
二级分类名称
cid
VARCHAR(1000)
NO
所属一级分类id
订单项表主要记录了订单项的基本信息,表结构如图3-4所示。
订单项表3-4(orderitem)
-
数据类型
允许空值(默认NO)
自动递增
备注
Oiid
INT(11)
YES
YES
订单项id
count
VARCHAR(1000)
购买数量
subtotal
DOUBLE
单项总价id
Pid
INT(11)
所购商品id
cid
INT(11)
所属订单id
订单表主要记录了订单的基本信息,表结构如图3-5所示。
订单表3-5(order)
-
允许空值(默认NO)
自动递增
数据类型
备注
oid
YES
YES
INT(11)
订单id
money
DOUBLE
订单总价
state
INT(11)
订单状态
Receiveinfo
VARCHAR(255)
收货地址
phonum
VARCHAR(255)
收货人电话
Order_time
DATETIME
下单时间
Uid
INT(11)
所属用户id
商品表主要记录了商品的基本信息,表结构如图3-6所示。
商品表3-6(product)
-
允许空值(默认NO)
自动递增
数据类型
备注
Pid
YES
YES
INT(11)
商品id
Pname
VARCHAR(255)
商品名称
Market_price
INT(11)
市场价
Shop_price
VARCHAR(255)
商城价
image
VARCHAR(255)
商品图片
Pdesc
VARCHAR(255)
商品描述
Is_hot
INT(11)
是否热门
Pdate
Datetime
商品上架日期
csid
INT(11)
所属二级分类id
前台用户表结构如图所示。
前台用户表3-7(user)
-
数据类型
允许空值(默认NO)
自动递增
备注
Uid
INT(11)
YES
YES
用户id
Username
VARCHAR(255)
用户名
password
VARCHAR(255)
用户密码
Name
VARCHAR(255)
用户真实姓名
VARCHAR(255)
用户邮箱
Phone
VARCHAR(255)
用户手机号
Addr
VARCHAR(255)
用户地址
3系统主要功能实现
3.1系统注册页面实现
3.1.1客户端用户注册
注册效果如图4-1所示:
图4-1客户端用户注册界面
3.2系统登录页面实现
3.2.1用户登录
系统登录界面
程序运行如下图所示:
图4-2登录页面
3.2.2管理员用户登录
运行结果如图,图4-3为管理员登录页面,图4-4为管理员登录成功后跳转的页面
图4-3后台登录页面
图4-4管理员页面
3.3
3.4
4.3系统前台功能实现
系统前台页面包括以下几个部分:
首页一级、二级商品分类显示,已登录用户的订单展示。
4.3.1一级分类模块
●查询一级分类
说明:
一级分类存储在数据库中,如果在同一时间的用户访问该网站的第一个分类的审讯主页。
在图4-5的分类显示:
图4-5一级分类显示
设计思路:
一级分类展示于系统的首页,当用户访问index.action时,跳转到首页,跳转之前,系统进行查询,将结果存放到session中
●查询一级分类下的子分类
描述:
用户进入主页后,点击某一级分类,即查询该分类下的二级分类,发出请求得到数据。
效果图如图4-6所示:
图4-6二级分类
设计思路:
查询一级分类后,用户发出请求再根据域中一级分类id查询其子分类(二级分类),再将数据放入域中。
主要代码:
4.3.2商品模块
查询最热商品
描述:
当用户访问该网站时,首先显示的是网站的首页,首页中将显示本网站中最热的商品。
程序运行结果如图4-7所示:
图4-7首页热门商品展示
设计思路:
用户访问首页index时,根据路劲“/index.action”首先调用的是系统的index.action,最后跳转至系统的首页index.jsp,因为最热商品显示于首页中,因此在页面跳转之前必须前往数据库查询出本系统中所有的热门商品,因此使用了findHotProduct()这个方法,由于首页中仅仅显示了最新商品中的前十个,因此这里是使用的分页查询,最终查询的结果是一个list集合,最终保存在Model中。
●查询最新商品
描述:
当用户访问该网站时,首先显示的是网站的首页,首页中将显示本网站中最新的商品。
程序运行结果如图4-8所示:
图4-8首页最新商品
设计思路:
用户访问首页index时,根据路劲“/index.action”首先调用的是系统的index.action,最后跳转至系统的首页index.jsp,因为最新商品和最热商品一样都是显示于首页中,因此在页面跳转之前必须前往数据库查询出本系统中所有的最新商品,因此使用了findNewProduct()这个方法,查询最新商品的依据是商品被上传的时间,根据时间来进行排序,由于首页中仅仅显示了最新商品中的前十个,因此这里是使用的分页查询,最终查询的结果是一个list集合,最终保存在Model中。
●查询分类商品
描述:
用户在点击首页的一级分类时,系统自动跳转页面,同时要求在右面显示某个二级分类下的商品。
程序运行结果如图4-9所示:
图4-9查询某个分类商品
设计思路:
首先导入页面,页面和查询二级分类下的商品使用的是一个页面category.jsp。
当用户点击按钮时,客户端向服务器请求发送请求并携带一级分类的主键id,因此服务器端应该接受参数并使用这个参数来调用方法然后去数据库进行查询数据,最后将查询出的数据把保存于Model中,最后跳转页面。
由于页面大小的关系,这里仅仅显示12个商品,因此这里采用了分页查询,并在右下角设置相应的按钮,方便用户来回查看该分类下所有的商品。
●查询二级分类商品
用户在点击首页的一级分类时,系统自动跳转页面,并且在页面的左面显示所有一级分类包含的级分类,同时要求在右面显示某个二级分类下的商品。
程序运行结果如图4-10所示
图4-10查询某个二级分类商品
设计思路:
首先编写页面category.jsp,这个页面用来显示某个二级分类下的所有的商品,当用户点击二级分类时系统访问对应的action,并且携带参数(相应二级分类的主键id),到前端控制层,然后findCategorySecond1()方法接收主键id和分页的数目去product表查询商品,最终将查询到的结果存放于Model中。
由于页面大小的关系,这里仅仅显示12个商品,因此这里采用了分页查询,并在右下角设置相应的按钮,方便用户来回查看该分类下所有的商品。
前端控制层接收参数并调用service层:
PageBean
model.addAttribute("pageBean",proPageBean);
查询商品信息
用户再浏览该商场,查看某个商品的详细信息。
程序运行结果如图4-11所示:
图4-11某个商品的具体信息
设计思路:
首先编写页面,这里使用的是product.jsp,在这个页面中显示了分类的信息,还有每个一级分类下的二级分类,右下方是某个商品的具体信息,其中包括商品的名称、商品的商城价和市场价,包括一个选择框,用于用户选择购买数量,最下面则是商品的具体介绍。
当用户点击某个想要查看的商品图片时,其实就是点击了某个超链接,向服务器发送链接并携带参数(商品的主键id),服务器端接收这个参数,并使用这个参数去数据库中查看这个商品的具体信息最后封装于product中,最终存放于Model中。
4.3.3购物模块
●添加到购物车
对于已经登录的用户,可以将看中的商品具体信息保存于自己的购物车中。
图4-12购物车
设计思路:
首先编写cart.jsp用于显示登录用户的购物车,如果用户没有登录会有提示,用点击查看商品的详情之后会出现一个“加入购物车”按钮,当点击此按钮时,自动访问服务器,并通过隐藏表单携带参数(商品的主键id),服务器端在接受此参数,并接收用户选购的数量,最终保存于我们为每个用户在session域中创建的cart。
最后进行页面跳转,在cart.jsp中展示购物车的信息,主要包括:
商品的具体信息和每项的价格和购物车的总价。
对于已登录用户的页面,可以看到一个购物车的图标,用户可以查看自己的购物车。
●从购物车中移除商品
点击已经添加到购物车的商品后的删除按键从购物车移出该商品。
程序运行结果如图4-13所示:
图4-13移出购物车
设计思路:
当用户点击“删除”按钮时,向服务器端进行请求,并携带参数(商品的主键id),服务器端在设计购物车时采用的是用Map集合存储的,key值即商品的id,因此删除的时候只需从session中拿到购物车直接根据主键删除,最后将页面重定向到cart.jsp.
●清空购物车
将购物车里面的购物项全部清空。
程序运行结果如图4-14所示:
图4-14清空购物车
设计思路:
当“清空购物车”按下时,浏览器发出请求,服务器端收到请求之后,从会话域中取出内容,由于cart在设计的时候使用的是Map集合,所以只需调用Map中的clear()方法即可,并且还需将购物车的总价改为0,最后将页面重定向到cart.jsp.
4.3.4订单模块
●生成订单
当用户点击“生成订单”按钮时,页面跳转至order.jsp,并让用户填写相关信息。
程序运行结果如图4-15所示:
图4-15生成订单
设计思路:
首先编写order.jsp页面,其中包含用户的购物信息和收货地址、收货人和联系方式。
当用户点击cart.jsp中的生成订单按钮时,向服务器发送请求,服务器端从session域中拿到cart中的信息,并将这些信息保存于order表中,此时,需要清空购物车并且将订单信息保存到session域中,最后跳转到order.jsp页面让用户填写相关信息,并付款。
●我的订单
用户对自己的选购的商品所生成的订单项进行付款。
即可生成订单,进入我的订单列表界面;程序运行结果如图4-16所示:
图4-16我的订单
4.3.5留言模块
●留言板
当用户点击“留言板”按钮时,页面跳转至messageList.jsp,并让用户填写相关信息。
程序运行结果如下图所示:
留言板界面
4.4系统后台功能实现
4.4.1用户模块
查询用户
管理员进入后台管理页面之后,当他点击“用户管理”按钮时,则在主页面中显示所有用户的详细信息。
程序运行结果如图4-17所示:
图4-17查询所有用户
设计思路:
先编辑list.jsp页面,当用户点击“用户管理”按钮时,浏览器发出请求到服务器,经过controller解析最终调用service层的findAll()方法再经过service层调用事先定义好的mapper接口,返回一个list集合,最终信息封装成一个Model对象,再跳转至静态页面list.jsp。
4.4.2一级分类模块
●添加一级分类
图4-18添加一级分类
设计思路:
首先编写add.jsp页面,当用户在一级分类list.jsp页面点击“添加”按钮时,服务器将页面跳转至add.jsp,在此页面共有三个按钮,“确定”按钮用于提交信息,“重置”按钮清空表单中的内容,“返回”按钮返回前一个页面。
当用户填写好要添加的一级分类的名称之后点击“确定”按钮,服务器端接收此表单中的内容,然后调用service层的addCategory()方法,将新增的一级分类保存到数据库category表中,最后将页面重定向到list.jsp页面,展示所有的一级分类。
●修改一级分类
此功能属于管理员的权限范围内,管理员用户修改网站中各大服饰的一级分类的名称。
程序运行结果如图4-19所示:
图4-19修改一级分类页面
设计思路:
首先编写edit.jsp页面,当用户在一级分类list.jsp页面点击“添加”按钮时,服务器将页面跳转至edit.jsp,在此页面共有三个按钮,“确定”按钮用于提交信息,“重置”按钮清空表单中的内容,“返回”按钮返回前一个页面。
当用户填写好要修改的一级分类的名称之后点击“确定”按钮,服务器端接收此表单中的内容,然后调用service层的adminCategory_update()方法,将修改的一级分类更新到数据库category表中。
●查询一级分类
“一级分类管理”按钮按下后,展示所有的一级分类的详细信息。
程序运行结果如图4-21所示:
图4-21查询一级分类
设计思路:
首先编写list.jsp页面,当管理员用户点击“一级分类管理页面”按钮时,服务器端接收请求然后调用adminbFindCategory()方法最终由service层调用myBatis提供的Mapper接口将所有的一级分类的信息查询出来保存到list集合中,最终保存到Model中并将信息进行展示。
考虑到一级分类比较多,这里使用了分页查询,在页面展示的效果就是每页显示固定的个数,并在右下角提供了相应的按钮方便用户进行查看其他的一级分类。
4.4.3二级分类模块
●添加二级分类
管理员用户为新增加的一级分类添加二级分类。
程序运行结果如图4-22所示:
图4-22添加二级分类
设计思路:
首先编写二级分类添加页面add.jsp,管理员用户点击“添加”按钮时,页面跳转到add.jsp,同时服务器端将查询出所有的一级分类的名称,用于管理员选择新增的二级分类的归属,这在add.jsp页面中通过一个下拉列表进行显示。
管理员用户在填写好新增的二级分类的名称并选择好所属的一级分类之后点击“确定”按钮,服务器端接收新增的二级分类名称和所属的一级分类的主键id,然后调用adminCategorySecond_save()方法将新增的Categorysecond保存于数据库的categorysecond表中。
最后将页面重定向到二级分类的list.jsp页面进行展示。
●修改二级分类
管理员用户可以为网站中所有的二级分类的名称进行编辑。
程序运行结果如图4-23所示:
图4-23二级分类编辑页面
设计思路:
首先编写二级分类修改页面edit.jsp,管理员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SSM 商城 系统 设计