1、第五章 实训案例网络书城系统汇编第三篇 基于JSP+Struts2+Hibernate技术架构的开发本篇的目的 掌握Struts技术 掌握Hibernate技术 掌握事务处理技术 掌握购物车原理 理解泛型的使用 熟练使用JSP+Struts2+Hibernate技术架构第五章 实训案例:网络书城系统本章将基于JSP+Struts+Hibernate技术设计与实现网络书城系统。5.1 系统分析随着网络的广泛普及,网络支付手段的逐步完善,越来越多的人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统书店的购书观念正在被网上方便快捷的购书方式所冲击。网络书城就是借助于互联网
2、,搭建读者和图书销售企业之间的桥梁,实现图书的快速查询和购买,既方便读者,也方便图书销售企业管理、宣传、推广和销售图书。5.1.1 需求描述网络书城的主要功能就是让用户能够足不出户就可以购买到自已想要的书籍,所以网络书城系统主要提供如下功能: 用户能够使用本网站完成图书的浏览、查询和购买。 普通用户只能浏览图书信息。浏览分为三种方式:按类别浏览、按条件浏览、查询图书。 普通用户通过注册成为注册用户,注册后的用户可以登录,密码忘记后可以找回密码,登录后可以修改注册资料。 注册用户登录后可以进行在线图书购买,购买的图书存放在购物车中;可以对购物车中的商品数量进行修改、删除;调整好购物车中内容后,可
3、进行结算,以将购买的图书保存到订单中。 注册用户登录后可以浏览自己的订单,查看订单细目,对于没有得到商家处理的订单可以取消。 管理员可分页浏览用户,可查看用户详细信息,可删除用户。 管理员可管理图书分类、管理图书,添加图书时能够上传图书的图片。 管理员可分页浏览订单、查看订单状态,处理订单,删除订单。5.1.2 用例分析用例图(Use-case Diagram)显示外部参与者与系统的交互,能够更直观地描述系统的功能。从角色来看,网络书城系统的用户分为用户(普通用户)、会员(注册用户)、管理员。图5-1和5-2是网络书城系统的两个用例图。图5-1 客户端用例图图5-2 管理端用例图5.1.3 功
4、能分类表5-1给出了网络书城的功能分类。表5-1 功能划分表模块名子功能描述前台功能用户登录提供用户名、密码后可以登录系统用户注册普通用户在注册页填写详细资料后成为正式注册用户个人修改用户登录后可以修改自己的注册资料找回密码忘记密码的用户可以通过email找回密码密码设置管理员可以修改自己的密码浏览图书以分页方式显示图书列表,并通过单击标题可查看书的详细信息;可进行分类浏览图书,并可按条件查询图书购物车登录用户在浏览图书时,可以把需要的图书添加到购物车中;可浏览购物车,修改购物车中图书的数量,删除购物车中的图书,清空购物车,或结算订单浏览登录用户可以浏览自己的订单,查看状态,并可查看订单细目后
5、台维护用户管理管理员可分页浏览用户、查看用户详细信息,可删除用户分类管理管理员进入浏览产品分类,可添加、修改或删除分类图书管理管理员可分页浏览图书、查看图书详细信息,可添加或修改图书订单管理管理员可分页浏览订单、查看订单状态、处理订单,删除订单5.1.4 其他需求系统的界面美观、简洁、菜单设置和布局合理,除图形外界面色彩不宜过多。页面具有明确的导航指示,且便于理解,方便用户使用。进入本系统进行任何操作的时候,系统应该及时的进行反应,反应的时间在5秒以内。系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应。系统有严格的权限管理功能,各功能模块需
6、有相应的权限方能进入。系统需能够防止各类误操作可能造成的数据丢失,破坏。防止用户非法获取网页以及内容。2 系统设计2.1 系统功能结构系统的功能结构如图5-3所示。图5-3 网络书城的功能结构图5.2.2 数据库设计根据企业信息展示系统的要求,主要涉及的数据有用户、图书分类、图书、订单、订单细目。为此建立5个数据表来存储对应的数据。1. 数据库的逻辑设计用户表所包含的字段如表5-2所示。表5-2 用户表名称描述数据类型大小约束默认值user_id用户编号int/AI PKuser_name用户名称varchar50NNuser_pwd密码varchar50NNuser_realname真实名v
7、archar50NNuser_phone电话varchar50NNuser_email电子邮件varchar200NNuser_addr地址varchar200NNuser_datetime注册时间timestamp/NN当前时间user_right权限int/NN1图书分类表所包含的字段如表5-3所示。表5-3 图书分类表名称描述数据类型大小约束默认值cat_id分类编号int/AI PKcat_name分类名称varchar50NN UN图书表所包含的字段如表5-4所示。表5-4 图书表名称描述数据类型大小约束默认值book_id图书编号int/AI PKcat_id分类编号int/NN
8、FKbook_publisher出版社varchar200NNbook_isbn书号varchar50NNbook_name图书名称varchar200NNbook_picture图像varchar200NNbook_price价格float/NNbook_author作者varchar50book_desc简介text/book_num数量int/订单表所包含的字段如表5-5所示。表5-5 订单表名称描述数据类型大小约束默认值ord_id订单编号int/AI PKuser_id用户编号int/NN FKord_datetime订货时间timestamp/NNord_state状态int/NN
9、当前时间订单细目表所包含的字段如表5-6所示。表5-6 订单细目表名称描述数据类型大小约束默认值det_id细目编号int/PKord_id订单编号int/NN FKbook_id图书编号text/NN FKdet_num数量int/NN02. 数据库的物理设计系统数据库命名为bs,bs_category(图书分类),bs_book(图书),bs_user(用户)、bs_order(订单),bs_details(订单细目)。表之间的关系如图5-4所示。图5-4 网络书城系统数据表及其关系建立的数据库的SQL脚本如下所示。create database bs;use bs ;create tab
10、le bs_category(cat_id int auto_increment primary key,cat_name varchar(50) not null unique );create table bs_book(book_id int auto_increment primary key,cat_id int not null references bs_category(cat_id),book_publisher varchar (200) not null ,book_isbn varchar(50) not null,book_name varchar(50) not n
11、ull,book_picture varchar(50) not null,book_price float not null,book_author varchar(50) not null,book_desc text not null,book_num int not null);create table bs_user (user_id int auto_increment primary key,user_name varchar(50) not null,user_pwd varchar(50) not null,user_realName varchar(50) not null
12、,user_phone varchar(50) not null,user_email varchar(200) not null,user_addr varchar(200) not null,user_datetime timestamp,user_right int default 1);create table bs_order (ord_id int auto_increment primary key,user_id int not null references bs_user(user_id),ord_datetime timestamp,ord_state int defau
13、lt 0);create table bs_details(det_id int auto_increment primary key,ord_id int not null references bs_order(ord_id),book_id int not null references bs_book(book_id),det_num float not null);5.2.3 架构及程序结构为了实现系统便于维护和扩展的目标,系统采用分层架构,整体上分四层:视图层、控制层、业务逻辑层和数据访问层。系统实现采用JSP+Struts+Hibernate技术。即视图层主要通过JSP实现,控制
14、层通过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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1