标签:rod code 分析 == row 添加 hand state order
案例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中即可
<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>
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"; }
/** * 查看订单详情 */ @Override public Order getById(String oid) throws Exception { OrderDao od=(OrderDao) BeanFactory.getBean("OrderDao"); return od.getById(oid); }
/** * 通过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; }
标签:rod code 分析 == row 添加 hand state order
原文地址:http://www.cnblogs.com/Michael2397/p/7670078.html