基于SSM的网络购物平台的开发

2020-07-22 09:54刘瑾
电脑知识与技术 2020年11期

刘瑾

摘要:该系统基于B/S架构,采用Spring+SpringMVC+Mybatis框架。购物平台主要实现用户登录注册、查询商品信息、商品详细信息介绍、加入购物车、下订单以及支付等功能。后台管理员主要职责是用户管理,商品管理,订单管理等。该系统性能稳定、易扩展,易维护。

关键词:Spring;SpringMVC;Mybatis;购物平台

中图分类号:TP393 文献标识码:A

1背景

随着互联网的迅速普及以及电子商务的飞速发展,网上购物已经成为很多消费者,尤其是年轻一代消费群体所接受和青睐的消费模式。本网络购物平台采用主流的MVC模式和Spring+SpringMVC+Mybatis框架,SSM的配置越来越轻量级,注解开发发挥到极致,ORM实现更加灵活,且SQL优化更简便。三层架构使显示模块与功能模块分离,提高了程序的可维护性、可移植性、可扩展性与可重用性,具备了良好的容错能力和负载平衡能力。

2系统的分析和设计

2.1开发技术分析

本系统是基于MVC模式下的多层结构应用系统。主要使用Spring+SpringMVC+Mybatis框架开发。

MVC是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。其大小与开销是轻量的。Spring通过控制反转(IoC)的技术促进了松耦合。Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。Spring包含并管理应用对象的配置和生命周期,可以配置每个bean如何被创建。Spring可以将简单的组件配置组合成为复杂的应用。

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs映射成数据库中的记录。

2.2需求分析

网上购物平台主要由前台买家购物模块和后台管理员管理模块组成。买家注册后可以浏览商品,当看到心仪的商品后可以点击商品进入详细页面,在商品详细页面里可以添加商品到购物车,或者直接购买商品。订单提交完成后,用户可以查看订单,取消订单,付款。后台管理员登录后,可以对商品信息进行增、删、改、查操作,也可以查看订单信息和用户信息,对订单信息进行状态修改,设置网站前台的广告内容。管理员是不需要注册的,其账号是系统设置的。

系统具体功能如下:

1)用户注册、登录;

2)浏览、搜索商品,查看商品详细信息;

3)加入购物车;

4)提交订单、取消订单、付款;

5)用户评价;

6)管理员对用户信息、订单信息进行查看和修改;

7)管理员对商品信息进行增加、删除、修改、查询等管理。

2.3数据库设计

数据库是软件开发系统的基础及核心,设计的质量直接关系到软件系统开发的成败。本系统选择mysql数据库,数据库主要由7张表组成,分别是:

1)用户表(user):该表用于存储用户信息,包括用户id、用户名、登录密码、电话、邮箱、注册时间、使用状态、账户余额、地址等字段。

2)商品分类表(category):该表用于存放商品的分类信息,包括类目id、类目名称、父类id等字段。

3)商品表(product):该表用于存放商品的基本信息,包括商品id、商品名称、类别id、商品状态、数量、单价等字段。

4)订单表(order):该表用于存放每个用户的订单信息,包括订单id、用户id、订单明细id,金额、创建时间,付款时间、发货时间、状态、评价、收货人姓名、收货人电话、收货人地址、物流编号等字段。

5)订单明细表(item):该表用于存放订单的商品明细,包括订单明细id、订单id、商品id、數量等字段。

6)支付表(payment):该表用于存放订单支付的详细信息,包括支付单号,订单号、日期、用户id、交易状态、支付类型等字段。

7)广告表(ad):该表用于存放网站前台的广告链接和图片链接,包括id、标题、内容、链接、图片、状态、排序等字段。

3系统实现

3.1用户注册登录

在用户注册页面,用户输入用户名和密码,浏览器会通过Ajax将用户名和密码传到后台控制器,后台调用userAdd方法,在数据库中查找该用户名是否已经被注册。如果已存在,提示注册失败;如果不存在,则数据被保存到数据库中。用户登录时,后台调用Controller中对应的方法在数据库中进行数据的查找,如果用户名、密码一致则登录成功,否则登录失败。

3.2商品搜索

在商品搜索中,引入了PageHelper包,代码通过findPage方法,把查询条件封装成TbBrand类,这样减少了代码的重复率,大大增加了开发效率。TbBrandExample是PageHelper提供的查询条件类,原理就是根据设置的属性去拼接SQL,达到条件查询的目的。

3.3加入购物车

用户在选择加入购物车时会出现两种情况,一种是已经登录的情况,另一种是没有登录的情况。如果用户没有登录,系统进入登录页面提示登录。如果用户已登录,系统判断cookie里是否存在购物车数据,如果有就拿出来放到redis里。

3.4管理员管理

管理员的账号设置并没有选择在数据库里,而是使用SpringSecurity设置在XML里。管理员对数据的管理主要实现了数据的增、删、改、查和分页查询,增删改查是通过Mybatis的逆向工程生成mapper和SQL,通过创建criteria对象进行条件查询;另外后端分页采用PageHelper插件,只需要前台传来pageNum和PageSize参数即可快速实现分页,简化了开发步骤。

4结束语

本文主要针对网络购物平台的开发进行了技术和需求的分析、结构和数据库的设计,介绍了具体实现过程。通过测试,该系统性能稳定、可靠,具有较强的可扩展性。