(二十二)查询订单的详情

(二十二)查询订单的详情

案例2-查询订单的详情
需求:
    只有未付款的订单,点击"付款",跳转到订单的详情页面
步骤分析:
    1.在订单列表,点击付款,
        /store/order?method=getById&oid=?
    2.在orderservlet中编写getById()
        接受oid
        调用service 返回Order
        将order放入域中,请求转发 order_info.jsp
    3.orderDao中 通过一个订单号,查询订单详情
        select * from orderitem oi,product p where oi.pid = p.pid and oi.oid = ?
        用mapListhandler封装结果集,然后使用BeanUtils封装成指定的bean对象 ,添加到order的items中即可
        

/store/WebContent/jsp/order_list.jsp

                        <c:if test="${o.state==0 }">
                                            <a href="${pageContext.request.contextPath }/order?method=getById&oid=${o.oid}">付款</a>
                                        </c:if>
                                        <c:if test="${o.state==1 }">
                                            已付款
                                        </c:if>
                                        <c:if test="${o.state==2 }">
                                            <a href="#">确认收货</a>
                                        </c:if>
                                        <c:if test="${o.state==3 }">
                                            已完成
                                        </c:if>

com.louis.web.servlet.OrderServlet

    public String getById(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //1.获取oid
        String oid = request.getParameter("oid");
        
        //2.调用service 通过oid 返回值:order
        OrderService os=(OrderService) BeanFactory.getBean("OrderService");
        Order order=os.getById(oid);
        
        //3.将order放入request域中
        request.setAttribute("bean", order);
        
        return "/jsp/order_info.jsp";
    }

com.louis.service.impl.OrderServiceImpl

    /**
     * 查看订单详情
     */
    @Override
    public Order getById(String oid) throws Exception {
        OrderDao od=(OrderDao) BeanFactory.getBean("OrderDao");
        return od.getById(oid);
    }

 

com.louis.dao.impl.OrderDaoImpl

    /**
     * 通过oid 查询订单详情
     */
    @Override
    public Order getById(String oid) throws Exception {
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
        String sql="select * from orders where oid = ?";
        Order order = qr.query(sql, new BeanHandler<>(Order.class), oid);
        
        //封装orderitems
        sql="select * from orderitem oi,product p where oi.pid = p.pid and oi.oid = ?";
        List<Map<String, Object>> query = qr.query(sql, new MapListHandler(), oid);
        for (Map<String, Object> map : query) {
            //封装product
            Product product = new Product();
            BeanUtils.populate(product, map);
            
            //封装orderitem
            OrderItem oi = new OrderItem();
            BeanUtils.populate(oi, map);
            oi.setProduct(product);
            
            //将orderitem假如中order的items中
            order.getItems().add(oi);
        }
        return order;
    }

 

 

posted on 2017-10-15 10:09 Michael2397 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值