首页编程java编程java购物车实现流程(java购物管理系统)

java购物车实现流程(java购物管理系统)

编程之家2026-05-23909次浏览

其实java购物车实现流程的问题并不复杂,但是又很多的朋友都不太了解java购物管理系统,因此呢,今天小编就来为大家分享java购物车实现流程的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java购物车实现流程(java购物管理系统)

java 如何编写购物车

用Vector或者是HashMap去装

<下面有部分代码你去看吧>

package com.aptech.restrant.DAO;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

java购物车实现流程(java购物管理系统)

import java.util.Map;

import java.util.Set;

import java.sql.Connection;

import com.aptech.restrant.bean.CartItemBean;

import com.aptech.restrant.bean.FoodBean;

public class CartModel{

java购物车实现流程(java购物管理系统)

private Connection conn;

public CartModel(Connection conn){

this.conn=conn;

}

/**

*得到订餐列表

*

*@return

*/

public List changeToList(Map carts){

//将Set中元素转换成数组,以便使用循环进行遍历

Object[] foodItems= carts.keySet().toArray();

//定义double变量total,用于存放购物车内餐品总价格

double total= 0;

List list= new ArrayList();

//循环遍历购物车内餐品,并显示各个餐品的餐品名称,价格,数量

for(int i= 0; i< foodItems.length; i++){

//从Map对象cart中取出第i个餐品,放入cartItem中

CartItemBean cartItem=(CartItemBean) carts

.get((String) foodItems[i]);

//从cartItem中取出FoodBean对象

FoodBean food1= cartItem.getFoodBean();

//定义int类型变量quantity,用于表示购物车中单个餐品的数量

int quantity= cartItem.getQuantity();

//定义double变量price,表示餐品单价

double price= food1.getFoodPrice();

//定义double变量,subtotal表示单个餐品总价

double subtotal= quantity* price;

////计算购物车内餐品总价格

total+= subtotal;

cartItem.setSubtotal(subtotal);

cartItem.setTotal(total);

list.add(cartItem);

}

return list;

}

/**

*增加订餐

*/

public Map add(Map cart, String foodID){

//购物车为空

if(cart== null){

cart= new HashMap();

}

FoodModel fd= new FoodModel(conn);

FoodBean food= fd.findFoodById(foodID);

//判断购物车是否放东西(第一次点餐)

if(cart.isEmpty()){

CartItemBean cartBean= new CartItemBean(food, 1);

cart.put(foodID, cartBean);

} else{

//判断当前菜是否在购物车中,false表示当前菜没有被点过。。

boolean flag= false;

//得到键的集合

Set set= cart.keySet();

//遍历集合

Object[] obj= set.toArray();

for(int i= 0; i< obj.length; i++){

Object object= obj[i];

//如果购物车已经存在当前菜,数量+1

if(object.equals(foodID)){

int quantity=((CartItemBean) cart.get(object))

.getQuantity();

quantity+= 1;

System.out.println(quantity);

((CartItemBean) cart.get(object)).setQuantity(quantity);

flag= true;

break;

}

}

if(flag== false){

//把当前菜放到购物车里面

CartItemBean cartBean= new CartItemBean(food, 1);

cart.put(foodID, cartBean);

}

}

return cart;

}

/**

*取消订餐

*/

public Map remove(Map cart, String foodID){

cart.remove(foodID);

return cart;

}

/**

*更新购物车信息

*

*@param cart

*@param foodID

*@return

*/

public Map<String, CartItemBean> update(Map cart, String foodID,

boolean isAddorRemove){

Map map;

if(isAddorRemove){

map= add(cart, foodID);

} else{

map= remove(cart, foodID);

}

return map;

}

}

Java 如何实现类似购物车功能

给你介绍三种可以实现购物车功能的方法:

1.用cookie实现购物车;

2.用session实现购物车;

3.用cookie和数据库(购物车信息持久化)实现购物车;

=======================================================

分析一下这三种方法的优缺点:

1.单纯有cookie实现购物车,这样的购物车不是很理想,设想一下,如果客户端的浏览器把cookie给禁用了,这种方法就会在这里流产...

2.session中保存购物车的信息,这个只是在一个会话中可用,如果用户没有登录,或者说登录了以后,添加购物车,在关闭浏览器或者登出后,之前所添加的购物车通通都流产啦...

3.用cookie和数据库(购物车信息持久化)实现购物车;

主要的流程:

A.用户登录前的数据流:用户在没有登录系统的时候,对喜欢的商品进行添加购物车,那么这个时候,我们可以把购物车信息保存

到cookie中,这里会涉及到cookie的添加,修改操作;也即如果之前在cookie中不存对应的cookie,则就对cookie进行添加操作。

如果在cookie中存在对应的cookie,那么,这时候,就要对cookie进行修改操作了(这里涉及到用户对同一个商品进行多次添加购物车的情况)。

B.用户登录后的数据流:用户在登录后,系统首先做的第一件事就是去获取对应的cookies,如果存在相关的购物车cookies,那么就对该购物车

信息进行相应用户User的持久化操作,要么添加,要么修改。(添加操作:该用户所对应的购物车如果没有相应的信息进行添加操作;修改操作:类似的,

如果存在对应用户的购物车信息,就进行修改操作)。用户登录后,也可以进行购物车的添加操作,不过,这里不是添加到cookie中,而是直接持久化到数据库中。

java 里面编写网上购物车的问题

有两个地方错了:

主要的一个错误是BookDetail类不存在,而你在ShopCar

类中引用了BookDetail,得写一个这样的类才行。

第二个错误的地方为你在类中使用了包,如果使用包的话就不能像一般的类那样直接使用javac类名.java这样的形式编译了。

而要使用 javac-d.类名.java才行,其中的-d.的意思是把输出的.class文件放以包名称的形式到当前文件夹下,当然你也可以输入其它路径也是可以的。

运行的话使用java包名+类名就可以了,其中是以.分开包和类名称的。

看一下javac的帮助和java的帮助,里面说的很明白的。

编译的时候使用javac-d.类名.java

运行的时候 java包名.类名

注意如果包里又有子包的话运行的时候包与子包使用.分隔开来

OK,本文到此结束,希望对大家有所帮助。

没学历学编程有用吗(没学历学什么技术赚钱)html+css春节 html端午节网页制作代码