Goods:查询某个用户的购物车条目以及添加购物车条目

CartItemDao

 1 //查询某个用户的某本图书的购物车条目是否存在
 2     public CartItem findByUidAndBid(String uid,String bid) throws SQLException
 3     {
 4         String sql="select * from t_cartitem where uid=? and bid=?";
 5         Map<String,Object> map=qr.query(sql, new MapHandler(),uid,bid);
 6         CartItem cartItem=toCartItem(map);
 7         return cartItem;
 8     }
 9     
10     //修改数量
11     
12     public void updateQuantity(String cartItemId,int quantity) throws SQLException
13     {
14         String sql="update t_cartitem set quantity=? where cartItemId=?";
15         qr.update(sql,quantity,cartItemId);
16     }
17     
18     //添加cartItem
19     
20     public void addCartItem(CartItem cartItem) throws SQLException
21     {
22         String sql="insert into t_cartitem(cartitemId,quantity,bid,uid)"+
23       " values(?,?,?,?)";
24         Object[] params={cartItem.getCartItemId(),cartItem.getQuantity(),
25                 cartItem.getBook().getBid(),
26                 cartItem.getUser().getUid()};
27         qr.update(sql,params);
28         
29         
30     }
31     //把一个map映射成一个cartItem
32     private CartItem toCartItem(Map<String,Object> map)
33     {   
34         //
35         if(map==null||map.size()==0) return null;
36         //1、把Map 
37         CartItem cartItem=CommonUtils.toBean(map, CartItem.class);
38         Book book=CommonUtils.toBean(map, Book.class);
39         User user=CommonUtils.toBean(map, User.class);
40         cartItem.setBook(book);
41         cartItem.setUser(user);
42         return cartItem;
43         
44     }
45     
46     //把多个map (List<Map>)映射成多个CartItem(List<CartItem>)
47     
48     private List<CartItem> toCartItemList(List<Map<String,Object>> mapList)
49     {
50         List<CartItem> cartItemList=new ArrayList<CartItem>();
51         for(Map<String,Object> map:mapList)
52         {
53             CartItem cartItem=toCartItem(map);
54             cartItemList.add(cartItem);
55         }
56         return cartItemList;
57     }
58     
59     //通过用户查询购物车条目
60     public List<CartItem> findByUser(String uid) throws SQLException
61     {   
62         //多表查询
63         String sql="select * from t_cartitem c,t_book b where c.bid=b.bid where uid=? order by c.orderBy";
64         List<Map<String, Object>> mapList=qr.query(sql, new MapListHandler(),uid);
65         
66         return toCartItemList(mapList);
67         
68     }

CartItemService

 1 public List<CartItem> myCart(String uid)
 2     {
 3         try {
 4             return cartItemDao.findByUser(uid);
 5         } catch (SQLException e) {
 6             // TODO Auto-generated catch block
 7             throw new RuntimeException(e);
 8         }
 9         
10     }
11     
12     //添加条目
13     public void add(CartItem cartItem)
14     {
15         //使用uid bid 看条目是否存在  _cartItem 加上下划线表示从数据库传过来的数据
16         try {
17             CartItem _cartItem=cartItemDao.findByUidAndBid
18                     (cartItem.getUser().getUid(), cartItem.getBook().getBid());
19             if(_cartItem==null) //如果没有原来这个条目 添加条目
20             {   
21                 cartItem.setCartItemId(CommonUtils.uuid());
22                 cartItemDao.addCartItem(cartItem);
23             }
24             else{ 
25                 //如果原来有这个条目 修改数量
26                 int quantity=cartItem.getQuantity()+_cartItem.getQuantity();
27                 //_cartItem.setQuantity(quantity);
28                 //修改老条目
29                 cartItemDao.updateQuantity(_cartItem.getCartItemId(), quantity);
30         
31             }
32         } catch (SQLException e) {
33             throw new RuntimeException(e);
34         }
35     }

 效果图如下:

原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4785150.html