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

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

  1. asp.net购物车,订单以及模拟支付宝支付(一)---购物车表及添加购物车流程

    在开发一个Web程序的时候用到了网购这个功能,上来分享并记录一下,以便以后忘记了可以自己看看(电脑东西太多,笔记都不知道放哪里去了啊啊啊啊啊!!!) 没有什么高并发量,什么什么技术理论,只是一个最最基 ...

  2. php如何实现添加到购物车_PHP实现添加购物车功能

    session_start(); $ids=$_GET["ids"]; /*$arr = array( array("k001",10), array(&quo ...

  3. 【畅购商城】购物车模块之添加购物车

    购物车数据2种形态: 登录态:保存到服务器端的redis中 没登录:保存在浏览器端 localStorage 中 搭建购物车服务:8095 步骤一:创建changgou4-service-cart 项 ...

  4. sqlalchemy数据库中的limit使用(限制查询的用户数量)

    文章目录 1.实验结果: 2.主文件:main.py: 1.实验结果: 2.主文件:main.py: from flask_wtf import FlaskForm from flask_sqlalc ...

  5. linux ftp登录命令_Linux使用pinky命令查询登录用户信息

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何在Linux系统上使用pinky命令查 ...

  6. Oralce 数据库 - 查询数据库所有的表和视图实例演示,查询指定用户下所有表和视图方法

    查询数据库所有的表有下面两个方法. -- 查询数据库所有的表 select * from all_tables; select * from all_tab_comments where table_ ...

  7. oracle开放查询表权限_oracle 查询当前用户的表和其他用户的表

    首先 当前的用户 需要有查询其他用户的表的 权限 然后 如果是用该用户登录使用以下语句: SELECT * FROM USER_TABLES; 如果是用其他用户: SELECT * FROM ALL_ ...

  8. 通过ID查询一个用户的两种开发方法

    通过ID查询一个用户的两种开发方法 数据库建表sql语句如下:https://github.com/beyondyanyu/Sayingyy/blob/master/JDBC2-数据库sql建表语句 ...

  9. 安卓开发 登录用户信息缓存_在Linux上使用finger命令查询登录用户信息

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解finger命令的作用和日常使用案例. f ...

最新文章

  1. bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理*
  2. RISC-V有何特别之处?
  3. Trie的C++实现及HDU1251,hdu1671
  4. Java学习|先定一个小目标比如让行为聚焦
  5. #论文 《Deep Residual Learning for Image Recognition》
  6. 基于IndRNN的手机传感器动作识别
  7. 从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现
  8. 二分图匹配--匈牙利算法
  9. Java Servlet总结
  10. php 游标 上移,jQuery点击input使光标移动到最后或指定位置
  11. 第一站---大连---看海之旅
  12. 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
  13. python写数据库校验_Python:生成验证码并插入到数据库!
  14. windows smb更改端口_SMB协议(使用说明+过程详解+抓包分析)
  15. matlab能流图,有会用MATLAB写海流图的程序吗
  16. 为什么谈设计总爱提老庄之道
  17. Kubernetes 深入理解 Pod
  18. 手游沙巴克传奇当前服务器维护,《沙巴克传奇》12月18日安卓、IOS维护公告
  19. 存储技术和灾备解决方案要点
  20. iPhone14和14pro的区别

热门文章

  1. 研发解决方案介绍#Tracing(鹰眼)
  2. day023 常用模块02
  3. [Node.js月刊]2018年第1期
  4. ps-色彩饱和度的设计
  5. linux 报错 bash ‘/bin/sh: Syntax error: “(” unexpected
  6. 课程题目 : 1003. 简单字符串匹配
  7. 分享:玩Linux笔记(2) —— 神奇的curl工具
  8. 联想亮出智能手机全面投身移动互联网
  9. 10-Python入门学习-函数的对象与嵌套、名称空间与作用域、闭包函数
  10. k8s服务发现和负载均衡(转)