用到的技术: 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;
}