系统展示
基于Java的图书商城系统的设计与实现
摘要
网上购物已成为在线业务的重要载体,尤其是网上书店更是呈现出一种蓬勃发展的姿态。本课题就是为了适应这样一种发展趋势、方便人们购书而设计的。它描述了一个利用计算机通过网络来购买、销售书籍的过程。网站可以为用户提供商品的详细信息,用户可以在线购买商品,确定自己的订单。
本课题从理论和实践两个角度出发,通过设计和实现一个基于JSP应用的网上书店,对电子商务以及所涉及的SSM框架等进行了较为深入的探讨。
本系统所使用的开发语言是Java。作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,Java的小应用程序(applet)可在网络上运行而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。
关键词 网上购物;SSM框架;MySQL;Tomcat
第1章 绪论
1.1 课题背景
随着科技的不断发展和网络的逐步普及,企业的WWW网站在商业活动中发挥着越来越大的作用,在信息时代,建立一个功能强大、界面美观的电子商务网站,建立电子商务系统平台,对企业的发展是至关重要的。
所谓电子商务,是指各种具有商业活动能力的实体(生产企业、商贸企业、金融机构、政府机构、个人消费者等)利用网络和先进的数字化传媒技术进行的各项商业贸易活动。其中特别要强调的特点,一是其商业背景,二是网络化和数字化。简言之,电子商务就是通过电子网络渠道达成的商务活动。它是计算机网络的第二次革命,通过电子手段建立新的经济秩序,不仅涉及电子技术和商业交易本身,而且涉及诸如金融、税务、教育等社会其他层面。电子商务活动相应分成两大类:企业组织-企业组织(Business- Business,B2B)型和企业组织-消费者(BusinessConsumer,B2C)型。一般意义上,一个完整的电子商务系统包括信息流、资金流与物流三个要素,三者相辅相成。除了此之外,网络安全也是需要重点考虑的因素。
1.2课题目的
网上购物已成为在线业务的重要载体,尤其是网上书店更是呈现出一种蓬勃发展的姿态。本课题就是为了适应这样一种发展趋势、方便人们购书而设计的。它描述了一个利用计算机通过网络来购买、销售和交换书籍、服务信息的过程。网站可以为用户提供商品的详细信息,用户可以在线购买商品,确定自己的订单。
本课题从理论和实践两个角度出发,通过设计和实现一个基于JSP应用的网上书店,对电子商务以及所涉及的SSM框架等进行了较为深入的探讨。
1.3课题意义
本系统所使用的开发语言是java。作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,Java的小应用程序(applet)可在网络上运行而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。
本系统具有很强的针对性和实用性。此外,还具有如下的特点:
(1)友好的操作接口
菜单方式与直观方式,操作简单,接口美好,功能完备,完全采用人机对话方式。交互性强。
(2)运用SSM框架让系统更具有可维护性
SSM框架的运用让整个系统的结构、层次、功能都一目了然。使系统更具有可扩展性和可维护性。
1.4 论文构成
本论文第一章介绍了本课题的背景、目的、研究现状和发展趋势以及课题意义。
第二章介绍了做此系统的相关技术,应用的相关技术有JSP、MySQL、MyEclipse以及Tomcat。介绍了SSM的体系结构,其中包括MVC设计模式以及SSM设计模式。
第三章介绍了系统分析其中包括需求分析以及可行性分析,可行性分析又包括技术上的可行性和经济上的可行性。第四章介绍了本系统的系统设计其中包括系统目标、系统功能结构和业务流程图。
第五章介绍了本系统的数据库设计其中包括数据库概念设计、数据库逻辑结构。
第六章主要介绍了网站的详细设计其中包括文件夹组织结构、公共类设计、网站前台设计、网站后台设计、系统配置文件设计和系统开发技巧与难点分析。
第4章 系统设计
系统设计主要是对该系统急性系统目标的射击以及系统功能的设计和系统功能结构的设计,包括树城前台、图书商城后台,另外还有业务流程图包括客户端流程图和管理员流程图。
4.1 系统目标
连接信息进行维护管理。
(1)以滚动的方式显示公告信息,进行对于典型的数据库管理系统,尤其是像网上图书商城这样数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本图书商城的系统目标如下:
(2)展示最新的书目
(3)用户可以修改个人资料,密码,查询订单及个人在网站上的消费情况。
(4)实现购物车和收银台的功能,用户可以在线提交订单。
(5)对书目信息进行管理,添加,修改及删除书目信息。
(6)对用户提交的订单进行管理。
(7)查看和查询用户详细信息及消费信息。
(8)对管理员信息,公告信息及友书目销量排行。
4.2 系统功能结构
4.2.1 图书商城前台
根据网上图书商城前台的特点,可以分为书目查询、书目展台、购物车、会员管理、收银台、订单查询及图书商城公告6个部分,其中各个部分及其包括的具体功能模块如图4-1所示。
4.2.2 图书商城后台
根据后台的特点,可以将其分为书目设置、书目大科目设置、书目小科目设置、会员设置、公告设置、订单设置、友情连接设置、退出后台7个部分,其中各部分及其包括的具体功能模块如图4-2所示。
4.3 业务流程图
对于不同的角色,他们所承担的任务各不相同,流程图也部一样。本系统包括面向会员的客户端流程图和面向系统管理员的流程图两部分。
图4-1 前台功能结构图
4.3.1 客户端流程图
面向会员的客户端系统流程图如图4-3所示。
如图中所示客户可以进行客户留言,可以在页面上看到一些信息如:新书上架展示、树木展示、销售排行,用户也可以进行用户注册,只有自己在此网站成为用户才能在网站上进行购书,购书成功后可去收银台结算。
4.3.2 管理员流程图
面向管理员的系统流程图如图4-4所示
系统管理员在经过帐户验证之后可以在网站页面上进行各种设置。
4.4 本章小结
本章主要介绍了系统目标、系统功能结构以及业务流程图,其中系统功能结构包括图书商城前台和图书商城后台,这部分是图书商城管理的关键,管理员可以在前台和后台修改数据,业务流程图包括客户端流程图和管理员流程图。
图4-3 面向会员的客户端系统流程图
第5章 数据库设计
5.1 数据库概念设计
(1)管理员信息实体。
管理员信息实体包括自动编号、管理员登录账号、管理员登录密码、管理员真实姓名及管理员标识属性。在管理员标识信息中,1代表总管理员(在本系统中总管理员只存在一个,他的登录账号为222,密码为222,0代表普通管理员。管理员信息实体的E-R图如图5-1所示。
图5-1 管理员信息实体E-R图
(2)会员实体。
会员实体包括自动编号、会员登录账号、会员登录密码、会员真实姓名、会员年龄、会员职业、会员电子用户名、提示问题、及问题答案属性。会员实体的E-R图如图5-2所示。
图5-2 会员实体信息E-R图
(3)书目信息实体
书目信息实体包括自动编号、书目名称、出版社、书目介绍、书目上架时间、书目现价、书目特价、数目销售数量、书目图片及特价书目标识属性。书目信息实体的E-R图如图5-3所示。
图5-3 书目实体E-R图
(4)订单信息实体
订单信息实体包括自动编号、订单编号、订货人编号、订货人姓名、订货人地址、订货人电话、订货价格、订单备注信息及邮寄方式属性。订单信息实体的E-R图如图5-4所示。
图5-4 订单信息实体E-R图
5.2
5.2.1 数据表结构详细设计
(1)books(书目信息表)
书目信息表主要用来保存书目信息。表books的结构如附录表5.1所示。
(2)manager(管理员信息表)
该表用于保存管理本网站的管理员的基本信息。表manager的结构如附录中表5.2所示。
(3)member(会员信息表)
会员信息表用来保存注册会员的相关信息。表member的结构如附录中表5.3所示。
(4)tb_order(订单信息主表)
订单信息主表用来保存订单的概要信息。表tb_order的结构如附录中表5.4所示。
(5)orderDetail(订单明细表)
订单明细表用来保存订单的详细信息。表orderDetail的结构如附录中表5.5所示。
(6)smallType(书目小科目信息表)
该表主要用来保存书目是属于哪个小科目。表smallType的结构如附录中表5.6所示。
(6)bigType(书目大科目信息表)
该表主要用来保存书目是属于哪个大科目。表bigType的结构如附录中表5.6所示。
(7)link(链接信息表)
该表主要用于保存站内友情链接信息。表link的结构如附录中表5.7所示。
(9)affiche(公告信息表)
该表主要用于保存站内公告信息。表affiche的结构如附录中表5.9所示。
5.2.2 数据表间的关系
如图5-5清晰地表达了各个数据库表之间的关系,实际上它反映了系统中各个实体之间的关系[9]。
图5-5 数据库表之间的关系
数据库所涉及到的表。
表5.1书目信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号(主键) |
bigId | int | 4 | 否 | 大科目编号 |
smallId | int | 4 | 否 | 小科目编号 |
booksName | varchar | 50 | 是 | 书名 |
booksFrom | varchar | 50 | 是 | 出版社 |
introduce | text | 50 | 是 | 书目信息 |
creaTime | smalldatetime | 8 | 是 | 加入时间 |
nowPrice | money | 4 | 是 | 现价 |
freePrice | money | 4 | 是 | 特价 |
number | int | 4 | 是 | 购买次数 |
picture | varchar | 50 | 是 | 图片 |
mark | bit | 8 | 是 | 特价书目标识 |
表5.2 管理员信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号 |
account | varchar | 50 | 是 | 真实姓名 |
password | varchar | 50 | 是 | 密码 |
name | varchar | 50 | 是 | 帐号 |
sign | bit | 8 | 是 | 标识 |
表5.3 会员信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号 |
name | varchar | 50 | 否 | 注册帐号(主键) |
password | varchar | 50 | 是 | 密码 |
reallyName | varchar | 50 | 是 | 真实姓名 |
age | int | 4 | 是 | 年龄 |
profession | varchar | 50 | 是 | 职业 |
varchar | 50 | 是 | 电子用户名 | |
question | varchar | 50 | 是 | 提示问题 |
result | varchar | 50 | 是 | 提示答案 |
表5.4定单信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | Hibernate自动编号 |
number | varchar | 50 | 否 | 书目定单编号(主键) |
name | varchar | 50 | 是 | 会员编号 |
reallyName | varchar | 50 | 是 | 真实姓名 |
address | varchar | 50 | 是 | 定货地址 |
tel | varchar | 50 | 是 | 联系电话 |
setMoney | varchar | 50 | 是 | 付款方式 |
post | varchar | 50 | 是 | 运送方式 |
beizhu | text | 50 | 是 | 备注信息 |
sign | bit | 2 | 是 | 发书是否成功 |
creaTime | smalldatetime | 8 | 是 | 创建时间 |
表5.5 订单明细表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说明 |
id | int | 4 | 否 | 自动编号 |
orderNumber | varchar | 50 | 是 | 定单编号 |
booksID | int | 4 | 否 | 书目编号 |
price | float | 53 | 是 | 价格 |
number | int | 4 | 是 | 数量 |
表5.6书目小科目信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号(主键) |
bigId | int | 4 | 否 | 大科目编号 |
smallName | varchar | 50 | 是 | 小科目编号 |
creaTime | smalldatetime | 8 | 是 | 创建时间 |
表5.7 书目大科目信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | Hibernate自动编号(主键) |
bigName | varchar | 50 | 是 | 大科目名称 |
表5.8 链接信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号 |
linkName | varchar | 50 | 是 | 连接名 |
linkAddress | varchar | 50 | 是 | 连接地址 |
表5.9 公告信息表
字段名称 | 数据类型 | 字段大小 | 是否可为空值 | 说 明 |
id | int | 4 | 否 | 自动编号 |
name | varchar | 50 | 是 | 标题 |
content | text | 16 | 是 | 内容 |
5.3 本章小结
本章主要介绍了数据库概念的设计、数据库逻辑结构,其中数据库逻辑结构包括数据表结构详细设计和数据表间的关系。
第6章 网站详细设计
6.1 文件夹组织结构
在编写代码之前,可以把系统中可能用到的文件夹先创建出来。这样不但可以方便以后的开发工作,也可以规范网站的整体架构。本网站设计了如图6-1所示的文件夹架构图。
图6-1 网上图书商城文件夹组织结构
技术框架
- 开发语言:Java;
- 后端框架:SSM(Spring+SpringMVC+MyBatis);
- 持久层框架:MyBatis
- 前端技术:jQuery.js,echarts.js,bootstrap-3.3.6;
- 包管理:Maven(apache-maven-3.6.3);
- 中间件:Tomcat(apache-tomcat-8.0.47);
- 富文本:Ueditor;
- 数据库:MySQL5.7/mariadb-10.3.14-winx64;
- 开发工具:Eclipse,HeidiSQL/Navicat;
开发环境
建议开发者使用以下环境,这样避免版本带来的问题
- IDE:eclipse
- DB:Mysql5.7/mariadb-10.3.14-winx64
- JDK:JDK1.8
- WEB:Tomcat8
- 操作系统:Windows7/10
功能说明
- 1.系统功能模板可以套用到任意主题商城网站,如图书商城、水果商城等;
- 2.XX商城网站是一款基于SSM框架开发的电商网站,包括商品的展示和购买流程,一共包括用户和管理员2个身份。
- 3.用户注册登录后可以在前端按照商品二级分类查询不同类别的商品,也可以安装商品关键词查询相关商品,点击查看商品详情如果觉得满意可以加入购物车也可以加入收藏,用户可以查看自己的购物车进行结算购买,用户还可以修改个人信息,等管理员发货后自己收货后可以对商品发布评价,还可以查看网站公告,给管理员留言;
- 4.管理员后台登录后首页可以查看销售统计图,可以管理添加商品一级分类和二级分类,可以添加修改商品信息,可以查询用户订单发货,可以发布管理公告,可以查看删除用户留言。