使用SpeingMVC+MyBatis+Spring+MySql结合jsp技术开发购物车功能

最近在做的项目,当中有个购物车的功能。鉴于此,特此写下这篇文章。阐释一下购物车功能的实现。

总的来说,对于购物车,其实实现也不是太难。

首先第一步,我们需要三个表,分别是商品表,购物车表,以及订单表。

第一个商品表:

mysql 商品 分类管理表设计 mysql商品购物流程设计_mysql 商品 分类管理表设计

第二个是购物车表:

mysql 商品 分类管理表设计 mysql商品购物流程设计_异步加载_02

第三个是订单表:

mysql 商品 分类管理表设计 mysql商品购物流程设计_配置文件_03

对于思路,也很简单。

我们先来看一下三个表之间的联系:

mysql 商品 分类管理表设计 mysql商品购物流程设计_SSM开发购物车_04

具体的思路就是,在购物车里面,我们需要展示产品,需要展示所购买的产品数量。需要生成订单,

那么,我们可以这么想,我可以根据用户来进行查询。

因为没有登录,是不能进行购物车添加的。所以,我们第一步可以获取所登录用户的用户ID,

然后根据用户ID查询出这个用户的所有订单。

mysql 商品 分类管理表设计 mysql商品购物流程设计_配置文件_05

对于mapper的配置,以及其他配置文件这里就不多说了,我直接展示controller层的代码。

由于我在session中存的是用户名,所以第一步,先通过用户名,查询出用户ID,之后通过所查询出的用户ID,

查询出这个用户所拥有的订单。之后我们再根据用户ID,查询出这个用户的购物车内容。然后就可以根据产品

ID查询出产品。

mysql 商品 分类管理表设计 mysql商品购物流程设计_mysql 商品 分类管理表设计_06

 

mysql 商品 分类管理表设计 mysql商品购物流程设计_配置文件_07

这是页面部分,我们可以通过拼接的形式,进行异步加载。

下一步,就是我们添加购物车,以及删除的操作了。

对于添加购物车,我们需要注意的是几点,

第一个点是原有购物车是否已经加过这个商品,

第二点这个商品是否还有库存。

对于第一点,我的处理办法是,如果已经加过这个商品,那么在原有基础上加一,如果没有加过这个商品,那么生成一个新的订单,

而且, 在此基础上,对于商品库存需要减一。

如果,这个商品已经没有库存了,那么也是不能就行添加操作的,所以我们在进行添加购物车的时候需要判断是否还有库存。

mysql 商品 分类管理表设计 mysql商品购物流程设计_配置文件_08

对于购物车的删除操作,同样的原理,在删除之前,我们先进行一个判断,是删除整个订单,还是删除一个商品。

同时,在删除的时候,我们需要对商品库存,加上相应的数量。

这就是购物车的基本思路。