第五章 实训案例网络书城系统汇编.docx
《第五章 实训案例网络书城系统汇编.docx》由会员分享,可在线阅读,更多相关《第五章 实训案例网络书城系统汇编.docx(91页珍藏版)》请在冰豆网上搜索。
![第五章 实训案例网络书城系统汇编.docx](https://file1.bdocx.com/fileroot1/2022-10/24/fb996502-3c98-4055-b1dd-81ec2467926b/fb996502-3c98-4055-b1dd-81ec2467926b1.gif)
第五章实训案例网络书城系统汇编
第三篇基于JSP+Struts2+Hibernate技术架构的开发
本篇的目的
⏹掌握Struts技术
⏹掌握Hibernate技术
⏹掌握事务处理技术
⏹掌握购物车原理
⏹理解泛型的使用
⏹熟练使用JSP+Struts2+Hibernate技术架构
第五章实训案例:
网络书城系统
本章将基于JSP+Struts+Hibernate技术设计与实现网络书城系统。
5.1系统分析
随着网络的广泛普及,网络支付手段的逐步完善,越来越多的人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。
传统书店的购书观念正在被网上方便快捷的购书方式所冲击。
网络书城就是借助于互联网,搭建读者和图书销售企业之间的桥梁,实现图书的快速查询和购买,既方便读者,也方便图书销售企业管理、宣传、推广和销售图书。
5.1.1需求描述
网络书城的主要功能就是让用户能够足不出户就可以购买到自已想要的书籍,所以网络书城系统主要提供如下功能:
●用户能够使用本网站完成图书的浏览、查询和购买。
●普通用户只能浏览图书信息。
浏览分为三种方式:
按类别浏览、按条件浏览、查询图书。
●普通用户通过注册成为注册用户,注册后的用户可以登录,密码忘记后可以找回密码,登录后可以修改注册资料。
●注册用户登录后可以进行在线图书购买,购买的图书存放在购物车中;可以对购物车中的商品数量进行修改、删除;调整好购物车中内容后,可进行结算,以将购买的图书保存到订单中。
●注册用户登录后可以浏览自己的订单,查看订单细目,对于没有得到商家处理的订单可以取消。
●管理员可分页浏览用户,可查看用户详细信息,可删除用户。
●管理员可管理图书分类、管理图书,添加图书时能够上传图书的图片。
●管理员可分页浏览订单、查看订单状态,处理订单,删除订单。
5.1.2用例分析
用例图(Use-caseDiagram)显示外部参与者与系统的交互,能够更直观地描述系统的功能。
从角色来看,网络书城系统的用户分为用户(普通用户)、会员(注册用户)、管理员。
图5-1和5-2是网络书城系统的两个用例图。
图5-1客户端用例图
图5-2管理端用例图
5.1.3功能分类
表5-1给出了网络书城的功能分类。
表5-1功能划分表
模块名
子功能
描述
前台功能
用户登录
提供用户名、密码后可以登录系统
用户注册
普通用户在注册页填写详细资料后成为正式注册用户
个人修改
用户登录后可以修改自己的注册资料
找回密码
忘记密码的用户可以通过email找回密码
密码设置
管理员可以修改自己的密码
浏览图书
以分页方式显示图书列表,并通过单击标题可查看书的详细信息;可进行分类浏览图书,并可按条件查询图书
购物车
登录用户在浏览图书时,可以把需要的图书添加到购物车中;可浏览购物车,修改购物车中图书的数量,删除购物车中的图书,清空购物车,或结算
订单浏览
登录用户可以浏览自己的订单,查看状态,并可查看订单细目
后台维护
用户管理
管理员可分页浏览用户、查看用户详细信息,可删除用户
分类管理
管理员进入浏览产品分类,可添加、修改或删除分类
图书管理
管理员可分页浏览图书、查看图书详细信息,可添加或修改图书
订单管理
管理员可分页浏览订单、查看订单状态、处理订单,删除订单
5.1.4其他需求
系统的界面美观、简洁、菜单设置和布局合理,除图形外界面色彩不宜过多。
页面具有明确的导航指示,且便于理解,方便用户使用。
进入本系统进行任何操作的时候,系统应该及时的进行反应,反应的时间在5秒以内。
系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应。
系统有严格的权限管理功能,各功能模块需有相应的权限方能进入。
系统需能够防止各类误操作可能造成的数据丢失,破坏。
防止用户非法获取网页以及内容。
2系统设计
2.1系统功能结构
系统的功能结构如图5-3所示。
图5-3网络书城的功能结构图
5.2.2数据库设计
根据企业信息展示系统的要求,主要涉及的数据有用户、图书分类、图书、订单、订单细目。
为此建立5个数据表来存储对应的数据。
1.数据库的逻辑设计
用户表所包含的字段如表5-2所示。
表5-2用户表
名称
描述
数据类型
大小
约束
默认值
user_id
用户编号
int
/
AIPK
user_name
用户名称
varchar
50
NN
user_pwd
密码
varchar
50
NN
user_realname
真实名
varchar
50
NN
user_phone
电话
varchar
50
NN
user_email
电子邮件
varchar
200
NN
user_addr
地址
varchar
200
NN
user_datetime
注册时间
timestamp
/
NN
当前时间
user_right
权限
int
/
NN
1
图书分类表所包含的字段如表5-3所示。
表5-3图书分类表
名称
描述
数据类型
大小
约束
默认值
cat_id
分类编号
int
/
AIPK
cat_name
分类名称
varchar
50
NNUN
图书表所包含的字段如表5-4所示。
表5-4图书表
名称
描述
数据类型
大小
约束
默认值
book_id
图书编号
int
/
AIPK
cat_id
分类编号
int
/
NNFK
book_publisher
出版社
varchar
200
NN
book_isbn
书号
varchar
50
NN
book_name
图书名称
varchar
200
NN
book_picture
图像
varchar
200
NN
book_price
价格
float
/
NN
book_author
作者
varchar
50
book_desc
简介
text
/
book_num
数量
int
/
订单表所包含的字段如表5-5所示。
表5-5订单表
名称
描述
数据类型
大小
约束
默认值
ord_id
订单编号
int
/
AIPK
user_id
用户编号
int
/
NNFK
ord_datetime
订货时间
timestamp
/
NN
ord_state
状态
int
/
NN
当前时间
订单细目表所包含的字段如表5-6所示。
表5-6订单细目表
名称
描述
数据类型
大小
约束
默认值
det_id
细目编号
int
/
PK
ord_id
订单编号
int
/
NNFK
book_id
图书编号
text
/
NNFK
det_num
数量
int
/
NN
0
2.数据库的物理设计
系统数据库命名为bs,bs_category(图书分类),bs_book(图书),bs_user(用户)、bs_order(订单),bs_details(订单细目)。
表之间的关系如图5-4所示。
图5-4网络书城系统数据表及其关系
建立的数据库的SQL脚本如下所示。
createdatabasebs;
usebs;
createtablebs_category(
cat_idintauto_incrementprimarykey,
cat_namevarchar(50)notnullunique
);
createtablebs_book(
book_idintauto_incrementprimarykey,
cat_idintnotnullreferencesbs_category(cat_id),
book_publishervarchar(200)notnull,
book_isbnvarchar(50)notnull,
book_namevarchar(50)notnull,
book_picturevarchar(50)notnull,
book_pricefloatnotnull,
book_authorvarchar(50)notnull,
book_desctextnotnull,
book_numintnotnull
);
createtablebs_user(
user_idintauto_incrementprimarykey,
user_namevarchar(50)notnull,
user_pwdvarchar(50)notnull,
user_realNamevarchar(50)notnull,
user_phonevarchar(50)notnull,
user_emailvarchar(200)notnull,
user_addrvarchar(200)notnull,
user_datetimetimestamp,
user_rightintdefault1
);
createtablebs_order(
ord_idintauto_incrementprimarykey,
user_idintnotnullreferencesbs_user(user_id),
ord_datetimetimestamp,
ord_stateintdefault0
);
createtablebs_details(
det_idintauto_incrementprimarykey,
ord_idintnotnullreferencesbs_order(ord_id),
book_idintnotnullreferencesbs_book(book_id),
det_numfloatnotnull
);
5.2.3架构及程序结构
为了实现系统便于维护和扩展的目标,系统采用分层架构,整体上分四层:
视图层、控制层、业务逻辑层和数据访问层。
系统实现采用JSP+Struts+Hibernate技术。
即视图层主要通过JSP实现,控制层通过Struts实现,数据层通过Hibernate实现。
项目命名为bs。
视图放在【Web页】文件夹下。
为了便于管理,划分如下文件夹:
user(用户),category(分类),book(图书),bookimages(图书图像),cart(购物车),order(订单),common(公共),css(样式表),images(图像),script(脚本)。
如图5-5所示。
其他层均放在源包下。
在源包下建立bookstore.action(控制类包),bookstore.idao(数据访问接口包),bookstore.dao(数据访问实现类包),bookstore.iservice(业务逻辑接口包),bookstore.service(业务逻辑实现类包),bookstore