网上书店系统

发布于:2023-07-04 ⋅ 阅读:(135) ⋅ 点赞:(0)


用到的技术: Servlet +jsp+mysql

主要功能:

前台:

登录注册

图书管理

订单管理

购物车模块

后台:

书分类管理

图书管理:上传图书,修改删除图书

订单管理



遇到的问题:

 1,request.getSession().setAttribute("cart", bmw);
   
    Cart cart = (Cart)request.getSession().getAttribute("cart");
   漏写了GetSession(),就会报错,异常很隐蔽!!对cart 的操作都会报错!


2,将method 写错,会报错,必须传递method参数


难点:显示订单列表,用到多表连接查询,根据父表查询子表所有信息,dao层将map转成对象


	public List<Order> findByUid(String uid) {
		try {
			String sql = "select * from orders where uid=?";
			List<Order> orderList = qr.query(sql, new BeanListHandler<Order>(Order.class), uid);

			for (Order order : orderList) {
				loadOrderItemList(order);
			}
			return orderList;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	private void loadOrderItemList(Order order) throws SQLException {
		String sql = "select * from orderitem i,book b where i.bid=b.bid and oid=?";
		List<Map<String, Object>> mapList = qr.query(sql, new MapListHandler(),
				order.getOid());
		
		List<OrderItem> orderItemList =new ArrayList<OrderItem>();
		for(Map<String,Object> map:mapList){
			OrderItem orderItem = toOrderItem(map);
			orderItemList.add(orderItem);
		}
		order.setOrderItemList(orderItemList);
	}

	private OrderItem toOrderItem(Map<String, Object> map) {
		
		 OrderItem orderItem = CommonUtils.toBean(map, OrderItem.class);
		 Book book = CommonUtils.toBean(map, Book.class);
		 orderItem.setBook(book);
		 return orderItem;
	}