JAVA网上商城系统课设报告.docx
《JAVA网上商城系统课设报告.docx》由会员分享,可在线阅读,更多相关《JAVA网上商城系统课设报告.docx(33页珍藏版)》请在冰豆网上搜索。
![JAVA网上商城系统课设报告.docx](https://file1.bdocx.com/fileroot1/2023-4/29/11eead7e-ce07-46ee-94ed-a4e6e585bc54/11eead7e-ce07-46ee-94ed-a4e6e585bc541.gif)
JAVA网上商城系统课设报告
1.绪论
1.1课题研究背景
随着社会经济的发展和信息技术的高度发达,越来越多的企业和个人的购物方式和以前有了实质的改变,网上商店逐渐增多,交易的方式也从以前的网上发布,然后网下交易购买,发展到了直接通过网络进行在线支付,随着物流的发展,交易的物品也从以前的大件物品,发展到现在几乎所有商品都能在网上购买。
因此,为了更方便顾客购物,就需要有一个功能比较完善的网上商城系统来实现这个平台。
网上商城系统是解决实体商城各种问题的一种方法。
因此该课题具有一定的意义和研究价值。
1.2课题研究意义
相对于传统的实体商城,网上商城投资少,回收快。
一项针对中国中小企业的情况调查显示,个人在网下启动销售公司的平均费用至少5万元,而网上开店建店成本非常小。
一般说,筹办一家网上的商店投入很小,不用去办营业执照,不用去租门面,不用囤积货品,所需资金不过1500元左右;网上商店比同等规模的地面商店“租金”要低得多,同时租金不会因为营业面积的增加而增加,投资者也不用为延长营业时间而增加额外的费用。
基本不需要占压资金。
传统商店的进货资金少则几千元,多则数万元,而网上商店则不需要压资金。
24小时营业时间。
网上商店延长了商店的营业时间,一天24小时、一年365天不停地运作,无须专人值班看店,都可照常营业。
传统店铺的营业时间一般为8-12小时,遇上坏天气或者老板、店员有急事也不得不暂时休息。
销售规模不受地盘限制。
传统商店有多大就只能摆放多少商品,生意大小常常被小店面积限制。
而在网上,即便在地面上只有一个小商店,或者干脆就没有门面,开店的生意却可以照样做得很大。
不受店面空间的限制。
哪怕只是街边小店,在网上却可以拥有百货大楼那么大的店面,只要投资者愿意,可以摆上成千上万种商品。
目前国最大的专业拍卖同时在线的商品要超过10万件——已超过一些大超市。
不受地理位置影响。
不管客户离店有多远,也不管顾客是国还是国外,在网上,客户一样可以很方便地找到并购买商品。
这令消费群体突破了地域的限制,变得无限广阔了。
1.3国外的发展现状
伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已不再满足于信息浏览和发布,而是渴望着能够充分享受网络所带来的更多的便利。
客户足不出户便可以方便快捷的选购自己喜欢的商品,这正是网络购物中心为客户带来的好处。
敏锐的网络商家当然不会错过这样绝好的机会,越来越多的投身到提供网络购物服务的行列中来,一个基于Internet的全球电子商务框架正在形成。
在我国,网上购物从无到有也不过短短几年时间。
我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。
根据NIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,到2006年中国网上购物用户将达到6962万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。
因此,设计一个网上购物具有非常好的开发与应用前景。
2.需求分析
2.1技术可行性分析
本系统在前台用在前台用JSP进行页面开发和管理用户界面,提示信息完善,界面友好,具有较强的亲和力,后台采用MYSQL数据开发和管理数据库,对数据库操作采用事务处理机制,具有强大的错误处理功能。
本系统的开发环境是使用现在非常流行的开源开发工具Eclipse和Tomcat服务器。
使用的灵活、以及他们当前的广泛实际应用,充分说明本系统在技术方面可行。
2.2操作可行性分析
本系统采用的是网上管理,非常简单、易懂,不需要具有非常高的计算机专业知识,只需要管理员能够上网,就可对商城进行维护。
2.3成本可行性分析
整个开发过程只需要一台装有上述所需求的各种软件的PC机就可以实现全部的开发任务。
目前的计算机硬件市场竞争比较激烈,在价格上都出现了从没有过低廉;而所需要的各种软件,在相关产品的官方上都可以免费下载,而且还不断的有增加了最新功能的升级版的出现。
因此,整个开发成本可以说是非常的低廉,这也为我进一步完善我的提供了更大的方便。
在使用成本上,用户只需要拥有一台能够连接到国际互联网上的计算机,通过注册就可以在世界的任何一个角落使用的全部功能和服务。
而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,极大了方便了广大用的访问与使用。
因此,从成本可行性分析来看,这个体现了经济实惠,但是功能强大的特点。
3.总体设计
网上商城系统又称在线商城系统,其功能主要包含商品的管理、会员的管理、订单的管理、在线支付等。
本次实训将由指导老师带领学生有JavaEE技术完成“网上商城系统”的设计与开发,主要开发的功能如图3-1所示。
图3-1功能图
1)后台功能
商品模块:
包括后台商品库存管理、上货、出货、编辑管理和商品分类管理、商品品牌管理等。
订单模块:
在线订单程序,使消费者能够顺利的通过Web在线的方式,直接生成购买订单。
会员模块:
在购物系统中,集成会员注册是吸引会员进行二次购买和提升转换率最好的方式。
配送模块:
购物系统集成的物流配送方式,从而方便消费者对物流方式进行在线选择。
如:
EMS、顺风等等。
2)前端功能
商品搜索:
通过前端界面,以标准的或者其他个性化的方式向用户展示商品各类信息,完成购物系统信息流的传递。
购物车:
用户可对想要购买的商品进行网上订购,在购物过程中,随时增删商品。
商品浏览:
随着电子商务的发展商品图片成为吸引消费者的第一要素,多图展示即提供前台多图片的展示,从而提升消费者的购物欲望。
用户管理模块:
为了方便于的管理,必须由一套完整的用户管理体系。
该用户管理模块主要实现用户的注册、登录、找回密码3方面功能。
为了全面的了解前端功能,图3-2将前端的购物流程详细的展示。
图3-2购物流程
4.详细设计
4.1数据库设计
4.1.1概念建模
本系统实体包括:
管理员、、顾客、商品、购物车、订单。
如图4-1所示:
图4-1E-R图
4.1.2物理建模
数据库表之间关系如图4-1所示:
图4-2数据库表关系图
4.1.3数据库表结构
整个购物系统能运行离不开数据库的支持,数据库在整个系统的最底部发挥着不可忽视的作用。
没有了数据库的支撑,系统无法运行。
由此可见,系统离不开数据库,在系统之前首先必须保证数据库的准备工作已经完成。
本系统采用的是Mysql数据库,数据库的准备工作需要以下几个表来保存整个系统的重要信息,它们分别是:
商品表,用来存储购物系统的所有商品的信息,能够根据这个表来管理所有的商品信息,如表4-1所示。
表4-1商品表(product)
字段
类型
长度
备注
productid
int
11
商品表主键
productname
varchar
200
商品名
categoryid
int
11
分类ID(外键)
storecount
int
11
库存量
marketprice
float
10
市场价
saleprice
float
10
销售价
hit
int
11
点击量
addtime
varchar
200
上架时间
isdel
varchar
255
是否下架
content
text
商品详情
商品图片表,用来存储购物系统的商品的所有图片信息,能够根据这个表来管理商品所有的图片信息,如表4-2所示。
表4-2商品图片表(pic)
字段
类型
长度
备注
picid
int
11
主键
picurl
vachar
200
图片路径
productid
int
11
商品ID(外键)
分类表,用来存储购物系统的所有商品的分类信息,能够根据这个表来管理所有的分类信息,如表4-3所示。
表4-3分类表(category)
字段
类型
长度
备注
categoryid
int
11
分类表主键
categoryname
varchar
100
分类名
parnetid
int
11
父分类ID
level
int
11
分类的级
商品属性名称表,用来存储购物系统的所有商品属性名称信息,能够根据这个表来管理所有商品属性名称信息,如表4-4所示。
表4-4商品属性名称表(attribute)
字段
类型
长度
备注
attributeid
int
11
主键
name
varchar
100
商品属性名字
商品属性值表,用来存储购物系统的所有商品属性值的信息,能够根据这个表来管理所有商品属性值的信息,如表4-5所示。
表4-5商品属性值表(value)
字段
类型
长度
备注
valueid
int
11
主键
valuestr
varchar
100
商品属性值
商品属性中间表,用来存储购物系统的所有商品的属性信息,能够根据这个表来管理所有商品的属性信息,如表4-6所示。
表4-6商品属性中间表(attrvalue)
字段
类型
长度
备注
id
int
11
主键
attributeid
int
11
商品属性名称ID(外键)
valueid
int
11
商品属性值ID(外键)
productid
int
11
商品ID(外键)
发票表,用来存储购物系统的发票信息,能够根据这个表来管理发票,如表4-7所示。
表4-7发票表(invocie)
字段
类型
长度
备注
invocieid
int
11
主键
title
vachar
100
发票类型
content
vachar
100
明细
orderid
int
11
订单ID(外键)
订单明细表,用来存储购物系统的所有订单详细信息,能够根据这个表来管理订单详细信息,如表4-8所示。
表4-8订单明细表(orderdetail)
字段
类型
长度
备注
orderdetailid
int
11
主键
productid
int
11
商品表ID
productname
varchar
100
商品名
saleprice
float
10
销售价
buycount
int
11
购买数量
orderid
int
11
订单ID(外键)
订单表,用来存储购物系统的所有订单信息,能够根据这个表来管理订单信息,如表4-9所示。
表4-9订单表(orders)
字段
类型
长度
备注
orderid
int
11
主键
orderno
vachar
100
订单编号
userid
int
11
用户ID(外键)
bz
varchar
100
标志
paywayid
int
11
支付方式ID(外键)
sendwayid
int
11
配送方式ID(外键)
total
float
10
总价
支付方式表,用来存储购物系统的支付信息,能够根据这个表来管理支付信息,如表4-10所示。
表4-10支付方式表(payway)
字段
类型
长度
备注
paywayid
int
11
主键
title
vachar
100
支付方式
收货人信息表,用来存储购物系统的收货人信息,能够根据这个表来管理收货人信息,如表4-11所示。
表4-11收货人信息表(receive)
字段
类型
长度
备注
receiveid
int
11
主键
receiver
varchar
100
收货人
address
varchar
100
地址
mobile
varchar
100
手机
phone
varchar
100
固话
mail
varchar
100
postcode
varchar
255
邮编
配送方式表,用来存储购物系统的配送方式,能够根据这个表来管理配送方式,如表4-12所示。
表4-12配送方式表(sendway)
字段
类型
长度
备注
sendwayid
int
11
主键
sendway
varchar
100
配送方式
sendmoney
float
10
运费
用户表,用来存储所有会员用户的信息,能够根据这个表管理所有用户,如表4-13所示。
表4-13用户表(user)
字段
类型
长度
备注
userid
int
11
主键
username
varchar
100
用户名
password
vachar
100
密码
realname
varchar
100
真实
score
int
11
积分
amount
float
10
余额
question
varchar
100
问题
answer
varchar
100
答案
email
varchar
100
tel
varchar
100
4.2功能设计
网上商城系统又称在线商城系统,其功能主要包含商品的管理、会员的管理、订单的管理、在线支付等。
1)后台功能
商品模块:
包括后台商品库存管理、上货、出货、编辑管理和商品分类管理、商品品牌管理等。
订单模块:
在线订单程序,使消费者能够顺利的通过Web在线的方式,直接生成购买订单。
会员模块:
在购物系统中,集成会员注册是吸引会员进行二次购买和提升转换率最好的方式。
配送模块:
购物系统集成的物流配送方式,从而方便消费者对物流方式进行在线选择。
如:
EMS、顺风等等。
2)前端功能
商品搜索:
通过前端界面,以标准的或者其他个性化的方式向用户展示商品各类信息,完成购物系统信息流的传递。
购物车:
用户可对想要购买的商品进行网上订购,在购物过程中,随时增删商品。
商品浏览:
随着电子商务的发展商品图片成为吸引消费者的第一要素,多图展示即提供前台多图片的展示,从而提升消费者的购物欲望。
用户管理模块:
为了方便于的管理,必须由一套完整的用户管理体系。
该用户管理模块主要实现用户的注册、登录、找回密码3方面功能。
该购物具体功能结构图如图4-3所示。
图4-3功能图
4.3代码设计
4.3.1后台功能
1)添加或修改
a.判断是添加还是修改代码
//如果有商品ID,说明是编辑
intproductid=monUtil.getIntParameter(request,"productid");
BaseDAOdao=newBaseDAO();
if(productid!
=0){//说明是进入修改页面
try{
Maprecord=dao.listWithPage("a.*,b.categoryname","producta,categoryb","anda.categoryid=b.categoryidanda.productid="+productid,"a.productiddesc",1,9999,false).getRecords().get(0);
request.setAttribute("record",record);
}catch(Exceptione){
e.printStackTrace();
}
}
Stringtree=CategoryUtil.makeTree("listcategory");
request.setAttribute("tree",tree);
request.getRequestDispatcher("addproduct.jsp").forward(request,response);
b.添加或修改代码
//接收参数
Stringproductname=request.getParameter("productname");
Stringcategoryid=request.getParameter("categoryid");
Stringstorecount=request.getParameter("storecount");
Stringmarketprice=request.getParameter("marketprice");
Stringsaleprice=request.getParameter("saleprice");
Stringhit=request.getParameter("hit");
Stringpicture=request.getParameter("picture");
Stringaddtime=request.getParameter("addtime");
Stringisdel=request.getParameter("isdel");
Stringcontent=request.getParameter("content");
intproductid=monUtil.getIntParameter(request,"productid");
try{
//调用DAO
BaseDAOdao=newBaseDAO();
intresult=0;
if(productid!
=0){//修改
result=dao.update("product","productname='"+productname+"',
categoryid='"+categoryid+"',storecount='"+storecount+"'
marketprice='"+marketprice+"',saleprice='"+saleprice+"',
hit='"+hit+"',picture='"+picture+"',addtime='"+addtime+"',
isdel='"+isdel+"',content='"+content+"'","andproductid="+productid);
}else{//添加result=dao.add("product","productname='"+productname+"',
categoryid='"+categoryid+"',storecount='"+storecount+"',
marketprice='"+marketprice+"',saleprice='"+saleprice+"',
hit='"+hit+"',picture='"+picture+"',addtime='"+addtime+"',
isdel='"+isdel+"',content='"+content+"'");
}
Stringmsg="";
if(result>0){
msg="";
}else{
msg="";
}
//把提示信息放入request
request.setAttribute("msg",msg);
request.getRequestDispatcher("msg.jsp").forward(request,response);
c.商品的添加及修改公用一个页面,如图4-4所示。
图4-4添加或修改页面
2)商品列表及删除
a.列表代码
Stringwhere="anda.categoryid=b.categoryid";
Stringproductname=monUtil.getStringParameter(request,"productname");
if(!
productname.equals("")){
where+="anda.productnamelike'%"+productname+"%'";
}
intcategoryid=monUtil.getIntParameter(request,"categoryid");
if(categoryid!
=0){
where+="anda.categoryid="+categoryid;
}
monUtil.getIntParameter(request,"categoryname");
floatstartprice=monUtil.getFloatParameter(request,"startprice");
floatendprice=monUtil.getFloatParameter(request,"endprice");
if(startprice==0&&endprice==0){
}else{
floattemp=0;
if(startprice>endprice){
temp=startprice;
startprice=endprice;
endprice=temp;
}
where+="anda.saleprice>="+startprice+"anda.saleprice<="+endprice;
}
BaseDAOdao=newBaseDAO();
SearchResultsr=dao.listWithPage("a.*,b.categoryname","producta,categoryb",where,"a.addtimedesc",monUtil.getPageNo(request),2,true);
request.setAttribute("records",sr.getRecords());
request.setAttribute("pb",sr.getPb());
Listpagecode=newArrayList();
for(inti=1;i<=sr.getPb().getPageCount();i++){
pagecode.add(i);
}
request.setAttribute("pagecode",pagecode);
Stringtree=CategoryUtil.makeTree("searchproduct");
request.setAttribute("tree",tree);
request.getRequestDispatcher("listp