




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业 南阳理工学院课 程 设 计课程设计名称: 课程设计 专 业 班 级 : 数据库一班 学 生 姓 名 : 张文瑞 学 号 : 指 导 教 师 : 学生姓名张文瑞专业班级数据库学号题 目网络购物车主要内容 淘宝、京东、易购等都是知名度很大的电子商务网站,而对于电子商务网站来说一个很重要的组成部分便是网络购物车,要求利用html、jsp、servlet、数据库等知识点,结合相关设计模式、以及软件工程的相关知识,在经过需求分析、总体设计、详细设计等流程步骤以后,设计一个网络购物车。主要功能是记
2、录和操作不同客户的网上购物信息。该系统能对购物车中商品信息进行查询、增加、修改、删除、清空、下载等操作,商品信息存储在数据库中。任务要求 综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计合理的数据结构,并实现:商品展示、操作成功提示、购物车展示等视图界面;对商品信息的查询、增加、修改、删除、清空、下载等功能模块。系统采用tomcat、记事本等开发工具进行开发实现。根据系统功能,结合软件开发流程,完成设计报告的撰写。参考文献(美)Cay S. Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8版)
3、(英文影印版).人民邮电出版社, 2008.11耿祥义、张跃平. JAVA2实用教程(修订). 清华大学出版社,2001.10杨小平 java项目案例导航 科学出版社,2003.7傅进勇、邓少烽、李波 jsp网络编程 电子工业出版社 2008.5网络购物车一:需求分析 利用html、jsp、java、servlet、数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个网站购物车,用于记录不同客户的购物订单,并能对购物车中商品信息进行查询、修改、删除、清空、下载等操作,商品信息存储在数据库中。具体要实现的功能如下:1:显示商品展示界面、操作成功界面、购物车展示界面等界面。2:商品信
4、息存储在数据库中。3:对商品信息能够进行查询、修改、删除、清空、下载等操作。4:使用MVC设计模式(View(jsp)、Model(javaBean)、Controller(servlet))。5:在浏览器中输入访问信息进行访问。6:购物车信息分页显示。二:概要设计本次课程设计中使用了MVC设计模式,jsp作为View,javaBean作为Model,servlet作为controller,实现界面与逻辑的分离,模块之间松耦合,通过传递参数进行调用。Jsp页面通过发送一个操作类型变量,从而使得controller获知应当进行的操作,并通过调用javabean进行实际的执行,这样页面与逻辑就得到
5、了分离,互不干涉和影响。使用数据库存储购物信息,在数据库中对商品信息进行增、删、改、查等操作,此外控制器通过调用writeexcel类,在每次查看信息之前把当前的商品信息写入到xls文件中进行保存,并供用户下载。具体的设计模块及系统流程如下图所示:shoppingcarmessage.xlsShoppingcar数据库writeexcel.javacontroloperate.javaoperate.java返回响应返回结果数据库或文件ModelcontrollerView执行操作进行调用发送请求updatesuccess.jspalter.jspshoppingcarplay.jspdefa
6、ult.jspaddsuccess.jsp三:运行环境、开发语言运行环境:Windows XP 浏览器开发语言:html、jsp、java四:详细设计1:程序清单 Java课程设计网络购物车文件功能对应表序号 文件名功能 1default.jsp显示商品信息 2shoppingcarplay.jsp显示购物车信息 3alter.jsp显示修改商品页面 4addsuccess.jsp显示成功添加商品 5updatesuccess.jsp显示成功更新商品 6controloperate.java控制进行各种操作 7operate.java对数据库进行操作 8write.excel.jaava生成e
7、xcel信息文件 9shoppingcarmessage.xls记录购物车信息2:主要代码1:显示商品信息界面用jsp来显示主界面登录主页面欢迎光临百味书屋!/用表格来排列显示信息书名:货币战争书号:0001作者:王一价格:23书名:我的抗战书号:0002作者:王二价格:33书名:你猫叔了没书号:0003作者:王三价格:43书名:赞美你书号:0004作者:王四价格:53书名:刀尖书号:0005作者:王五价格:63书名:人脉是设计出来的书号:0006作者:王六价格:73书名:龙年运程书号:0007作者:王七价格:83书名:最好的时光在路上书号:0008作者:王八价格:93书名:七日谈书号:000
8、9作者:王九价格:1032:显示购物车信息界面用jsp分页显示购物车中的商品信息购物车界面您的购物车列表: 书名书号作者 价格数量 =totalcount)/当前页面为最后一页 for(int i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下载购物信息 返回主页 a href=shoppingcarplay.jsp?nowpage=上一页  第页   共页 % Else/不是最后一页 for(i
9、nt i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下载购物信息 返回主页 a href=shoppingcarplay.jsp?nowpage=下一页  第页   共页 下载购物信息 返回主页 a href=shoppingcarplay.jsp?nowpage=上一页  第页   共页 下载购物信息 返回主页 a href=shoppingcarplay.jsp?nowpag
10、e=上一页  a href=shoppingcarplay.jsp?nowpage=下一页  第页   共页 书名书号作者 价格数量 % if(totalcount=3)/总页面=1 for(int i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下载购物信息 返回主页 1 for(int i=0;i form method=post action=alter.jsp?booknum= f
11、orm method=post action=operate?operatetype=delete&booknum= 下载购物信息 返回主页 下一页  第一页   共页 您的购物车是空的! 返回主页 3:显示修改商品界面用jsp显示修改商品信息的界面修改购物车界面 /用form来提交修改的变量及书号 form action=controloperate?operatetype=alter&booknum= method=post 您要订购的数量: 4:显示成功添加商品用jsp显示成功添加操作添加成功界面已成功加入购物车!返回主页5:显示成功更新商品用jsp显示成功更新操作更新成
12、功界面已成功更新您的购物车!6:控制进行各种操作功能用java servlet实现控制器控制进行各种操作以及决定返回何种界面package shoppingcar;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class controloperate extends HttpServlet/重写dopost方法对jsp请求进行处理 public void doPost(HttpServletRequest reques
13、t,HttpServletResponse response)throws ServletException,IOException request.setCharacterEncoding(gb2312);/获取相关变量 String operatetype=(String)request.getParameter(operatetype); shoppingcar.operate ope=new shoppingcar.operate(); shoppingcar.writeexcel we=new shoppingcar.writeexcel(); HttpSession session
14、 = request.getSession(); if(operatetype.equals(add)/添加操作的处理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); String ip=(String)request.getRemoteAddr(); ope.addbook(booknum,ip); response.sendRedirect(addsuccess.jsp); if(operatetype.equals(scan)/查询操作的处理 Arra
15、yList rs=ope.getbook(); session.setAttribute(rs,rs); if(rs0!=null) we.write(rs); response.sendRedirect(shoppingcarplay.jsp); if(operatetype.equals(alter)/修改操作的处理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); String count=(String)request.getParameter(cou
16、nt); ope.updatebook(booknum,count); response.sendRedirect(updatesuccess.jsp); if(operatetype.equals(delete)/删除操作的处理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); ope.deletebook(booknum); response.sendRedirect(updatesuccess.jsp); if(operatetype.equals(de
17、leteall)/清空购物车操作的处理 request.setCharacterEncoding(gb2312); ope.deleteallbook(); response.sendRedirect(updatesuccess.jsp); 7:对数据库进行操作功能 用javabean通过多个函数实现对数据库的多种操作package shoppingcar;import java.sql.*;import java.util.*;public class operate ArrayList a; public void addbook(String booknum,String ip)/对数据
18、库进行添加记录操作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /连接数据库 Connection conn = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt = conn.createStatement(); String sql1=select * from 购物车 where 书号=+booknum+ and ip地址=+ip+; ResultSet rs=stmt.executeQuery(sql1); String sql2=inser
19、t into 购物车(ip地址,书号,数量) values(+ip+,+booknum+,1); if(!rs.next()/当前不存在该条记录直接插入 stmt.executeUpdate(sql2); Else/否则进行更新操作 int newcount=rs.getInt(数量);newcount+=1; String sql3=update 购物车 set 数量=+newcount+ where 书号=+booknum+ and ip地址=+ip+; stmt.executeUpdate(sql3); stmt.close();conn.close(); catch(Exception
20、 e) public void get() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/创建支持游标滚动的statement String sql=select 书名 , 书籍.书号 ,
21、作者 , 价格 , 数量 from 书籍 , 购物车 where 书籍.书号=购物车.书号;/获取结果的sql语句 ResultSet rs=stmt1.executeQuery(sql); if(rs.next() rs.last(); Integer rows = rs.getRow(); rs.beforeFirst(); this.a=new ArrayListrows; int l =0; while (rs.next() /将结果集转换为数组对象 this.al = new ArrayList(); this.al.add(0,rs.getString(1); this.al.ad
22、d(1,rs.getString(2); this.al.add(2,rs.getString(3); this.al.add(3,rs.getString(4); this.al.add(4,rs.getInt(5); l+; /System.out.println(success5);/判断该语句是否执行成功 else this.a=new ArrayList100; stmt1.close();conn1.close(); catch(Exception e) public ArrayList getbook() get(); return this.a;/返回数组对象 public v
23、oid updatebook(String booknum,String count)/对数据库执行修改操作作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/创建支持游标滚动的stateme
24、nt int bookcount=Integer.parseInt(count); if(bookcount=0) deletebook(booknum); else String sql=update 购物车 set 数量=+bookcount+ where 书号=+booknum+; stmt1.executeUpdate(sql); stmt1.close();conn1.close(); catch(Exception e) public void deletebook(String booknum)/对数据库执行删除操作 try Class.forName(sun.jdbc.odbc
25、.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/创建支持游标滚动的statement String sql=delete 购物车 where 书号=+booknum+; stmt1.executeUpdate(sql); stmt1.close();co
26、nn1.close(); catch(Exception e) public void deleteallbook()/清空购物车 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/创建支持游标
27、滚动的statement String sql=truncate table 购物车; stmt1.executeUpdate(sql); stmt1.close();conn1.close(); catch(Exception e) 8:生成excel信息文件用java application引入poi包后,生成exceel文件,生成表格,循 环添加行数据,最终生成购物车信息。 package shoppingcar; import java.io.*; import java.text.NumberFormat; import java.util.*; import org.apache.
28、poi.hssf.usermodel.HSSFCell; /引入poi工具包 import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class writeexcel/Excel public void write(ArrayList rs) HSSFWorkbook wb = new HSSFWorkbook(); /相当于writeexcel整个
29、文件 FileOutputStream fos = null; try /创建一个文件 fos = new FileOutputStream(D:/apache-tomcat-6.0.33/webapps/shoppingcar/shoppingcarmessage.xls); catch (FileNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); HSSFSheet sheet = wb.createSheet(sheet1); /生成writeexcel中的sheet HSSFRow ro
30、w = sheet.createRow(0); /创建第一行 HSSFCell cell = row.createCell(short) 0); /创建第一个单元格 cell.setEncoding(HSSFCell.ENCODING_UTF_16); /设定单元格的字符编码 cell.setCellValue(书名); /设定单元格的名字 cell = row.createCell(short) 1); /创建第二个单元格 cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(书号); cell = row.createC
31、ell(short) 2); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(作者); cell = row.createCell(short) 3); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(价格); cell = row.createCell(short) 4); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(数量); int totalcount=rs.
32、length; for (int i = 0; i totalcount; +i) /循环添加结果记录 String bookname=(String)rsi.get(0);String booknum=(String)rsi.get(1);String bookauthor=(String)rsi.get(2);String bookprice=(String)rsi.get(3);int bookcount=Integer.parseInt(rsi.get(4).toString(); row = sheet.createRow(i +1); /创建行 cell = row.createCell(short) 0); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(bookname); /设定序号 cell = row.createCell(short) 1); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(booknum); cell = row.createCell(short) 2); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年集体合同执行中问题解析与解决策略探讨
- 酒店经营管理师考试内容设问试题及答案
- 仓库阁楼转让合同范例
- 追求卓越的2024年纺织机械操作证书考试试题及答案
- 2025仓库租赁合同简易模板
- 酒店员工绩效评估与管理试题及答案
- 代缴社保佣金合同范例
- 酒店财务分析工具运用试题及答案
- 公园摊子出租合同范例
- 个人客车租车合同范例
- TCECS 720-2020 钢板桩支护技术规程
- 巡察工作流程图1
- 金工实训教程完整版课件全套课件
- Q∕GDW 12068-2020 输电线路通道智能监拍装置技术规范
- 药品经营企业质量管理工作流程图资料
- 1干混砂浆的工艺流程
- 资质人员职称专业对照表
- 思想政治教育心理学教学大纲
- 离子交换器用户手册
- 石子检验报告(共5页)
- 地基承载力与击数对照表(轻)
评论
0/150
提交评论