第2章 关键技术简介
2.1 Java技术
Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行。除此之外,它还拥有简单的语法和实用的类库,让编程人员可以尽可能将精力集中在问题的求解上,并且许多开源项目和科研成果都是采用它实现的。
在1995年这一年的5月份,著名的Sun Microsystems公司在程序开发设计上面郑重推出一种面向对象开发的程序设计语言——Java,最开始的时候Java是由詹姆斯.高斯林这位伟大的JAVA之父来进行主导,但是在后来由于各种原因,让甲骨文公司这个针对商业程序创建了oracle大型数据库的公司收购了Java[16]。Java的平台总共算下来有3个,分别为javaME和javaSE以及javaEE这3个java平台。下面将对其进行分别介绍。
(1)在电脑桌面程序的开发上面需要选择JavaME,这个用得也比较多。
(2)企业也会根据工作以及业务需要开发各种软件,那么就会选用JavcEE这个支持企业版软件的开发的Java平台,JavcEE主攻运用在企业领域上面的web应用,JavcEE也在javaSE的基础上获得了比如jsp技术 ,Servlet技术等程序开发技术的支持。
(3)现在生活中手机的普及化,也使得手机端这样的移动设备的软件的兴起,JavaME这个迷你版java平台就能运用于移动端的软件开发操作。
2.2 Spring Boot框架
Spring Boot是Spring+自动配置的结合,减少了Spring繁琐的配置问题和开发的时间。其中不仅仅优化了XML,且在Spring Boot的内部还集成了Tomcat。
Spring Data Jpa是一套规范,在没有实现类的接口时候是没有办法使用的。他对现有的映射起到了规范的作用。在开发产品的时候我们依旧使用ORM映射框架对JPA接口进行开发。这样我们就可以在不更改代码的情况下使用其他的ORM框架。来做到低耦合、可扩展的特点。
2.3 B/S结构
此次设计的网络结构模式B/S结构(Browser/Server)。B/S架构也称为B/S模式,是一种服务器以及浏览器架构模式。B/S的工作模式都是先由浏览器请求,服务器再响应。B/S体系结构解决了异构系统中的连接难题,大大改善了系统的开放性,让系统的扩展和维护更加简单;同时,B/S体系结构操作也比较容易,界面全都为浏览器模式,容易分发数据的捕获程序。只要安装通用的浏览器(如WWW浏览器)就能通过Web服务器与数据库进行数据交互。此结构的好处之一在于由于它使用的统一的浏览器,使其可以在不同的地方且不需要用专门的软件进行操作,实现了不论你使用怎样的接入网的方式都可以对公共的数据进行调用和浏览。
相对于C/S模式,B/S模式是对C/S模式应用的扩展,B/S模式不用对不同的计算机安装不同应用程序,还有安全性的要求及对模式上手难度都比前者更好。B/S模式可以让客户机的压力大大减轻,工作的负荷被合理的分配了。
B/S三层框架结构图如图2-1所示:
图2-1 B/S三层框架结构图
2.4 MYSQL数据库
MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[13]
MySQL具有开放性,它是一种关系型数据库管理系统,并且它的源代码可以被大众所熟知[3]。由于MySQL是开放源代码的,因此,只要经过授权就可以在自己需求的基础上对其进行修改。MySQL因为其固有的特点而备受关注,它具有很强的适应性,并且十分可靠,查询速度快。MySQL安装起来非常方便,且数据存储量大,不需要事务化处理。Sql语言拥有很多的方法,在项目中编写sql语句时使用起来是非常方便的,不会像其他语言那样需要编写更多的语句。正因为MySQL使用sql语言进行数据库管理,所以它收到了大多数程序员的热爱。
第4章 系统设计
4.1 系统结构设计
系统结构设计是一个将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。在整个设计过程,以确定可能的具体方案达成每一个小的最终目标,对于每一个小的目标而言,我们必须先了解一些相关的需求分析的信息。然后对系统进行初步的设计,并对其逐渐进行优化,设计出一个具体可实现的系统结构。
本基于Spring Boot的网上购物商城系统主要包括用户模块、商家模块和管理员模块,根据第三章中系统功能需求分析,可画出本基于Spring Boot的网上购物商城系统的结构图如图4-1所示:
图 4-1 系统结构图
4.2系统顺序图
4.2.1登录模块顺序图
用户、商家和管理员均可进行登录操作,登录模块的顺序图如图 4-2 所示。
图4-2用户登录顺序图
4.2.2添加信息模块顺序图
管理员、商家和用户登录后均可进行添加信息操作,添加信息顺序图如图4-3所示
图4-3添加信息顺序图
4.3 数据库设计
4.3.1 数据库E-R图设计
E-R图展现了数据的实体结构关系,为系统数据管理奠定了基础,也对数据进行规范化的设置,保证后期的高效性,避免数据出现重复造成冗余使得数据更新出现异常,无法同步数据和插入数据。通过E-R图也可便于对数据的设计和修改,如果一个数据库在被设计时没有相对应的E-R图,则整体数据库就缺少明确的定位和条理性,使得处理数据的效率大大降低,在需要更新或者查找数据时报错的可能性大大提升,对与后期运行调试系统会造成不必要的麻烦。本基于Spring Boot的网上购物商城系统的E-R图如下图所示:
1、商品分类信息实体E-R图如图4-4所示:
图4-4 商品分类信息实体的E-R图
2、商家信息实体E-R图如图4-5所示:
图4-5 商家信息实体E-R图
3、订单实体图如图4-6所示。
图4-6 订单实体E-R图
4、管理员信息实体图如图4-7所示。
图4-7 管理员信息实体E-R图
5、商品信息实体图如图4-8所示。
图4-8 商品信息实体E-R图
6、用户信息实体图如图4-9所示。
图4-9用户信息实体E-R图
4.3.2数据库表设计
本基于Spring Boot的网上购物商城系统采用了MYSQL数据库进行系统数据的储存,主要的数据库表的具体设置如下:
表4-1 shangpinfenlei商品分类信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
addtime 创建时间 timestamp 允许空
leibie 类别 varchar(200) 允许空
表4-2 shangjia商家信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
addtime 创建时间 timestamp 允许空
zhanghao 账号 varchar(200) 允许空
mima 密码 varchar(200) 允许空
shangjiamingcheng 商家名称 varchar(200) 允许空
xingbie 性别 varchar(200) 允许空
shouji` 手机 varchar(200) 允许空
youxiang 邮箱 varchar(200) 允许空
shenfenzheng 身份证 varchar(200) 允许空
money 余额 float 允许空
表4-3 orders订单信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
addtime 下单时间 timestamp 允许空
orderid 订单编号 varchar(200) 允许空
tablename 商品表名 varchar(200) 允许空
userid 用户编号 bigint(20) 允许空
goodid 商品编号 bigint(20) 允许空
goodname 商品名称 varchar(200) 允许空
picture 商品图片 varchar(200) 允许空
buynumber 购买数量 int(11) 允许空
price 价格 float 允许空
discountprice 折扣价格 float 允许空
total 总价格 float 允许空
discounttotal 折扣总价格 float 允许空
type 支付类型 int(11) 允许空
status 状态 varchar(200) 允许空
address 地址 varchar(200) 允许空
表4-4 users管理员信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
username 用户名 varchar(100) 允许空
password 密码 varchar(100) 允许空
role 角色 varchar(100) 允许空
addtime 添加时间 timestamp 允许空
表4-5 yaopinxinxi商品信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
addtime 创建时间 timestamp 允许空
shangpinmingcheng 商品名称 varchar(200) 允许空
leibie 类别 varchar(200) 允许空
yueshouxiaoliang 月售销量 varchar(200) 允许空
tupian 图片 varchar(200) 允许空
xiangqing 详情 longtext 允许空
zhanghao 账号 varchar(200) 允许空
shangjiamingcheng 商家名称 varchar(200) 允许空
sfsh 是否审核 varchar(200) 允许空
shhf 审核回复 longtext 允许空
thumbsupnum 赞数 int(11) 允许空
crazilynum 踩数 int(11) 允许空
clicktime` 最近点击时间 datetime 允许空
clicknum 点击次数 int(11) 允许空
price 价格 float
表4-6 yonghu用户信息表
列名 说明 类型 ( 长度 ) 备注
id 编号 bigint(20) 不允许空,主键
addtime 创建时间 timestamp 允许空
zhanghao 账号 varchar(200) 允许空
mima 密码 varchar(200) 允许空
xingming 姓名 varchar(200) 允许空
xingbie 性别 varchar(200) 允许空
youxiang` 邮箱 varchar(200) 允许空
shenfenzheng 身份证 varchar(200) 允许空
shouji 手机 varchar(200) 允许空
money 余额 float 允许空