网上商城 课程设计Word文档下载推荐.docx
- 文档编号:20857349
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:21
- 大小:890.40KB
网上商城 课程设计Word文档下载推荐.docx
《网上商城 课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网上商城 课程设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
参考文献17
1系统功能概述
1.1系统的主要功能:
(1)前台用户的注册;
(2)后台管理员对用户的简单管理;
(3)后台管理员对商品类别的管理;
(4)后台管理员对商品信息的管理。
1.2网上商城后台管理系统结构总图,如下图所示。
2数据库设计
2.1需求分析
建立一个完善的网上购物平台,包括前台显示和后台的管理,前台通过可视化的界面显示给用户,用户通过可视化的操作与数据库进行动态交互。
而后台管理员则对前台显示的信息进行管理,本系统主要是后台管理的设计,其主要功能如下:
(1)注册用户信息在后台的显示;
(2)商品类别的管理,主要有类别的添加、修改、删除和列表显示;
(3)商品具体信息的管理,主要有商品的添加、修改、删除和列表显示。
2.2网上商城后台管理系统E-R模型
2.2.1用户信息实体属性[3]E-R模型,如下图所示。
图2.1用户信息实体属性图
2.2.2商品类别实体[3]E-R模型,如下图所示。
图2.2商品类别实体图
2.2.3商品信息实体属性[3]E-R模型,如下图所示。
图2.3商品信息实体属性图
2.5表结构设计
表结构是存放数据的格式,也是呈现在数据库中的样式。
下图分别是表2.1用户表的表结构、表2.2商品类别表的表结构以及表2.3商品信息表的表结构。
表2.1用户表的表结构
字段名
数据类型
长度
含义
约束
id
int
11
用户ID
primarykeyauto_increment
username
varchar
40
用户名
DefaultNULL
password
20
密码
DefaultNULL
phone
Varchar
电话
addr
255
地址
rdate
datetime
注册时间
表2.2商品类别表的表结构
类别ID
name
类别名
descr
类别描述
pid
Int
父类别ID
isleaf
是否子类别
grade
级别
备注:
字段isleaf,若类别为没有子类别则取值为0,若有子类别取值则为1。
表2.3商品信息表的表结构
商品ID
商品名
商品描述
normalprice
double
市场价
memberprice
会员价
pdate
上架时间
categoryid
3系统各功能模块的详细设计
3.1后台管理员登陆模块
该模块是后台管理的入口,通过前台提交的登录名和密码,在程序中验证是否能进入后台管理系统。
后台管理员登陆界面如下图3.1所示。
图3.1后台登陆界面
接受表单[2]提交的数据并进行验证,代码如下所示:
<
%
Stringaction=request.getParameter("
action"
);
if(action!
=null&
&
action.equals("
login"
)){
Stringusername=request.getParameter("
username"
Stringpassword=request.getParameter("
password"
if(!
username.equals("
admin"
)||!
password.equals("
)){
out.println("
usernameorpasswordnotcorrect!
"
return;
}
session.setAttribute("
"
response.sendRedirect("
index.jsp"
}
%>
3.2商品管理模块
3.2.1商品列表
证登入到后台管理时,通过点击管理主界面左侧产品管理下的产品列表的超链接,则在主界面右侧区域显示商品详细信息。
产品列表的界面如下图3.2所示。
图3.2产品列表界面
部分主要程序代码如下:
finalintPAGE_SIZE=5;
//每页显示多少条记录
finalintPAGES_PER_TIME=10;
//每次显示多少个页码链接
intpageNo=1;
StringstrPageNo=request.getParameter("
pageNo"
if(strPageNo!
!
strPageNo.trim().equals("
try{
pageNo=Integer.parseInt(strPageNo);
}catch(NumberFormatExceptione){
pageNo=1;
}
if(pageNo<
=0)
pageNo=1;
List<
Product>
products=newArrayList<
();
inttotalRecords=ProductManager.getInstance().getProducts(products,pageNo,PAGE_SIZE,true);
inttotalPages=(totalRecords+PAGE_SIZE-1)/PAGE_SIZE;
if(pageNo>
totalPages)
pageNo=totalPages;
publicintgetProducts(List<
products,intpageNo,intpageSize,booleanlazy){
inttotalRecords=-1;
Connectionconn=DB.getConn();
Stringsql="
;
if(lazy){
sql="
select*fromproductorderbypdateasc"
sql+="
limit"
+(pageNo-1)*pageSize+"
"
+pageSize;
ResultSetrs=DB.executeQuery(conn,sql);
StatementstmtCount=DB.getStmt(conn);
ResultSetrsCount=DB.executeQuery(stmtCount,"
selectcount(*)fromproduct"
try{
rsCount.next();
totalRecords=rsCount.getInt
(1);
Productp=null;
while(rs.next()){
p=newProduct();
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(SQLExceptione){
e.printStackTrace();
returntotalRecords;
3.2.2商品添加
通过点击产品管理模块下的产品添加超链接,将出现添加商品的页面,管理员完善产品的全部信息后,点击提交按钮提交表单中的数据,后台程序代码将产品信息写入数据库。
产品添加的界面如图3.3所示。
图3.3添加产品界面
部分程序代码:
request.setCharacterEncoding("
GBK"
intcategoryId=-1;
StringstrCategoryId=request.getParameter("
categoryId"
if(strCategoryId!
strCategoryId.trim().equals("
categoryId=Integer.parseInt(strCategoryId);
action.trim().equals("
add"
Stringname=request.getParameter("
DoublenormalPrice=Double.parseDouble(request.getParameter("
normalPrice"
doublememberPrice=Double.parseDouble(request.getParameter("
memberPrice"
Stringdescr=request.getParameter("
Productp=newProduct();
p.setId(-1);
p.setName(name);
p.setNormalPrice(normalPrice);
p.setMemberPrice(memberPrice);
p.setDescr(descr);
p.setCategoryId(categoryId);
p.setPdate(newTimestamp(System.currentTimeMillis()));
ProductManager.getInstance().addProduct(p);
publicbooleanaddProduct(Productp){
Connectionconn=null;
PreparedStatementpstmt=null;
conn=DB.getConn();
Stringsql="
if(p.getId()==-1){
sql="
insertintoproductvalues(null,?
?
)"
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.executeUpdate();
returntrue;
}catch(SQLExceptione){
returnfalse;
}finally{
DB.close(pstmt);
DB.close(conn);
3.2.3商品修改
点击商品列表中处理项中的修改链接,则出现修改相应商品的信息,当填写好修改之后的信息后,点击提交按钮,对商品信息进行更新操作。
修改商品信息的运行界面如图3.4所示。
图3.4修改商品信息界面
接受表单[1]数据代码如下:
intid=Integer.parseInt(request.getParameter("
Productp=ProductManager.getInstance().loadById(id);
doublenormalPrice=Double.parseDouble(request.getParameter("
intcategoryId=Integer.parseInt(request.getParameter("
ProductManager.getInstance().updateProduct(p);
out.println("
更新成功!
<
scripttype="
text/javascript"
>
!
--
parent.main.location.reload();
//-->
/script>
将更新的商品信息写入数据库的upDateProduct方法[3]:
publicbooleanupdateProduct(Productp){
conn=DB.getConn();
Stringsql="
updateproductsetname=?
descr=?
normalprice=?
memberprice=?
pdate=?
categoryid=?
whereid="
+p.getId();
3.2.4商品搜索
商品的搜索分为简单搜索和复杂搜索,简单搜索通过关键字搜索,复杂搜索可以通过各种商品的各种信息进行搜索。
商品搜索界面如图3.5所示。
图3.5商品搜索界面
3.2.4.1简单搜索
搜索的搜索框中输入关键字“笔”之后,点击提交按钮。
简单搜索界面如图3.6所示。
图3.6简单搜索界面
接受表单[2]数据:
Stringkeyword=newString(request.getParameter("
keyword"
).getBytes("
8859_1"
),"
finalintPAGE_SIZE=2;
inttotalRecords=ProductManager.getInstance().getProducts(products,pageNo,PAGE_SIZE,keyword);
实现搜索功能的getProducts方法[1]:
products,intpageNo,intpageSize,StringqueryStr){
Statementstmt=DB.getStmt(conn);
sql="
selectp.idproductid,p.namepname,p.descrpdescr,p.normalprice,"
+
"
p.memberprice,p.pdate,p.categoryid,"
c.idcategoryid,c.namecname,c.descrcdescr,c.pid,c.grade"
fromproductpjoincategorycon(p.categoryid=c.id)"
+queryStr+
orderbyp.pdatedesc"
+(pageNo-1)*pageSize+"
+pageSize;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上商城 课程设计