您当前的位置:首页 > 今日分享头条 > 正文

java购物车代码(编程 java 关于购物车)

本文目录

  • 编程 java 关于购物车
  • 用java模拟购物车
  • 达内 java的购物车商品 不能重复添加 的代码
  • Java使用字符串生成器来保存购物车中的商品信息,并能实现商品信息的添加、删除以及修改等功能
  • JAVA语言编写的网上订餐系统购物车功能如何实现
  • Java 如何实现类似购物车功能

编程 java 关于购物车

点击数量进入购物车页面,这个应该好做吧,跳动一个Action转发到购物车页面下面是我的图书购物车(自己写的)package com.jc.ts.services;import java.math.BigDecimal;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import com.jc.ts.entity.BookCar;import com.jc.ts.entity.BookInfo;/** * 该类提供购物车的操作 * */public class CartItemsService { private Map《String,BookCar》 itemMap=null;//购物车Map集合 private Collection《BookCar》 items;//购物车项 public CartItemsService() { itemMap=new HashMap《String ,BookCar》(); } public Collection《BookCar》 getItems() { return items; } public void setItems(Collection《BookCar》 items) { this.items = items; } public Map《String, BookCar》 getItemMap() { return itemMap; } public void setItemMap(Map《String, BookCar》 itemMap) { this.itemMap = itemMap; } public int getBookCarSize() { return itemMap.size(); } public boolean containById(String bookid) { return itemMap.containsKey(bookid); } public void addBookCarItems(BookInfo bookInfo) { if(bookInfo!=null) { BookCar bookCar=(BookCar)itemMap.get(bookInfo.getBid()); if(bookCar==null) { bookCar=new BookCar(); bookCar.setBookinfo(bookInfo); bookCar.increaseQuantity(); itemMap.put(bookInfo.getBid(),bookCar); items=itemMap.values(); }else { bookCar.increaseQuantity(); } } } public BookInfo removeCarItem(String bookid) { BookCar bookCar=itemMap.remove(bookid); if(bookCar==null) { return null; } items=itemMap.values(); return bookCar.getBookinfo(); } public BigDecimal getBookCarTotal()//获得总金额 { BigDecimal carTotal=new BigDecimal(“0.00“); Iterator《BookCar》 iterator=this.getAllCartItems(); while(iterator.hasNext()) { BookCar bookCar=iterator.next(); BigDecimal carPrice=bookCar.getBookinfo().getBprice(); BigDecimal quantity=new BigDecimal(String.valueOf(bookCar.getQuantity())); carTotal=carTotal.add(carPrice.multiply(quantity)); } return carTotal; } public Iterator《BookCar》 getAllCartItems(){ return itemMap.values().iterator(); } public void increaseQuantityById(String bookid) { BookCar bookCar=itemMap.get(bookid); if(bookCar!=null) { bookCar.increaseQuantity(); } } public void setQuantityById(String bookid,int quantity)//根据图书ID增加数量 { BookCar bookCar=itemMap.get(bookid); if(bookCar!=null) { bookCar.setQuantity(quantity); } } public void clear(){ itemMap.clear(); }} 修改后传入这个方法就可以了setQuantityById() ★★★ 注意购物车一定要用Map 不能用List或ArrayList 因为购物车是顾客频繁操作的功能 Map在取值或删除值的效率比List或ArrayList要高的多 它基本不需要时间,而List或ArrayList还要遍历。。。。。。希望对你有帮助!!

用java模拟购物车

package com.shopping;import java.util.HashMap;import java.util.Map;public class ShoppingTrolley {    public ShoppingTrolley() {        super();    }    private Map《String, Integer》 amountOfItem = new HashMap《String, Integer》();    /**     * Add item to shopping trolley.     *     * @param itemID     * @param amount     * @return Indicate it is added sucessfully.     */    public void addItem(String itemID, int amount) {        if (amountOfItem.containsKey(itemID)) {            amountOfItem.put(itemID, amountOfItem.get(itemID) + amount);        } else {            amountOfItem.put(itemID, amount);        }    }    /**     * Remove item from shopping trolley.     *     * @param itemID     * @param amount     * @return Indicate it is added sucessfully.     */    public void removeItem(String itemID, int amount) {        if (amountOfItem.containsKey(itemID)) {            if (amount 》= amountOfItem.get(itemID)) {                amountOfItem.remove(itemID);            } else {                amountOfItem.put(itemID, amountOfItem.get(itemID) - amount);                            }        }    }}

上面代码是问题1

问题2 下图是类图 代码都在附件里

达内 java的购物车商品 不能重复添加 的代码

在购物车中写:购物车一般放到session域中。其中有商品小计,有商品总计的一些求和计算。我记得用Map来弄的。 在购物车中添加map集合。根据放到购物车中的key来判断在map中是否存在,如果存在那就在原有商品上+1,如果不存在,那么就可以添加商品到购物车。

Java使用字符串生成器来保存购物车中的商品信息,并能实现商品信息的添加、删除以及修改等功能

public class Cart {    public StringBuilder data;    public float total;    public Cart(){        data=new StringBuilder();    }    public void buy(Goods g){        g.gtotal=g.gnum*g.gprice;        total=total+g.gtotal;        data.append(“[“);        data.append(g.gname+“|“);        data.append(g.gprice+“|“);        data.append(g.gnum+“|“);  //还是竖线看着方便        data.append(g.gtotal);        data.append(“]“);    }    public void delete(Goods g){        int s=data.indexOf(g.gname);        int e=data.indexOf(“]“, s);        data.delete(s-1, e+1);        total=total-g.gtotal;  //删除商品 ,需要修改总额    }    public void update(Goods g){        data.replace(3, 10, “[“+g.gname+“|“+g.gprice+“|“+g.gnum+“|“+g.gtotal);    }    public void show(){        System.out.print(“总计金额:“ + total + “    “) ;        System.out.println(data);    }}//Excute类里有点小错误,//总觉得update方法 不对头,你想怎么做?

JAVA语言编写的网上订餐系统购物车功能如何实现

用Vector 或者是HashMap去装《下面有部分代码你去看吧》

package com.aptech.restrant.DAO;import java.util.ArrayList;import java.util.HashMap;import java.util.List;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 {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];// 如果购物车已经存在当前菜,数量+1if (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中,而是直接持久化到数据库中。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 嗓子烂了溃疡吃什么好得快,口腔溃疡吃什么好的快(刀割嗓等溃烂发炎治疗缓解小偏方)

下一篇: find是什么意思(Find是什么意思)



推荐阅读