摘 要:随着互联网科技的发展,越来越多的行业开始涉及网络,网络已经成为大家生活、消费、工作中随处可见的一部分,互联网的出现将生活变的更加丰富,工作的节奏与方式也在逐步的改变,现在的互联网销售、卖货已经成为大家更熟悉的一种营销模式,目前各类各样的互联网的销售眼花缭乱,各类的销售平台也随着互联网模式的风口如雨后春笋般的出现,互联网购物作为最开始的网络科技应用已经在国内更为的熟练,目前垂直类的销售也在逐步的替代一些大型的购物网站作为大家的一种选择模式,而随着图书销售的出现,将图书与互联网相结合,替代了以往的购买模式,让大家对图书有了更多的选择,也可以随意的下单订购,为商家也是打开一条致富路。

本系统设计了一款图书销售系统,此系统基于Java语言开发,主要采用SSM框架,采用Jsp页面开发,数据库采用MySQL,系统主要包括前后端,主要分为两种用户角色,主要有图书管理模块,会员模块、购物车模块,订单模块,充值模块等,系统设计完成后可以满足图书销售网站功能,且对于代码层级分明,系统设计简洁,便于后期使用与维护。

关键词图书销售系统,SSM,MySQL

The Design and Implementation of Online

Bookstore System

Abstract:With the development of Internet technology, more and more industries begin to involve in the network. The network has become a part of everyone's life, consumption and work. The emergence of the Internet will enrich life and gradually change the pace and way of work. Now, Internet sales and sales have become a more familiar marketing mode. At present, all kinds of marketing modes are available All kinds of Internet sales are dazzling. All kinds of sales platforms are springing up with the Internet mode. Internet shopping, as the first application of network technology, has become more skilled in China. At present, vertical sales are gradually replacing some large-scale shopping websites as a choice mode for everyone, while with the emergence of book sales, The combination of books and the Internet, instead of the previous purchase mode, allows everyone to have more options for books, and also can order at will, which opens a road to prosperity for businesses.

This system is designed to be a book sales system, which is based on Java language. It mainly uses SSM framework, JSP page development, MySQL database. The system mainly includes front and back end. It is mainly divided into two user roles, including book management module, membership module, shopping cart module, order module, recharge module, etc. after the system design, it can meet the requirements Book sales website function, and for the code level is clear, the system design is simple, convenient for later use and maintenance.    Key words: Agricultural products, Ordering; SSM; MySQL

  录

1.绪论

1.1 研究背景及意义

1.2研究现状

1.3 论文结构安排

1.4 本文的主要内容

2.关键技术介绍

2.1Java介绍

2.2SSM框架介绍

2.3MySQL数据库

2.4Tomcat介绍

3.系统分析

3.1可行性分析

3.1.1技术可行性

3.1.2市场可行性

3.1.3法律可行性

3.2系统功能需求分析

3.3非功能需求分析

3.3.1可靠性需求

3.3.2可支持性需求

3.3.3系统的完整性需求

3.3.4易用性需求

4. 系统设计

4.1系统流程设计

4.1.1购物流程图设计

4.1.2注册流程图设计

4.1.3图书管理流程图设计

4.1.5用户下单流程图设计

4.2数据库设计

4.2.1数据库E-R图设计

4.2.2数据库表结构设计

5. 系统实现

5.1数据库连接

5.2用户登陆注册

5.3用户虚拟充值

5.4图书展示

5.5用户订单

5.6会员管理

5.7图书管理

5.8订单管理

5.9轮播图管理

6. 系统测试

6.1测试分析

6.2项目测试

6.2.1会员登录测试

6.2.2购物车订单测试

6.2.3图书订单查询测试

6.2.4会员充值模块测试

7.总结

参考文献

网上书店系统的设计与实现

1.绪论

1.1 研究背景及意义

在目前的互联网盛行的时代,网上购物已经成为大家的一种生活习惯了,据统计目前人们的生活用品有百分之三十七是来自于网购,网购平台已经成为消费者与生产者之间的一种桥梁,网购为大家提供了一个新的消费习惯和市场消费体验,让双方都达到互惠互利的效果,而随着国家对教育的重视,对图书销售的逐步关注,相信在不久图书购物平台就会成为一种新型的购物趋势,就通过互联网在线营销,很快就突破市场,因此显示出互联网的强大优势,通过一个虚拟的平台就可以快速有效直观的进行销售。

1.2研究现状

随着互联网购物的兴起,越来越多的购物平台开始出现,网上购物丰富了大家的生活,也给了大家更多的购物选择,网络将不同的地方的资源可以进行整合,让大家也可以足不出户就可以进行购物6,还可以在线进行对比,对于商家来说,提升了更多的销售额,且管理也更为方便,全球购物正在实现同步,以后将真正的实现购物地球村,在图书这个领域,国家也给与了更多的政策和帮助,通过互联网+模式进行图书销售,将大力的推动图书的推广与销售,将更好的图书直接传到购物者手中,避免了更多的二次或者是三次的转手,目前一些生活日用品或者是化妆品已经有了很多的垂直类的销售平台,且推广很顺利,通过此次机会也将图书的垂直类销售进行拓展,有效的提升互联网销售水平,加快图书的销售步伐,有力推动图书的推广,为更多的商家获得实惠。

目前作为互联网科技快速发展的时代,互联网的步伐正在走向人们的生活中,互联网医疗、互联网出行、互联网餐饮等正在逐步的风靡,互联网购物作为最开始的网络科技应用已经在国内更为的熟练,目前随着4G,5G的兴起,更多的物联网的实现,相信在不久的将来更能实现科技生活,国内的京东、苏宁、淘宝已经做到了很大的地步,在一些节日甚至销售的额度已经非常巨大,但人们的挑选的时候,随着网站越大反而愈发的眼花缭乱,愈发让你难以选择,跳跃了最初的购买意愿,不能及时的挑选自己直观上想购买的商品,为商品的选择耗费了更多的时间,因此类似于垂直类的网站也在快速崛起,当当网,唯品会等让大家在选择上收到局限,根据自己初心选择自己的商品,快速做出决断,不被别的商品类型所干扰,而图书这块作为一个空缺,目前也急需这样一个网站,将图书通过互联网平台推送到大家的眼前,将商家直接跟消费者进行桥接,让大家在图书选购等方面有了更好的选择,为大众的生活提供了方便,也让商家获得更多的利益。 在国外目前也是互联网盛行,国外也是逐步在打造互联网消费一体化,国外的网络技术水平更为发达,类似于知名的亚马逊网站,但国外的网络购物没有国内更加白热化,且大众已经彻底的接受了网络的购物,而国外随着物流运输和思想习惯的限制,目前也是具有很大的空间去开展网络订购业务,通过打造一款图书销售平台,可以将全国、乃至全球的所有图书进行链接,让平台上可以展示出更多更好的图书,为更多的人谋福利。

1.3 论文结构安排

 根据系统研发的背景,结合软件开发的流程和步骤,将分为七个章节对论文进行撰写,各章节内容如下:

第一章:绪论。介绍系统研发背景,对系统研究现状进行分析。 

第二章:关键技术介绍。介绍开发过程中用到的工具、框架、技术等。

第三章:系统分析。首先分析系统的开发是否可行即进行可行性分析,评估该系统开发的经济效益。然后确定系统将要实现的功能、性能以及界面的需求并借助UML用例图和操作规约对用户需求和各功能模块操作流程进行描述。

第四章:系统设计。依据需求分析内容对系统各层和各功能模块进行设计,借助UML类图和时序图对执行过程中各层调用情况进行详细设计,同时对系统的三层架构和B/S架构进行介绍。在数据库中对系统E-R图和各实体的物理表进行设计。

第五章:系统实现。给出各功能模块的界面截图,摘取核心代码,给出系统执行的流程步骤,对复杂模块则用流程图描述其操作过程。

第六章:系统测试。介绍系统测试的方法,设计测试用例对系统各模块的运行情况和性能进行测试。

第七章:总结。分析研究中所遇到的问题和需要改进的模块和功能,并对未来的工作做出展望。

1.4 本文的主要内容

本系统主要分为管理员端和会员端,主要模块为图书管理、会员管理、商品的展示和查询、会员充值、购物车、订单管理,首先对系统的需求进行梳理,分析系统功能模块及新颖点,然后对系统设计进行可行性分析,对系统的使用框架和背景意义进行介绍,其次为数据库表结构设计,对系统进行逻辑关联设计和物理表结构设计,再次为系统模块编码及代码介绍,最后为系统测试,完成此次课题设计。

2.关键技术介绍

2.1Java介绍

Java作为目前的主流开发语言,相对于C,C++来说更易于学习和开发使用,C++更加作为底层设计语言使用更广,而Java基于面向对象设计,将一些难点与底层交互进行封装,依据三大优势点,封装、继承、多态进行设计,使得代码开发更为简洁,使用者更好入手,Java语言基于其跨平台优势,部署更为简单,设计集成度更高,Java主要包括8种基本类型,可以更好的进行设计囊括,且有23种设计模式,例如,单例模式、工厂模式,使得在设计角度有了更多的选择,也让代码的架构更清晰,重复度更低,代码启动运行更为合理,java具有多线程与分布式设计优势,作为一种强语言设计,Java不支持指针,可以对异常进行捕获和处理,在代码编译方面也更快,编译后为Class文件,采用JDK环境开发,且Java作为Sun平台的开源语言,让使用更为简单,平台规范更基于大众化,在最初中运行只需一个main方法即可执行,提供了更为简化的自增、自减等运算符,且目前Java开发都是基于MVC设计模式,代码逻辑更为简单。

2.2SSM框架介绍

SSM框架作为目前的主流开发框架,主要包括SpringMVC,Spring,Mybatis,此框架基于MVC三层架构,主要包括控制层请求的处理,orm数据层的交互,spring注释拦截,事务处理。

SpringMVC:springmvc主要为controller层业务处理,通过与springmvc的xml进行配置,可以对action中url的请求后缀进行拦截,可以对return的页面的格式后缀进行设计,此框架的url请求是基于restful风格的,在url中动态定义,可以是请求参数,也可以拼接定义,通过@Controller对类进行设置,在后期项目启动加载时可以识别为控制层处理类,设置为单例模式启动,通过requestmapping进行参数传输匹配,通过param中的name对参数进行封装,可以自定义的进行参数取值,也可以通过json直接对对象进行封装取值,避免了多参数时一个个的取,也体现了Java的基于面向对象的设计优势,springmvc可以通过interceptor对请求进行事务拦截,可以进行日志的处理以及未登录操作或者是权限分配的操作拦截处理。

Mybatis:mybatis作为数据库交互层的框架,可以集成任何的数据库,且通过mapper跟xml直接的一对一关联进行配置,通过xml中的方法的name进行匹配,通过baseresult进行返回,不硬性的规定返回数据为单个还是多个,且通过xml配置的优势可以进行无线sql衔接匹配,代码重复度更低,将查询,插入等切割为多个片段进行组装拼接,随机性更好,且xml也是基于面向对象设计,可以将整个对象进行保存,相对于之前的hibernate来说框架更为轻便,hibernate主要通过hql进行插入,且关联性数据不好操作,懒加载问题严重,导致查询繁琐,多表插入操作复杂,而mybatis可通过返回跟插入的属性进行配置,可以通过resource中的xml进行对象识别设置,mybatis将JDBC进行更好的封装,自动进行连接与资源的释放,且支持多线程开发,通过原生的配置进行映射。可以通过sessionfactory创建数据库连接操作进行交互。

Spring:spring作为一个容器框架,可以随意进行集成,spring包含了注解定义,bean类的依赖注入,事务的处理,拦截的定义,可是对springmvc、mybatis进行整合,spring特点为控制反转,可以将类由最初的new变成反向代理的对象,通过单例模式,在后期需要时直接进行调用,可以通过注解配置,也可以通过spring的xml进行bean实体定义,spring的出现让更多的对象实例操作更为简洁,避免了每次使用的无限制创建,节省了运行资源,spring的另一大特点为切面编程,在事务处理拦截和日志处理时面向对象变成了面向面,可以操作整个切面类,spring的作用就是去管理各个bean之间的关系,维护持久层和业务逻辑层的关系,spring作为一个非入侵框架,其安全度非常高,且作为一个开源框架又非常独立,spring管理着各个bean的生命周期,可以通过bean工厂以及应用上下文进行衔接,总而言之,spring主要是简化类与类之间的关联代码,通过动态的创建bean来实现对象的调用,而不是手动关联。 

2.3MySQL数据库

目前中小型项目的数据库一般选择mysql,mysql主要优势为操作简单,权限分配简单,易安装,且易于做高可用,与redis集成简单,mysql的sql查询更为方便,多表关联也比较简单,且id可以进行自增,mysql也可以跨平台部署,可以做主从备份,mysql支持多线程,这样有利于运行资源的提升,且支持多种编码方式,最常用的一般为utf8,GBK,mysql可以有效的进行sql优化,便于提升查询效率,可以提供多种存储引擎,在mysql表中可以增加索引便于快速指定查询,但mysql有总索引数的限制一般为16个,mysql一般操作的数据在几十万内是很快捷的,因此适合中小型项目开发。

MYSQL是关系数据库管理系统的名称,它是MYSQL数据库。数据库是记录的集合,这些数据是一个文本、数字或二进制文件,可以管理并存储在数据库管理系统的存储库中。有许多类型的数据库。首先,它是一个简单的平面文件,目前主要基于两种类型的关系数据库和对象。相对数据库和其他数据库使用多个标识符来存储信息,相关数据库需要做更多的工作,但是为了提高数据的可靠性和完整性,关系数据库很容易找到,同时允许操作。MYSQL也是一个开源程序,可以免费修改。MYSQL软件有以下几个方面:INCLUSIVE.MY SQL SERVER(执行管理数据库)、MYSQL客户端(提供访问服务器的接口)和大量的维护工具。MY SQL经常用来处理大数据,数据BASS包含60000张卡片和50多亿条记录,在操作系统中,我的SQL表可以处理800万TB的数据。在其他操作系统中,它通常可以处理4GB数据。

2.4Tomcat介绍

目前Java项目开发部署都是tomcat服务器,此服务器主要为将java类和jsp文件等编译为class文件,然后通过JDK虚拟环境进行运行,tomcat可以部署在各个平台,windows和linux都可以,tomcat下有lib文件夹、conf文件夹、webapp、bin等,bin文件下主要为项目的启动和关闭,conf文件下主要为tomcat运行端口的配置,启动和关闭端口的配置,一般为8080,关闭一般为8089,在webapp下载服务器启动时会检索下面的war包,然后对war包进行解压,在log文件下可以查看项目的运行日期可以通过日志日期进行检索,tomcat的设计也是基于面向对象的,因此部署java项目更为合适。

3.系统分析

3.1可行性分析

3.1.1技术可行性

在技术方面目前采用主流语言Java,java的跨平台和部署集成能力较强,框架选择SSM,基于MVC设计,便于后期的二次维护,采用SpringMVC进行rest风格URL设计,代码更为简洁,采用Mysql数据库存储,sql编写优化更为简单。

3.1.2经济可行性

目前互联网+模式的营销比较火热,加之国家对教育行业的重视,对图书的销售的重视,在图书垂直订购这方面依旧有很大的市场,后续大家在购买一些物品都达到一手产品,无需在经过更多人的转手,且此网站的操作较为简单,便利了更多创客风口的商家,为大家增加了销售的额度,也为人们的生活购物多了更多选择。

3.1.3法律可行性

目前本系统市场上没有一家成型的网站,且没有任何的知识产权有侵权行为,且本次开发采用的语言和框架都为开源,不存在任何的盗版行为,此次设计的内容和技术都为本人自行设计和研发。

3.2系统功能需求分析 

此系统主要分为前后两端,分为两种用户,前台用户为普通会员,后台用户为平台管理员,系统主要分为五大模块。前台页面功能主要包括图书的展示,和会员的注册,登陆,包括会员根据类型以及上架时间对图书的选择,会员可以修改自己的个人信息,可以对满意的图书添加购买,可以对购物车进行清除和下单结算,余额不足时可以进行充值,可以对自己的订单进行查询。后台主要为管理员登陆后可以对图书信息进行新增和编辑,可以查看注册在本平台的所有用户,对违规的用户可以删除其账号,可以对订单进行查询。

系统功能模块图如下:

图3-1系统功能模块图

3.3非功能需求分析

3.3.1可靠性需求

系统的实用性与稳定:大多数系统的操作需要消费者在屏幕前进行,而有些网站使用时间一长就会出现崩溃或者卡顿,本系统的设计不可以出现这些问题,也就是说系统的设计必须要稳定可靠,防止给客户带来相关无法弥补的损失。

3.3.2可支持性需求

系统完成后,只有在服务器上才能简单使用,用户对网站的访问可能会通过浏览器进行,所以要更改使用程序,只需要更改服务器上的应用程序。当程序修改以后,可以查看修改的版本。系统的操作要快,每次响应的时间不能太长,3秒以内是操作人员可以接受的,并且不能只是每次一个人访问,必须支持多人同时的操作。

3.3.3系统的完整性需求

系统要求信息的发布必须完整,比如前台的公告栏,用户信息必须完整,该记录的信息一个不能少,而对于图书销售的记录也要完整,不能不衔接,同时不能出现为空的内容,力求做到每一个版块都十分详尽完备。

3.3.4易用性需求

对于操作人员来说,系统的简单性,易操作性是很重要的,否则他们就会在不必要的一些地方浪费很多时间,也就失去了研究本系统的最初目的了,因此,系统的设计必须界面大方简单,功能要清晰,不能杂乱,让人摸不透,这也是一个好系统的基本要求。

3.3.5操作性需求

网上图书销售,例如京东等一些大型的网站,这类系统的用户量是非常非常庞大的,所以,为了满足如此庞大体系的需求,我们必须设计地尽可能满足更多人的操作习惯,设计也必须生动化,这样才不至于让操作人员进行操作时感觉枯燥,这样才能吸引更多的人来使用你的系统,达到最终目的。

4. 系统设计

4.1系统流程设计

4.1.1购物流程图设计

图书销售主要流程为会员进入平台可依据类型和名称进行模糊搜素,可以点击查询详情,若购买可以直接点击添加购物车按钮,若未登录则直接提示跳转到登录页面,用户登录后可以添加到购物车,可以进行结算,流程图如图4-1所示。

图4-1购物流程图

4.1.2注册流程图设计

用户若进入此平台若没有账号则只能查询图书,不可进行订购,因此首先进行注册,可以依据手机号,或者邮箱进行注册,手机号作为账号唯一标识,填写个人基本信息后添加注册,注册后即可进行登陆,登陆后也可以修改自己的信息。具体注册流程图如图4-2所示。

图4-2注册流程图

4.1.3图书管理流程图设计

图书上架,管理员登陆后进入到商品新增页面,可以填写图书的名称、产地、介绍和图片等信息进行新增,保存到数据库,可以对图书绑定类型,便于后期管理。具体图书管理流程图如图4-3所示。

图4-3图书管理流程图

4.1.4图书推荐流程图设计

图书推荐,用户登陆后 可以依据产品的类型和上级日期进行选购,可以依据销量进行选购,系统会根据用户点击图书的类型进行推荐,可以依据会员的习惯进行推荐。具体图书推荐流程图如图3-5所示。

图3-5图书推荐流程图

4.1.5用户下单流程图设计

会员在购买后可以进行下单,下单成功后可以查询自己的购买订单,管理员登陆后台后可以查看所有用户的订单,可以对订单状态进行修改。具体用户下单流程图如图3-6所示

图3-6用户下单流程图

4.2数据库设计

4.2.1数据库E-R图设计

数据库的设计一般都基于三范式进行设计,首先梳理逻辑功能,然后根据功能展示梳理字段,对字段的类型及长度进行设置,确保字段资源的浪费情况,否则在数据量较大的时候容易影响查询,其次为数据库的冗余,可以通过主外表关联进行设计,而不是保存原有数据,尽量使用少的表来进行关联查询,而不是一味的进行数据存储,对于数据库的逻辑一定要清晰,在数据量比较大的表中,可以建立索引,确保查询效率,根据功能模块梳理,数据库E-R总图,如图3-7所示

图3-7数据E-R图

4.2.2数据库表结构设计

表4-12为管理员表,保存内容包括管理员的账号、登陆密码、密码通过md5加密,和其他基础信息等

表4-12 管理员信息表

列名

中文名称

数据字段

是否为空

约束条件

admin_id

用户编号

int(6)

No

主键编号标识

admin_pwd

管理员密码

varchar(40)

No

admin_name

管理员姓名

varchar(40)

No

`admin_icon

管理员头像

varchar(200)

Yes

admin_type

管理员类型

int(8)

No

表4-13为区域存储表,包含各个地区的命名信息以及编号信息。

表4-13地区信息表

列名

中文名称

数据类型

是否允许空

约束条件

dqid

主键编号

int(8)

No

主键编号标识

dqCode

地区号

int(8)

No

dqName

地区名称

varchar(100)

No

dqalevel

地区等级

int(8)

No

dqupLevelCdqode

地区所属上级编号

int(8)

No

表4-14为图书信息表, 包含图书的生成唯一编号,上传图片、生产地、上架时间、数量等。

表4-14 图书信息表

列名

中文名称

数据类型

是否允许空

约束条件

ncpid

唯一编号

int(8)

NO

主键编号标识

ncpname

图书名称

varchar(20)

NO

ncpimg

图书图片

varchar200

NO

ncpprice

图书价格

int(4)

NO

ncpshelveDate

上架时间

Date

NO

ncptype

图书类型

int(6)

NO

ncpbrand

图书产地

varchar(5)

NO

ncpnum

存储数量

int(8)

NO

ncpstate

所属状态

int(2)

NO

表4-15为图书类型信息表,用于存储图书类型名称,包含图书类型的名称、状态等信息。

表4-15类型信息表

列名

中文名称

数据类型

是否允许空

约束条件

gncpid

图书类型编号

int(8)

NO

主键编号标识

gncpname

图书类型名称

varchar(50)

NO

gncpimg

图书类型图片

varchar200

NO

gncpdesc

图书类型描述

varchar100

NO

gncpstate

图书类型状态

int(2)

NO

表4-16为会员信息表,保存注册的会员的姓名、联系地址、联系电话、账户余额等基本信息。

表4-16用户信息表

列名

中文名称

数据类型

是否允许空

约束条件

userid

会员编号

int(8)

NO

主键编号标识

username

会员名称

varchar(30)

NO

userpwd

会员密码

varchar200

NO

usericon

会员头像

varchar200

NO

usersex

会员性别

int(2)

NO

userbirthday

会员生日

varchar20

NO

userbalance

会员余额

double

NO

useraddress

会员地址

varchar50

NO

usertel

会员联系电话

varchar15

NO

userdesc

会员描述

varchar50

NO

userstate

会员状态

int(2)

NO

表4-17为订单信息表,在用户下单后,购物车信息直接转变为订单信息,包括下单的图书编号、数量、金额、下单时间等基本信息。

表4-17订单信息表

列名

中文名称

数据类型

是否允许空

约束条件

ncoid

下单编号

int(8)

NO

主键编号标识

userid

下单会员编号

varchar(50)

NO

ncotel

联系电话

varchar200

NO

ncoaddress

订购地址

varchar200

NO

ncobuyTime`

购买时间

Date

NO

ncodesc

备注描述

varchar200

NO

ncosum

下单数量

int(4)

NO

ncocost

购买总金额

int(8)

NO

ncostate

订单状态

int(2)

NO

5. 系统实现

5.1数据库连接

本次数据库主要采用Mysql,Mysql主要通过JDBC进行连接,在连接时主要对数据库连接池进行设置,包括最大最小连接数,目前最流行的为c3p0连接池,可以自定义对池中的数据资源进行释放,可以对连接操作进行限制,可以对数据库配置文件进行设置,内容如下5-1所示:

图5-1数据库连接配置

5.2用户登陆注册 

会员进入前端系统后,若无账号则可以进行注册,点击注册跳转注册页面,然后输入注册的账号和密码,账号要先去数据库校验是否已存在,若存在直接提示信息已被注册,若不存在则继续填写其他基础信息,点击注册时数据通过form表单提交到controller到register的方法中,首先对数据进行校验,是否不为空,是否长度超出等,然后调用service通过服务层调用数据处理层dao,dao中可对数据进行insert新增,保存到数据库然后返回success,登陆时通过账号去数据库比对是否存在,存在登陆成功,否则提示账号异常并跳转错误页面,注册界面如下5-2,5-3:

图5-2用户登陆

图5-3用户注册

核心代码如下:

Member one = memberService.login(id, pw); if (one != null) {      session.setAttribute("member", one);

       return "redirect:indexshow";} else {     logininfo.setMsg("[登录信息]:登录失败! ");       model.addAttribute("logininfo", logininfo);       return "memberLoginOrReg";}

5.3用户虚拟充值 

会员充值,首先在会员登陆后可以在个人中心页面去查询会员的账户余额,可以对余额进行充值,输入充值数据后,首先js校验数据是否为数字,若不是直接提示异常,然后在点击充值时,跳转到输入支付密码,支付密码默认为登陆密码,提交到底后台后,通过updateuser进行修改如图5-4:

图5-4用户虚拟充值

5.4图书展示

在管理员端新增图书信息后,若产品状态为在售,则前端页面可以展示出来你,通过调用showGoodsByPage方法进行分页查询,通过page控制页码,通过pagesize控制每页的查询数,调用mysql的sql执行语句,通过limit进行分页处理,通过List<Goods>进行查询数据封装,然后通过Model返回到页面,页面通过c标签进行数据展示,如图5-5,5-6:

图5-5图书展示

图5-6图书详情

核心代码如下:


   GoodsItem one = null;
        one = goodsItemService.getOneGoodsItemByID(id);
            if (req.getAttribute("indexinfo") != null) {
            indexinfo = (Info) req.getAttribute("indexinfo");
                  }
         String type = groupShipService.getTypeStr(groupShipService
               .findGroupsByGoodsId(id));
  
         one.setGrade(goodsItemService.findGradeByID(id));
         req.setAttribute("oneGoods", one);
         return "showOne";
      }

5.5用户订单

会员在点击购物车后,可以将商品添加到购物车列表中,通过session中的attribute作为缓存购物车数据,通过userid作为唯一购物车标识,在半小时可清0,通过findCart对购物车列表进行查询,可以计算出购物车内的数量及总额度,对商品进行展示,可以点击移除remove掉,具体界面如下5-7:

图5-7订单列表

核心代码如下:


         if (objOrder != null && objmember != null) {
      tempOrder = (Order) objOrder;
      member = (Member) objmember;
      if (member.getId().intValue() == tempOrder.getMid().intValue()) {
                dbMember = memberService.getOneMemberByID(member.getId());
                     if (checkOutService.checkOut(tempOrder)) {
           
            indexinfo.setCanChange(false);
            model.addAttribute("indexinfo", indexinfo);
            indexinfo = new Info();
            return "forward:/indexshow";
            }

5.6会员管理

会员管理,管理员可以通过findListByPage对注册在此平台的用户进行查询,可以通过page进行分页页码设置,通过select对user表进行分段查询,可以对此账号进行updateStatus启用、禁用,通过对数据库执行update,根据编号确保更新唯一,更新完成后跳转到查询页面,在用户登陆时校验其状态,若为禁用,则提示系统账号异常,具体界面如下5-8,5-9:

图5-8后台欢迎首页

图5-9用户列表

5.7图书管理

图书管理,后台通过findListByPage进行图书分页查询,通过pagesize和pagenum进行分页查询,将信息提交到controller,然后对分页等信息进行校验,定义接受查询对象,然后先查询count总数,若为0,则直接返回数据为null,否则进行sql查询,可以对图书进行禁用和启用,通过updateById对产品的status进行更新,具体界面如下5-10:

图5-10图书列表

核心代码如下:

PageInfo<GoodsItem> pi = goodsItemService.findPageByExample(exam);if (indexinfo.isCanChange()) {       indexinfo.setType(Info.SUCCESS);       if (keys != null && !"".equals(keys.trim())) {              indexinfo.setMsg("[图书显示] ");       } else {              indexinfo.setMsg("[图书显示]:");       }} else {       indexinfo.setCanChange(true);}

5.8订单管理

订单管理,后台通过findListByPage进行订单分页查询,通过pagesize和pagenum进行分页查询,可以对会员进行禁用和启用可以通过findOrderById进行查看订单详情,具体界面如下5-11:

图5-11订单列表

5.9轮播图管理

轮播图是通过js对多图片进行定时css样式的隐藏进行实现的,管理员端通过调用fileupload对图片文件进行上传,然后保存到服务器的image下,返回url地址保存到数据库,然后在页面显示的时候通过url拼接,通过img标签进行展示,具体界面如下5-12,5-13:

图5-12轮播图列表

图5-13轮播图展示

核心代码如下:


   List<TopShow> topShowList = null;
      topShowList = topShowService.findAll();
      if (indexinfo.isCanChange()) {
         indexinfo.setType(Info.SUCCESS);
            } else {
         indexinfo.setCanChange(true);
      }
    model.addAttribute("topShowList", topShowList);
   return onePath + "topShowPage";
}

6. 系统测试

6.1测试分析

在系统完成设计的最后一步也是最重要的一个环节就是系统测试,系统测试往往是对整个设计的放心的把控,也是对整个项目需求的梳理和把控,对项目的业务逻辑进行验收,测试中包括黑盒测试和白盒测试,黑盒主要是对功能逻辑进行测试,其实更为注重的是结果,白盒测试则主要为系统的逻辑功能,包括系统的一些分歧点,根据系统测试,修补bug然后对系统进行完善。

在整个的测试过程中,要对可能出现的问题及情况进行汇总,对某一个bug可能影响的关联功能数据进行分析,避免潜在的数据风险,对系统的高可用情况要进行分析检验,对sql的查询,数据的展示速率进行检测,在整个的系统中一定要把控数据的存储,数据时候整个系统的核心根本,数据乱则后续全乱。

6.2项目测试

6.2.1会员登录测试

表6.1会员登录测试

测试模块

输入值

预期输出

真实输出

登录模块的测试

会员输入正确的手机号和登陆密码

提示登录成功跳转首页

提示登录成功跳转首页

输入错误信息登陆

提示用户名或密码错误

提示用户名或密码错误

6.2.2购物车订单测试

表6.2购物车订购测试

测试模块

输入值

预期输出

真实输出

购物车订购测试

添加图书添加到购物列表

购物车中新增图书数据

图书销售成功

购物车列表中移除商品

列表中商品移除成功

列表中商品移除成功

6.2.3图书订单查询测试

表6.3图书订单查询测试

测试模块

输入操作

预期输出

真实输出

订单查询测试

查询我的订单

订单列表分页展示,可以模糊搜索

订单列表分页展示,可以模糊搜索

6.2.4会员充值模块测试

表6.4 会员充值测试

测试模块

输入操作

预期输出

真实输出

充值测试

输入金额,支付密码提交充值

会员充值成功

会员充值成功

7.总结

本系统主要研究基于Jsp的图书销售网站,通过此类垂直类的销售网站可以让更多的图书得到推广,从而使得图书的销售额得到提升,本设计主要采用MVC的设计理念,采用SSM的技术框架,系统主要从应用层。视图层、请求处理控制层和业务数据处理层进行设计,通过Mysql进行数据存储和优化,采用IDEA编辑器进行编码,此次设计首先从销售类网站进行需求分析和梳理,掌握其运行的整个业务流程,从技术角度和市场需求角度进行可行性分析,对系统可能存在的技术难点和市场风险进行分析,然后进行技术框架对比和选择,对系统进行功能模块细化和框架编码设计,最后是系统测试和功能的完善,从整个设计来说对Java编码有了更深的了解,在设计过程中对设计模式也有了一定的应用,对面向对象编程体验更深。

参考文献

[1]李昌志,李黎,杨国庆,胡杰,顾宇峰,杨强.基于SSM的职工食堂二维码餐票管理系统的实现[J].电脑知识与技术,2019,15(30):61-62+92.

[2]李玥瑢,周炜,欧红梅,邓瑶,郑安文,曹双双.基于SSM框架的高校服务平台的设计[J].信息系统工程,2019(10):52-53.

[3]朱运乔.基于SpringBoot+SSM框架的Web应用系统搭建与实现[J].电脑编程技巧与维护,2019(10):23-26.

[4]杨朔,张民,宋源清,刘丰羽,李海滨,周晓燕.基于SSM框架的物流管理系统的设计实现[J].电脑知识与技术,2019,15(29):83-86.

[5]杨正泽,吴育辉.基于JavaEE+EasyUI学生成果管理系统的设计与实现——以安顺学院为例[J].安顺学院学报,2019,21(05):133-136.

[6]王崟.Java web项目驱动式教学从Model1到Model2模式的改进[J].电脑知识与技术,2019,15(28):171-172.

[7]张明亮.JSP技术在互联网软件中的应用优势研究[J].软件工程,2019,22(10):19-21+6.

[8]张明亮.基于JavaEE的人力资源管理系统设计与实现[J].软件工程,2019,22(09):20-22+16.

[9]许佩迪,王海燕,李闯.基于JSP的网上在线图书借阅系统开发与设计[J].智能计算机与应用,2019,9(05):310-311+319.

[10]刘浩浩,付小洪.基于JavaEE的无人快递点系统设计[J].

软件,2019,40(08):73-75+97.

[11]荣先钊,林宇驰,张上.网上书城的设计与开发[J].福建电

脑,2019,35(06):117-118.

[12]王亚鹏,徐鹏飞.基于JavaEE的领航手机商城的设计与实现[J].电脑知识与              术,2019,15(18):70-71.

[13]张玉卓.基于Web的财务管理系统的开发与设计[J].电子设计工程,2019,27(09):60-63+68.

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐