版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业摘 要伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营理念和模式,人们已经不再满足信息的浏览和发布方式,而是渴望着能够充分享受网络所带来的更多便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便、快捷、轻松地选购自己喜欢的商品。本系统便是尝试用JSP在网络上架构一个动态的电子商务网站,它是在Windows系统下,以MySQL数据库为开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(JavaServ
2、erPages)、JavaBean和JDBC等技术开发的网上购物系统。它分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,链接信息管理等功能。建立后的网站是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站。关键字JSP;MySQL;Tomcat;网上购物系统 目录 TOC o 1-3 h z u 2.2.1 用户信息实体属性E-R模型.2 2.2.2 商品类别实体E-R模型.3 2.2.3商品信息实体属性E-R模型.4 3.2.1 商品列表. .5 3.2.2 商品添
3、加7 3.2.3 商品修改.9 3.2.4 商品搜索.1171 系统功能概述1.1 系统的主要功能:(1)前台用户的注册;(2)后台管理员对用户的简单管理;(3)后台管理员对商品类别的管理;(4)后台管理员对商品信息的管理。1.2网上商城后台管理系统结构总图,如下图所示。 网上商城后台管理系统类别管理用户管理I 商品管理添加类别删除商品商品列表商品搜索添加商品修改商品修改类别删除类别类别列表用户列表删除用户管理员登陆图1.1 系统结构总图 2 数据库设计2.1 需求分析 建立一个完善的网上购物平台,包括前台显示和后台的管理,前台通过可视化的界面显示给用户,用户通过可视化的操作与数据库进行动态交
4、互。而后台管理员则对前台显示的信息进行管理,本系统主要是后台管理的设计,其主要功能如下:(1)注册用户信息在后台的显示;(2)商品类别的管理,主要有类别的添加、修改、删除和列表显示;(3)商品具体信息的管理,主要有商品的添加、修改、删除和列表显示。2.2 网上商城后台管理系统E-R模型2.2.1 用户信息实体属性3E-R模型,如下图所示。 注册用户用户ID用户名密 码电 话地 址注册时间图2.1用户信息实体属性图 2.2.2商品类别实体3E-R模型,如下图所示。商品类别名 称类别ID类别描述父类别ID是否有子类别级别 图2.2商品类别实体图 2.2.3商品信息实体属性3E-R模型,如下图所示。
5、商 品商品ID商品名称商品描述市场价类别ID上架时间会员价 图2.3商品信息实体属性图2. 5 表结构设计表结构是存放数据的格式,也是呈现在数据库中的样式。下图分别是表2.1用户表的表结构、表2.2商品类别表的表结构以及表2.3商品信息表的表结构。 表2.1 用户表的表结构 字段名数据类型长度含义约束idint11用户IDprimary key auto_incrementusernamevarchar40用户名Default NULLpasswordvarchar20密码 Default NULLphoneVarchar20电话 Default NULLaddrVarchar255 地址 D
6、efault NULLrdatedatetime注册时间 Default NULL 表2.2 商品类别表的表结构字段名数据类型长度含义约束idint11类别IDprimary key auto_incrementnamevarchar255类别名Default NULLdescrvarchar255类别描述 Default NULLpidInt11父类别ID Default NULLisleafInt11 是否子类别 Default NULL gradeint11级别 Default NULL备注:字段isleaf,若类别为没有子类别则取值为0,若有子类别取值则为1。 表2.3 商品信息表的表
7、结构字段名数据类型长度含义约束idint11商品IDprimary key auto_incrementnamevarchar255商品名Default NULLdescrvarchar255商品描述 Default NULLnormalpricedouble市场价 Default NULLmemberpricedouble 会员价 Default NULL pdatedatetime上架时间 Default NULLcategoryidint11类别ID Default NULL3 系统各功能模块的详细设计3.1 后台管理员登陆模块该模块是后台管理的入口,通过前台提交的登录名和密码,在程序中
8、验证是否能进入后台管理系统。后台管理员登陆界面如下图3.1所示。 图3.1 后台登陆界面接受表单2提交的数据并进行验证,代码如下所示:3.2 商品管理模块 3.2.1 商品列表证登入到后台管理时,通过点击管理主界面左侧产品管理下的产品列表的超链接,则在主界面右侧区域显示商品详细信息。产品列表的界面如下图3.2 所示。 图 3.2 产品列表界面部分主要程序代码如下:% final int PAGE_SIZE = 5; /每页显示多少条记录final int PAGES_PER_TIME = 10;/每次显示多少个页码链接int pageNo = 1;String strPageNo = requ
9、est.getParameter(pageNo);if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1;if (pageNo %List products = new ArrayList();int totalRecords = ProductManager.getInstance().getProducts(products, pageNo, PAGE_SIZE,true);i
10、nt totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages)pageNo = totalPages;%public int getProducts(List products, int pageNo,int pageSize,boolean lazy) int totalRecords = -1;Connection conn = DB.getConn();String sql = ;if(lazy)sql = select * from product order by pdate asc;
11、sql += limit +(pageNo-1)*pageSize+,+pageSize;ResultSet rs = DB.executeQuery(conn, sql);Statement stmtCount = DB.getStmt(conn);ResultSet rsCount = DB.executeQuery(stmtCount, select count(*) from product);try rsCount.next(); totalRecords = rsCount.getInt(1); Product p = null; while(rs.next() p = new P
12、roduct(); p.setId(rs.getInt(id);p.setName(rs.getString(name);p.setDescr(rs.getString(descr);p.setNormalPrice(rs.getDouble(normalprice);p.setMemberPrice(rs.getDouble(memberprice);p.setPdate(rs.getTimestamp(pdate);p.setCategoryId(rs.getInt(categoryid);products.add(p); catch(SQLException e)e.printStack
13、Trace();return totalRecords;3.2.2 商品添加通过点击产品管理模块下的产品添加超链接,将出现添加商品的页面,管理员完善产品的全部信息后,点击提交按钮提交表单中的数据,后台程序代码将产品信息写入数据库。产品添加的界面如图3.3 所示。 图3. 3 添加产品界面部分程序代码:public boolean addProduct(Product p)Connection conn = null;PreparedStatement pstmt = null;conn = DB.getConn();String sql =;if(p.getId()= -1) sql =ins
14、ert into product values(null,?,?,?,?,?,?);try pstmt = DB.getPstmt(conn, sql);pstmt.setString(1,p.getName();pstmt.setString(2,p.getDescr();pstmt.setDouble(3, p.getNormalPrice();pstmt.setDouble(4, p.getMemberPrice();pstmt.setTimestamp(5, p.getPdate();pstmt.setInt(6, p.getCategoryId();pstmt.executeUpda
15、te();return true; catch (SQLException e) e.printStackTrace();return false;finallyDB.close(pstmt);DB.close(conn);3.2.3 商品修改点击商品列表中处理项中的修改链接,则出现修改相应商品的信息,当填写好修改之后的信息后,点击提交按钮,对商品信息进行更新操作。修改商品信息的运行界面如图3.4所示。 图3.4 修改商品信息界面接受表单1数据代码如下:将更新的商品信息写入数据库的upDateProduct方法3:public boolean updateProduct(Product p)C
16、onnection conn = null;PreparedStatement pstmt = null;tryconn = DB.getConn();String sql = update product set name= ?,descr=?,normalprice=?,memberprice=?,pdate=?,categoryid=? where id=+p.getId();pstmt = DB.getPstmt(conn, sql);pstmt.setString(1,p.getName();pstmt.setString(2,p.getDescr();pstmt.setDouble
17、(3, p.getNormalPrice();pstmt.setDouble(4, p.getMemberPrice();pstmt.setTimestamp(5, p.getPdate();pstmt.setInt(6, p.getCategoryId();pstmt.executeUpdate();return true;catch(SQLException e)e.printStackTrace();return false;finallyDB.close(pstmt);DB.close(conn);3.2.4 商品搜索商品的搜索分为简单搜索和复杂搜索,简单搜索通过关键字搜索,复杂搜索可
18、以通过各种商品的各种信息进行搜索。商品搜索界面如图3.5所示。 图 3.5 商品搜索界面 简单搜索搜索的搜索框中输入关键字“笔”之后,点击提交按钮。简单搜索界面如图3.6所示。 图3.6 简单搜索界面 接受表单2数据:%String keyword = new String(request.getParameter(keyword).getBytes(8859_1), GBK);final int PAGE_SIZE = 2; /每页显示多少条记录final int PAGES_PER_TIME = 10;/每次显示多少个页码链接int pageNo = 1;String str
19、PageNo = request.getParameter(pageNo);if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1;if (pageNo %List products = new ArrayList();int totalRecords = ProductManager.getInstance().getProducts(products, pageNo, PAGE
20、_SIZE, keyword);int totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages)pageNo = totalPages;%实现搜索功能的getProducts方法1:public int getProducts(List products, int pageNo, int pageSize,String queryStr) int totalRecords = -1;Connection conn = DB.getConn();Statement stmt = DB.getStm
21、t(conn);String sql = ;sql = select p.id productid, pname, p.descr pdescr, p.normalprice, + p.memberprice, p.pdate, p.categoryid , + c.id categoryid, cname, c.descr cdescr, c.pid, c.grade + from product p join category c on (p.categoryid = c.id) + queryStr + order by p.pdate desc;sql +=
22、 limit + (pageNo - 1) * pageSize + , + pageSize;ResultSet rs = DB.executeQuery(stmt, sql);Statement stmtCount = DB.getStmt(conn);ResultSet rsCount = DB.executeQuery(stmtCount,select count(*) from product + queryStr.replaceAll(p., );try rsCount.next();totalRecords = rsCount.getInt(1);if(rs=null) retu
23、rn 0;while (rs.next() Product p = null;p = new Product();p.setId(rs.getInt(productid);p.setName(rs.getString(pname);p.setDescr(rs.getString(pdescr);p.setNormalPrice(rs.getDouble(normalprice);p.setMemberPrice(rs.getDouble(memberprice);p.setPdate(rs.getTimestamp(pdate);p.setCategoryId(rs.getInt(catego
24、ryid);products.add(p); catch (SQLException e) e.printStackTrace(); finally DB.close(rsCount);DB.close(stmtCount);DB.close(stmt);DB.close(rs);DB.close(conn);return totalRecords; 复杂搜索 复杂搜索的会员价中输入价格区间为10002000时,点击提交按钮进行搜索。复杂搜索界面如图3.7 所示。 图3.7 复杂搜索界面实现搜索功能的方法1:public int find(List products, int p
25、ageNo, int pageSize, ProductSearchFormBean bean) String queryStr = where 1=1 ;if(bean.getCategoryId() != -1) queryStr += and p.categoryid = + bean.getCategoryId();if(bean.getName() != null & !bean.getName().trim().equals() queryStr += and like % + bean.getName() + %;if(bean.getLowNormalPrice(
26、) != 0.0) queryStr += and p.normalprice = + bean.getLowNormalPrice();if(bean.getHighNormalPrice() != 0.0) queryStr += and p.normalprice = + bean.getLowMemberPrice();if(bean.getHighMemberPrice() != 0.0) queryStr += and p.memberprice = + bean.getStartDate() + 00:00:00;if(bean.getEndDate() != null & !b
27、ean.getEndDate().trim().equals() queryStr += and p.pdate = + bean.getEndDate() + 00:00:00;return dao.getProducts(products, pageNo, pageSize, queryStr);public int getProducts(List products, int pageNo, int pageSize,String queryStr) int totalRecords = -1;Connection conn = DB.getConn();Statement stmt =
28、 DB.getStmt(conn);String sql = ;sql = select p.id productid, pname, p.descr pdescr, p.normalprice, + p.memberprice, p.pdate, p.categoryid , + c.id categoryid, cname, c.descr cdescr, c.pid, c.grade + from product p join category c on (p.categoryid = c.id) + queryStr + order by p.pdate desc;sql += limit + (pageNo - 1) * pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年饭店业主权转让协议
- 2024年重庆股权转让协议精简
- 2024年冬季道路扫雪服务承包协议
- 2024届安徽池州市高三年级寒假验收考试数学试题试卷
- 2023-2024学年浙江省效实中学高三下期末教学检测试题数学试题试卷
- 化服务交易结算协议模板2024
- 2024年度装修项目协议样本
- 2024虾池养殖权承包协议示例
- 2024挂靠项目管理协议样本集萃
- 2024年天然气服务协议范例
- 最新病历书写规范课件
- 一年级上册语文全册课件
- 《节能监察的概念及其作用》
- 蔬菜会员卡策划营销推广方案多篇
- KUKA机器人编程手册
- DBJ53T-19-2007加芯搅拌桩技术规程
- 《乐理》课程标准(中职)
- #1机组整套启动前质量监督检查汇报材料
- 新人教版部编版二年级上册语文期中复习课件
- 配电室综合监控系统完整方案
- 2022校园运动会主题课件
评论
0/150
提交评论