1.以下为购物车逻辑实现代码1 //添加到购物车 public String addToCart() throws Exception{ Book book=bookService.getBookbyId(bookid); Orderitem orderitem=new Orderitem(); orderitem.setBook(book); orderitem.setQuantity(quantity); Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get(\ if(cart==null){ cart=new Cart(); } cart.addBook(bookid, orderitem); session.put(\ return SUCCESS; } //删除购物车 public String updateCart() throws Exception{ Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get(\ cart.updateCart(bookid, 0); session.put(\ return SUCCESS; }
//确定订单 public String checkout() throws Exception{ Map session=ActionContext.getContext().getSession(); User user=(User)session.get(\ Cart cart=(Cart)session.get(\ if(user==null || cart ==null) return Action.ERROR; Orders order=new Orders(); order.setOrderdate(new Date()); order.setUser(user); for(Iterator it=cart.getItems().values().iterator();it.hasNext();){ Orderitem orderitem=(Orderitem)it.next(); orderitem.setOrders(order); order.getOrderitems().add(orderitem); } orderService.saveOrder(order); Map request=(Map)ActionContext.getContext().get(\ request.put(\ return SUCCESS;
14
}
2. 以下为购物车逻辑实现代码2 //添加商品到购物车 public void addBook(Integer bookid,Orderitem orderitem){ //是否存在,如果存在,更改数量 //如果不存在的话,添加入集合 if(items.containsKey(\ Orderitem _orderitem=items.get(bookid); orderitem.setQuantity(_orderitem.getOrderitemid()+orderitem.getQuantity()); items.put(bookid,_orderitem); } else{ items.put(bookid,orderitem); } } //更新购物车的购买商品数量 public void updateCart(Integer bookid,int quantity){ Orderitem orderitem=items.get(bookid); orderitem.setQuantity(quantity); items.remove(bookid);//items.put(bookid, orderitem); } //计算总价格 public int getTotalPrice(){ int totalPrice=0; for(Iterator it=items.values().iterator();it.hasNext();){ Orderitem orderitem=(Orderitem)it.next(); Book book=orderitem.getBook(); int quantity=orderitem.getQuantity(); totalPrice+=book.getPrice()*quantity; } return totalPrice; }
3.以下为查看和删除订单的逻辑实现代码
String id=request.getParameter(\从表单获得
String name=(String)session.getAttribute(\从表单获得 try { /** 连接数据库参数 **/
String driverName = \驱动名称 String DBUser = \用户名 String DBPasswd = \密码
String DBName = \数据库名
String connUrl = \\
15
String query_sql = \
book.bookname,book.price,orders.orderid,user.username,orders.orderdate from book,orders,user,orderitem where user.userid=orders.userid and
orderitem.bookid=book.bookid and orderitem.orderid=orders.orderid and user.username=\ String delete_sql = \
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(connUrl); Statement stmt = conn.createStatement(); try{
if(id != null && id != \
out.println(\已经完成了订单号为\的订单。\ delete_sql = \orderitem.orderid=orders.orderid and orders.orderid=\ }else{out.println(\查看订单===============================\ }}catch(Exception e){ e.printStackTrace(); } try {
stmt.execute(delete_sql); }catch(Exception e){ e.printStackTrace(); } try {
ResultSet rs = stmt.executeQuery(query_sql); if(rs!=null){ while(rs.next()) { %>
订单号:<%=rs.getString(\
皮肤名:<%=rs.getString(\ 价格:<%=rs.getString(\
用户名:<%=rs.getString(\ 订单时间:<%=rs.getString(\ <% } }else{
out.println(\没有订单!\}
}catch(Exception e) { e.printStackTrace(); }
stmt.close(); conn.close();
}catch (Exception e) { e.printStackTrace(); }
16
五、总结
(1)系统完成情况
1316040139 银杰通过这次课设终于完成了基于JavaEE设计的游戏角色皮肤商店系统的设计。尽管系统在功能和性能上可能还有一些缺陷,但是我已经完成了系统设计的任务和目标,达到了需求分析的基本要求,成功完成了JavaEE课程设计。
(2)未能完成的和有待改进之处
未完成的:数据库缺少一些功能表,后台管理功能缺少一些商品的管理的功能 绑定游戏区号的角色,让角色与皮肤匹配等
待改进:商品搜索的设计还不够完善以及留言板的完善,后台管理的完善比如进行查看,修改,删除等操作。其中,商品信息管理和用户信息管理中,管理员可以添加用户以及商品相关信息,一些逻辑上的问题等 (3)课程设计期间的收获
本系统从需求分析、系统总体设计到系统的具体实现对网上商店系统进行全面的论述。网上商店系统采用基于Java开发语言的JavaEE平台进行开发,运用了MVC框架技术Struts2,采用MySQL数据库管理系统以及开源框架Hibernate进行数据存储,对数据库表设计上满足3NF。
本系统在前台界面,实现了用户的登陆,注册以及商品搜索。用户可以使用购物车,进行购买商品,商品价格,查看订单等。后台界面主要是实现了管理员的相关操作,其中有用户信息管理,商品信息管理,商品类别管理以及订单管理。对于这些信息,管理员可以进行查看,删除等操作。其中,商品信息管理和用户信息管理中,管理员可以管理留言板及商品相关信息。
在完成此次的课程设计的过程中,我跨越了传统方式下的教与学的体制束缚,通过自己的思考和设计,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。
在这次课程设计中,我认识到了自己的不足之处同时我也收获了很多知识和
17
经验,在今后的学习中,我一定勤于思考,并灵活运用所学知识,多进行编程实践。在总结反思和编程训练中,不断提升自己的编程能力。相信在我的努力下,我的程序设计水平一定会不断提高。我逐渐学会了当遇到问题时应该如何面对,如何寻找最有效的解决方案。在这次课程设计中我也知道了自己的动手能力不强,有待于进一步提高。我在这次课程设计中学到很多,我会更加自信的走下去。学习了系统化的开发思想。相信对我以后的学习工作有很大的帮助。
然而,由于本人的水平有限,系统中难免存在着不够完善的地方,由于高等教育的不断改革创新,高校的招生机制也必将随之不断发展,因此本系统也必须随着用户需求的不断提出而逐步改进与完善自己,而这正是软件发展不断迭代求精的思想。系统的发展需要增加自身的可扩充性,使之能与其他软件配合使用,适应更多的应用平台。总之,通过我持之不懈的努力,相信系统的应用前景是非常可观的。
参考文献
[1] 郑阿奇,JavaEE项目开发教程(第2版),电子工业出版社,2013. [2] 耿祥义 张跃平,JSP大学实用教程(第2版),电子工业出版社,2012. [3] 脚本之家,jsp操作MySQL实现查询/插入/删除功能示例_JSP编程_脚本之家,
网址:http://www.jb51.net/article/40351.html,
访问时间2016年10月3日
[4] Jsp+mysql 制作留言板(一) - - 博客频道 - CSDN.NET,
网址:http://blog.csdn.net/hanxintong9/article/details/17470869, 访问时间2016年10月6日
18