admin 管理员组

文章数量: 887021


2024年1月16日发(作者:python怎么读取cpu性能)

基于ssm框架的B2C校园租赁系统的设计与实现

目前,在大学校园内存在诸多租赁需求,如外出旅游需要租用相机、体育课需要使用运动器材如网球拍以及休闲阅读一些课外书套装等。这些都是低频、价格不低的物品,通过租赁获得物品的短暂使用权对学生而言经济可行。同时,校园类还存在一些只限于短期类需要的物品如一些公共课教材课本,毕业即丢的鞋架,座椅,置物盒等。对于这些物品,如果通过租赁方式将其多次使用,可避免资源的浪费。校园租赁系统利用网络的优势,将集中的物品资源通过网络平台满足大家的租赁需求,结合校园学生信息的高可信,为学生以及商家带来便利。

该校园租赁系统运用Java语言,在开发工具Eclipse上利用SSM框架进行开发,以MySQL作为系统的数据库。系统主要分成后台管理模块,和用户使用的前台模块,在后台管理模块中有商品管理,客户管理,以及订单管理等功能,在前台模块中功能有用户登录注册,购物车和提交订单等。

本文以基于SSM的校园物品租赁系统为例,介绍了系统使用的相关技术与系统架构,阐述了基于SSM的物品租赁系统的开发与设计。

论文结构

本论文正文内容共分为六个部分:

1)绪论,主要介绍了本课题的背景和意义以及国内外现状。

2)系统相关技术的介绍,主要介绍了本次开发所用到的开发工具和用到的技术理论。

3)系统分析,主要对系统进行分析,主要介绍使用的分析方法包括可行性分析和需求的分析。

4)系统的总体设计,主要包括各个模块的详细介绍。

5)系统的具体实现,这部分是论文的主体部分,该部分从页面到后端详细介绍了校园租赁系统诸功能及管理员端与后台交互的实现过程。

6)系统的测试,介绍了系统测试的相关原则以及对系统部分功能的具体测试情况。

课题的意义

随着近年来经济的不断发展,互联网已经日益普及,各类软件产品深入高校师生的生活、学习和工作的方方面面,网络与大学生的生活密切相关,也使生活更多样而有效率。同时,随着消费习惯的变化,高校大学生购买商品多样化,导致物品使用效率大大降低,如何解决资源合理利用以及高效化,成为其更多高校社区的首要难题。如在校期间,每位同学在毕业时都不可避免的留下较多的旧教

材和少量的闲置物品。针对这些问题,为了解决资源合理循环利用,保护环境。需要有一个服务学生的闲置物品流动平台。校园租赁系统可很好的满足需求。

“使用但不拥有”已成为一种消费时尚,比如有了哈罗单车就可以实现随时便捷出行,不一定非要自己买辆车,校园租赁系统通过将不再使用或偶尔使用的闲置物品共享出租,能最大化发挥闲置物品的价值,物品拥有者出租赚钱,使用者租借省钱,对双方都有价值。同时,基于互联网的校园物品租赁系统将大大降低交易过程中的流通成本,交易的过程不会再受限于时间空间,所以不论从环保的角度看还是从经济的角度来看,校园租赁系统都将有着非常重要的意义。

课题研究现状

随着社会的发展以及人们消费习惯的改变,物品租赁现象在生活中越来越普遍,如租借轻奢品,名牌鞋包,汽车,家居等,不拥有物品但可以使用物品成为现实。同时随着互联网的普及,也应运而生较多的物品租赁软件产品,如市场上出现的创美优品,译城租车,YOU美机,以及居然管家等软件产品。这些软件产品给人们带来方便快捷的租借体验,同时也在塑造大众的消费习惯,越来越多的人开始租用而不是购买部分所需要的东西。而校园租赁软件产品如魔屋,享租软件等也出现在一部分高校的校园服务中,但这里还有很多高校的租赁需求未被满足。对于大学生这个用户群体,校园租赁将会有大的市场需求。

相关技术简介

SSM简介

当今流行的“SSM组合框架”是Spring + SpringMVC + MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring属于一个轻量级的反转控制框架,但它也是一个面向表面的容器。SpringMVC常常用于控制器的分类工作模式,与模型对象分开,程序对象的作用与自动取款机进行处理。这种解耦治疗使整个系统的个性化变得更加容易。MyBatis是一个良好的可持续性框架,支持普通SQL查询,同时允许对存储过程的高级映射进行数据的优化处理。大型Java Web应用程序的由于开发成本太高,开发后难以维护和开发过程中一些难以解决的问题,而采用“SSM组合框架”,它允许建立业务层次结构,并为这个问题提供良好的解决方案。

1、Spring

其中的spring是一个开放源码的设计框架,它完美的解决了企业和其他业务层的逻辑层的耦合问题,因此,它使用面向接口的编程思想,通过整个系统的应用。Spring组件是2003年开发的Java开发框架,Spring是一个轻量级的框架。由著名的罗德·约翰逊开发出来的。简而言之,Spring是一个JavaSE/EE full

-stack框架(one-stop)。基本类别gisspring被应用在springframework/org /,它最初是为JavaBean子集投资组合的。

2、SpringMVC

SpringMVC是基于Spring集成的MVC设计模型的WEB应用程序框架。SpringMVC框架允许WEB应用程序适应开发过程,因为它包含了许多可视化技术,如jsp。SpringMVC组件和Struts组件在功能上比较相似,但两者之间有很大的差异,其中包含了执行的原则。Struts2的拦截机制用于类,请求可能与类相对应。虽然SpringMVC拦截机制的目的是在方法上,但需求可能与方法相对应,而方法与url相对应。

3、Mybatis

Mybatis是一个可持续层的框架,在开发企业应用程序的过程中,主要通过XML文件的配置和与对象和SQL和存储过程之间的交互相关的对象的注释。这不是对象和数据库之间的直接关系。与此同时,Mybatis可以为开发人员生成SQL语句。Mybatis整合了不同的概念和方法,并建立了一个可持续的、稳定的框架。它可以访问数据库中的数据,并提供相应的结果。JDBC情况相比,simplifiait执行Mybatis Dao层,允许对数据库的使用相关的守则,而且现在Mybatis爪哇矩阵可

通过简单加注原始档案,以及含有声明SQL XML。最后,Mybatis使用了mamap引擎,通过使用bean的定义和接口,将数据从车库中提取出来。在配置xml时,可以对输入的参数类型和结果类型进行映射。

4、整合

SpringMVC+Spring+Mybatis已经成为SSM的框架。SSM是一个更大、更低的组合框架,许多公司选择了SSM作为企业门户的架构师,政府的网站,以及许多金融公司也选择了SSM来开发。作为一个优秀的操作框架,Spring不仅成功地整合了SpringMVC框架的性能层和Mybatis框架的持久层。Spring在Spring中集成了SpringMVC和Mybatis,将机器作为一个工厂来管理整个应用程序。Spring直接管理Mybatis的数据源配置,以及相应的事务管理,创建SqlSessionFactory数据矩阵和Mapper接口。这是Mybatis整合的原则。因此,Mybatis不需要在Mybatis -中重新配置数据源和事务。该服务不再需要手动处理,以访问SqlSession和Mapper数据接口,在注入后,spring自动可用。

MVC模式介绍

MVC就是按照职责不同将程序划分为 3个组成部分.可以改善程序结构,便于日后维护和扩展。

① M-Model 模型

模型(Model)的职责是负责业务逻辑。包含两部分:业务数据和业务处理逻辑。 比如实体类、DAO、Service都属于模型层。

② V-View 视图

视图(View)的职责是负责显示界面和会员交互(收集会员信息)。

③ C-Controller 控制器

控制器是模型层M和视图层V间的桥梁,用于控制流程。

用户鉴权

用于用户登陆到DSMP或使用数据业务的时候,业务网关或Portal发送此消息到DSMP,对该用户使用数据业务的合法性和有效性进行检查。根据业务网关和Portal中用户进入方式的不同,提供四种方式的用户鉴权:

分别是根据用户的MSISDN号码,用户的伪码,用户的MSISDN号码和密码以及用户的伪码和密码进行鉴权。不同的鉴权模式,AuthType填写不同的值

系统分析

可行性分析

可行性分析是在全面调查的基础上,针对系统的开发是否具备必要性和可能性,对系统的开发从运行、经济、技术的方面进行分析和研究,以避免投资失误,保证新系统开发成功。

(1)技术可行性

本此设计开发采用的是JAVA语言,SSM框架,利用开源的MySQL为数据库,Eclipse为开发工具, 配合数据库的连接开发本系统。这些技术在课堂上都有接触过,再加上自己去图书馆查阅资料和相关技术,可以顺利完成本系统的开发。因此在技术上是可行的。

(2)经济可行性

本次开发所采用的软件都是开源软件,软件部分不必投入资金,开发的电脑可以去机房或是自己的电脑,硬件部分也不必投入资金,而且本系统建成后的操作基于浏览器,软件直接安装在电脑上就可以运行系统,系统运行使用后可以减少人力、物力、财力的投入,将会大大节约开销,因此在经济上也是可行的。

(3)时间可行性

本次的设计时间十分充足,可以有足够的时间查阅资料,参考类似的成熟网站,还可以请教老师,所以有足够的时间完成系统开发。因此在时间上是可行的。

需求分析

需求分析的基本任务是通过对问题的分析和对环境的理解,深入描述系统应该实现的功能和性能,借助当前系统的逻辑模型导出目标系统的逻辑模型,确定系统用户的需求并将用户的需求表达出来。

第一,需求的获取:用户对软件系统期望的功能、用户与系统间的交互等需求,同时还要考虑对质量的要求;第二,抽象出当前系统的逻辑模型,常使用数据流图和实体关系图;第三,建立目标系统的逻辑模型,对用户的信息加以分析,抽象出目标系统的逻辑模型。

用户需求分析

这个网站以上面的业务需求为基础,进一步提出网站需要完成的以下任务:网站需要让用户以及浏览者能清晰的看到网站的信息及动态,另一个重要的内容

就是能够显示出该网站现有的各类型物品及其详细信息;由于用户的需求在不断的增长和变化,网站在面对面物品租赁的基础上也要随之发展出相应的业务。

功能需求分析

根据上面的需求分析,需要设计出网站的前台与后台。用户在前台所浏览的内容以及进行的订单操作,网站的后台需要能相应的做出更新或修改。根据以上的想法,设计出网站的功能:

前台页面相关功能主要包括:

1) 用户注册、登录;

2) 搜索商品;

3) 查看商品列表;

4) 查看商品详细页面;

5) 加入购物车;

6) 租赁商品;

前台会员租赁流程图如下3.1所示:

浏览物品

后台管理相关功能主要包括:

1) 用户管理;

2) 分类管理

3) 商品管理;

4) 订单管理;

后台管理员处理物品订单流程图如图3.2所示:

选择物品

订购物品

未注册用已登录注册用未登录注册用登录

注册 添加购物车

提交订单

查看订单

图3.1前台会员租赁流程图

用户订单

订单处理

订单发货

查看详情

订单管理

图3.2处理物品订单流程图

将以上这些功能制作成网页以后,在其中分别互相建立分类,基本完成管理员及用户对网站的要求。

系统总体设计

系统设计原则

系统的设计是决定了系统如何去开发的一个途径,一个优秀的系统设计可以决定一个软件系统的质量和性能。系统的设计需要拥有完善、准确和有规范性的系统设计的说明书和一系列文档文件。这些文档可以把系统融合为成一个不容分割的整体。在这个基础上,我们继续进行软件的开发和设计还需要进行一下的条件的准备:

1、适用性原则

要能够满足用户对于整个软件的性能和质量的要求,是所有系统设计的基本要求,一定要专注用户体验,从适用的用户出发考虑如何让他们使用的更加方便,更加简单。并且要注重软件的开发成本,应用市场和发展前景对系统开发也相当重要。

2、可靠性安全性原则

我们进行系统的开发时,即使一个系统你做的再好,不可靠不安全的系统也没人敢去使用。在网络日益发展的现在,很多追求利益而不择手段的人将会让不可靠和不安全的系统遭受巨大的打击,只有安全可靠的应用软件才能给人以安全感,展现自己的优越性能。

3、可扩展性原则

软件开发不是一成不变的,而是随着时代和技术的进步不断去改变的,那么系统的可拓展性就显得尤为重要。我们需要不断去完善系统,跟着时代去改变去进化自己的系统。采用分布式的设计和模块化设计等技术手段、通过系统分解划分为不同的独立的模块可以给拓展性增加大量的空间和便利。

通过JAVA语言、SSM框架和数据库技术的支持,设计出了这个为校园学生所应用的校园租赁系统,在设计开发的过程中,我从性能、质量、安全和稳定性、拓展性等多方面上做出了自己的思考,希望最终能够提高用户的体验,增加系统的便捷性和准确性。

系统功能模块设计

在结构化系统设计中,模块一般都是按功能划分的,通常称为功能模块。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。

后台模块的功能模块设计

后台管理模块的功能是对整个网站进行管理和维护。以后台的业务流程分析和前台各个模块的设计为基础、根据用户的需求分析来确定后台管理模块应具有的功能。后台管理模块的主要功能模块图如图4.1所示:

后台管理员模块主要分成以下部分:

(1) 用户管理(包括用户的增加,删除,修改以及分页查询功能)

(2) 商品管理(包括对商品的增删改查以及商品类别的管理功能)

(3) 网站内容管理(包括对首页商品内容的增加,修改,删除等功能)

(4) 订单管理(包括修改订单,将归还的商品订单确认归还功能)

图4.1管理员功能模块图

前台模块的功能模块设计

前台用户模块的功能是根据用户的实际需求分析来确定相关功能的。前台用户模块的主要功能模块图如图4.2所示:

前台用户模块主要分成以下部分:

(1) 注册登录(包括用户注册信息,登录验证以及短时间内免登陆功能)

(2) 商品列表浏览(包括商品信息的分页查询)

(3) 查看商品详情(即根据商品id查询具体商品信息)

(4) 购物车模块(包括添加购物车以及购物车中商品的修改与删除功能)

(5) 租赁商品(包括提交商品租赁订单)

(6) 搜索商品(即根据关键字查找具体商品)

图4.2 管理员功能模块图

文件结构设计

图4.3 文件结构图

系统业务流程设计

为了可以提高软件系统的质量与性能,需要具备完善,准确和有规范的系统设计。在遵循适用性原则,可靠性安全性原则,和可扩展性原则的基础上对该系统的业务流程做了如下设计。整个软件的流程图如图4.1所示。

用户进入校园租赁系统后,可浏览系统首页选择所需要的商品,同时也可以

通过搜索系统找到所需要的商品。进入商品详细信息页面后,可以将需要的物品加入购物车,之后提交订单,也可以直接下单租赁商品。提交订单前系统会检测用户是否登录,如果用户登录,则可以成功租赁商品。如果未登录,系统则会跳转到登录页面要求用户注册登录。为了实现租赁过程中的安全性原则,同时结合校园信用的特点,注册或登录的用户名为用户学生学号。租赁成功后,商家确认订单并发货,当用户在租赁期限内归还商品后,商家管理订单,修改订单中用户的租赁状态,并且修改商品库存,修正可租赁商品品数量。

图4.4 业务流程图

数据库设计

(1) 根据系统需求,确定数据库中要保存的数据信息。对系统需求进行分析是数据库设计的第一个阶段。不断的调查与研究系统并了解用户运作流程是设计概念模型的基础。

(2) 设计数据库的概念模型。概念模型是按会员的观点来对数据建模,使用与进行信息世界建模的工具。它对整个数据库的设计具有深刻的影响。

(3) 逻辑结构设计。逻辑结构是把概念结构转化为与所采用的数据库管理系统所支持的数据模型相符合的过程。

E-R图

图4.5 E-R图

基本表设计

(1)用户表user

此表是用来存储用户信息。结构如图4.6示。

图4.6 用户表user设计

(2)商品表product

商品表用来保存商品信息,它的结构如图4.7示。

图4.7 商品表product设计

(3)商品类别表category

商品类别表用来保存商品的类别信息,具体如下图4.8示:

图4.8 商品类别表category设计

(4)订单表order

订单表用来记录用户租赁商品的订单信息,具体如下图4.9示:

图4.9 订单表order设计

(5)订单明细表orderitem

订单明细表保存订单租赁的具体商品信息,包括商品id,订单id,商品的数量等字段,具体如下图4.10所示。

图4.10订单明细表orderitem设计

(6)购物车表cartitem

购物车表用来记录用户的购物车信息,包括该用户租赁的物品及天数。表的结构如表4.11所示。

图4.11购物车表cartitem设计

(7)用户评论表comment

用户评论表用来记录用户的关于某商品的评论留言,如表4.12所示。

图4.12用户评论表comment设计

以上是本系统中主要的E-R图和数据库表。

系统实现

开发环境搭建

系统基于window 7操作系统平台,利用Java开发语言,应用服务器端JSP动态网页技术以及MySQL数据库进行开发。

搭建开发环境的软件包含:

开发工具包JDK 1.8

集成开发环境Eclipse

服务器Tomcat 8.0

3.数据库服务MySQL 1.5

4.前端页面开发工具HBulider

登录注册模块实现

登录注册功能模块借助sso单点登录系统实现,即利用Redis来替代session来实现用户在一定时间内免登录功能。

用户在提交租赁订单之前需要登录,当用户提交订单时,系统会通过查询缓存中用户的token是否存在来检验用户是否登录,如果缓存中用户信息存在,会跳转到登录页面,如果用户信息不存在,则用户无需再重新登录。

用户登录时,系统会把用户信息存入Redis缓存中,并把token存入本地cookie中,当用户在一定时间内再次进入系统时,可快速从缓存中得到用户信息而无需重新登录。登录实现的核心代码:见附录 1。

登录的处理流程:登录页面先提交用户名密码,登录成功后生成token,把用户信息保存到redis。Key就是token,value就是TbUser对象转换成json,并设置key的过期时间模拟Session的过期时间,一般半个小时。最后把token写入cookie中即可登录成功。具体的实现效果如图5.3和5.4所示。

登录注册的UML时序图如图5.1和图5.2所示:

图5.1 注册的UML时序图

图5.2 登录的UML时序图

图5.3 注册的界面图

图5.4 登录的界面图

物品租赁模块实现

网站前台主要是用户的操作页面,用户可以浏览分类商品,查看商品详情,将所需要的租赁商品添加到购物车,并且在登录后提交订单租赁商品。同时,用户可以在页面中搜索需要的租赁品,并修改购物车中的租赁商品来满足自己的租赁需求。

搜索筛选模块实现

为能够快速找到所需要租赁的物品,用户可在页面通过商品名称关键词搜索商品,搜索之后可以看到搜索的结果列表。搜索功能利用Solr服务实现,同时使用SolrJ实现索引库的增删改查操作。管理员在后台将数据库中的商品信息添加到索引库,用户即可在前台进行商品搜索。搜索功能的主要代码见附录4。

搜索后的商品详细页面如图5.5示:

图 5.5 商品详情页面

购物车模块实现

用户租赁商品前可将所需要的物品加入到购物车中,然后一次性提交订单租赁商品。购物车模块包括添加购物车,展示购物车列表页面,修改购物车商品租赁天数,删除购物车商品。该功能把购物车信息保存在中数据表cartitem中,进行购物车操作需要用户已登录,才能将购物信息添加到相应的用户购物车记录中。

以添加购物车功能为例,用户提交请求后,系统根据用户id,以及商品id从数据库中查询cartitem表中是否存在与该用户相关的商品记录,如果存在,将该用户的购物车中商品租赁天数增加,如果不存在,则根据用户id在该用户的购物车中添加一条新的商品记录,最后将成功添加购物车的信息返回到页面。购物车功能的主要代码见附录。

购物车列表实现效果如图5.6所示:

图 5.6 购物车列表页面

租赁物品模块实现

用户在选好需要租赁的物品后即可提交订单租赁商品。用户可通过购物车提交订单,也可浏览商品时直接提交订单。

以通过购物车提交订单为例,系统获得页面提交的信息后,其中包括用户id,以及购物车商品列表,调用OrderService中createOrder()方法。该方法中的业务逻辑为:将order类中的信息完善后,添加到数据库中,之后,将购物车中已租赁的商品删除,并更新数据库中的商品表product,修改库存量。最后将订单商品表orderitem添加到数据库中。最后跳转到支付页面,支付后即可成功租赁商品。提交订单的主要代码见附录。

提交订单页面和订单详细信息页面如图5.8和5.9所示:

图5.7 提交订单UML时序图

图5.8 提交订单页面

图5.9 订单信息页面

后台管理模块实现

后台管理模块的页面利用easyUI框架中数据表格,树形表格,对话框等控件实现。模块包括用户管理、商品管理、网站内容管理以及订单管理功能。具体商品管理和订单管理页面如图5.11和5.12所示。

商品管理功能

商品管理功能包括商品添加,商品分页列表,商品删除以及修改功能。其中商品分页列表功能利用分页插件PageHelper执行分页查询,并通过model将数据返回给页面。 商品添加功能则需要利用fileUtil工具类实现图片上传,将商品信息以及商品图片信息分别添加到product表和product_image表中。

商品管理实现的核心代码见附录6.

图 5.10商品管理UML时序图

图 5.11 商品管理页面

图 5.12 订单管理页面

主要代码见附录。

以上是系统中主要的功能模块实现。

系统测试

系统测试目的

每个系统开发后都要经过测试的步骤,系统测试是系统开发过程中的一个重要的必经阶段。通过系统测试可以保证系统的质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查阶段。只有确保系统的正确运行才可以保证使软件投放使用。这是测试的最终目的。

系统测试过程

在测试的时候需要填写一些数据来测试系统软件的功能,为了使系统更加完善,在系统测试的过程中,我们劲量填写有效的数据,这样可以更真实的反映系统的功能实现情况。系统软件需要不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。

系统测试原则

程序员应避免测试自己编写的程序;测试用例的设计必须包括预期的输出结果;测试用例应包括有效的和期望的输入情况,也要包括无效的和不期望的输入情况。

系统测试用例

(1)用户登录测试描述:用户在系统首页点击登录按钮,进行测试用户登录模块。如表6-1所示。

表6-1 用户登录模块测试

(2)租赁物品模块功能的实现是该系统设计的重心,也是一大难点。租赁物品详细功能测试如表6-2所示。

表6-2 租赁物品模块测试

模块名称

功能特性

测试目的

用例编号 测试步骤

租赁物品模块测试

测试租赁物品具体功能

验证租赁物品模块各个功能是否实现,全面

输入数据 预期结果 测试结果

修改购物车DL001

中商品租赁天数

如将天数加一 租赁天数增加 成功

DL002

点击删除按钮

NULL

删除成功,物品消失

成功

DL004

点击结算

NULL

跳转到结算页面

成功

DL005

点击提交订单

NULL

跳转到我的订单页面

成功

本章对系统的各个功能进行了软件测试,经过测试,证明本系统的开发过程非常成功,达到了用户的需求,完成了目标,系统能够正常的运行,各个功能可以正常使用。

结论

通过几个月时间的努力完成了本次网站的设计任务。这次的设计让我从中学到了很多知识。知道了学习知识,最重要的是实践,只有多动手才能尽快掌握它。在开发的过程中我查询了很多资料,参考了很多成熟的网站,也请教了老师与同学,终于顺利的完成了本次的设计。但是由于经验不足,在开发过程中难免会出现一些纰漏,某些功能还是不够完善,整体设计考虑不周之处。我会在以后的时间里会逐渐完善。

本次开发,让我学会了很多课堂上学习不到的知识,吸取了一些别的本系统的长处,对自己的毕业设计进行了完善,这次的设计基本完成了所需要的功能。本系统能够成功运行,运行良好,没有发现明显异常的存在,系统界面友好、使用灵活、操作简单、功能齐全基本满足了设计的要求。这次的设计是对我整个大学知识的一个总结,有不足之处会在以后逐渐改进。


本文标签: 系统 用户 商品 租赁 设计