且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

订单模块之我的订单完成 | 学习笔记

更新时间:2022-06-26 14:47:17

开发者学堂课程【Java Web项目实战2:图书商城订单模块之我的订单完成】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/35/detail/787


订单模块之我的订单完成


目录:

一、流程

二、开发路径

 

一、流程

(一)top.jsp 我的订单

(二)OrderServlet#myOrders()

1.从 session 中获取 User ,再获取 uid

2.使用 uid 来调用 service 方法得到 List<Order> ,保存到 request 中

3.转发到 /jsps/order/list.jsp

或rquest域:List<Orders>

  /jsps/order/list.jsp

循环遍历多个订单两层循环!

(三)OrderService 略

(四)OrderDao#findByUid(String uid)

1.使用 uid 为条件查询所有的订单

2.循环遍历每个订单,然后再为每个订单加载

己的所有条目

订单模块之我的订单完成 | 学习笔记


二、开发路径

package cn.itcast.bookstore.order.web.servlet;

import java.io.IOException;

public class OrderServlet extends BaseServlet

private OrderService orderService = new OrderService( );

我的订单

@param request

@param response

@return

@throws ServletException

@throws IOException

 

Public String myorders(HttpServletReguest reguest, HttpServletResponse response)

throws ServletException.IOException

1.从session得到当前用户,再获取其uid

2.使用uid调用orderservice#mvorders(uid)得到该用户的所有订单List<order>

3.把订单列表保存到xeauest域中,转发到/1spa/oxder/liat.isp

User user =(User)request.getSession().getAttribute("session_user"); List<order> ordertiat orderService.myOrders(user.getuid()); request.setAttribute("orderList", orderList);

return "f:/jsps/order/list.jsp";

按uid查询订单

@param uid

@return

blic List<Order> findByuid(String uid) (

1.通过uid查询出当前用户的所有List<order>

2. 循环遍历每个order,为其加载他的所有OrderItem

try(

1.得到当前用户的所有订单

 

String sql ="select  from orders where uid=?";

List<Order>orderList=qr.query(sql,new BeanListHandler<order>(Order.class), uid

2. 循环遍历每个order,为其加载它自己所有的订单条目

for(order or)

catch(OtExcention

3. 返回订单列表

return orderList;

catch(SQLException e)

throw new RuntimeException(e);

加载指定的订单所有的订单条目

@param order

@throws SQLException

 

private void loadorderItems(Order order) throws SQLException (

查询两张表:orderitem、book

string sql = "select * from orderitem i, book b where i.bid=b.bid and oid=?";

因为一行结果集对应的不再是一个javabean,所以不能再使用BeanListHandler,而是MapListHandi

List<Map<String,Object>> mapList= qr.query(sql, new MapListHandler(), order.geto/+

mapList是多个map,每个map对应一行结果集

一行:

(iid=c7AD5492F27D492189105FB50E55BB6,count=2,subtotal=60.0, oid=1AE8A703540

把mapLiat中每个Map转换成两个对象,并建立关系

@param mapList

@return

privateList<OrderItem>toorderItemList(List<Map<String, Object>> mapList

List<OrderItem>orderItemList = new ArrayList<OrderItem>();

for(Map<String,Object> map : mapList)

OrderItem item toorderItem(map); I

orderItemList.add(item);

 

returnorderItemList;