开发者学堂课程【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;