系统合集跳转
源码获取链接
运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以
tomcat环境: Tomcat 7.x,8.x,9.x版本均可
操作系统环境: Windows XP/7/8//8.1/10/11或者Linux或者MacOS,2G内存以上,推荐4G,4G以上更好
用了技术框架: HTML+CSS+Javascript+jsp+mysql+Spring+SpringMVC+mybatis+Spring boot
数据库: Mysql数据库,任意版本均可,也可使用各种数据库工具,例如Navicat等。
随着人们生活质量的不断攀升,汽车的购买量逐年上涨,对于停车场的需求逐步扩大,特别是对于商场和小区的停车场来说供不应求。本文以停车场为研究背景,以Java技术进行开发,采用B/S框架进行架构,设计出一款Web端的智慧停车场系统。后台框架采用SpringBoot框架进行搭建,数据库采用Mysql数据库,将系统分角色进行划分。后端主要设计了管理员登录,公告管理,车位管理,订单管理,积分管理,留言列表,管理员管理,用户管理等模块。前端给用户提供用户首页,用户注册登录,用户主页,查看公告,查看车位,查看车位详细情况,查看个人订单,修改密码,查看留言等功能。系统框架嵌入Tomcat容器,免去本地部署问题,同时采用安全框架对权限分配进行控制。本系统为有效的提高停车速度与停车场的管理效率提供支持。
【关键词】 智慧停车,B/S框架,SpringBoot框架,Mysql数据库;
1绪论 1
1.1研究背景 1
1.2 研究意义 1
1.3研究现状 1
1.3.1国外研究现状 1
1.3.2国内研究现状 2
1.4 研究综述 2
2 技术路线分析 3
2.1 开发环境选取 3
2.2 开发框架分析 3
2.2.1 前端框架选取 3
2.2.2 后端框架选取 4
2.3 开发工具选取 5
2.3.1 Navicat 5
2.3.2 IntelliJ IDEA 5
2.3.3 Tomcat 5
2.4 本章小结 6
3系统分析 7
3.1 可行性分析 7
3.1.1 技术可行性 7
3.1.2 经济可行性 7
3.1.3 操作可行性 7
3.2需求分析 8
3.3 业务流程分析 10
3.3.1 登录注册业务 10
3.3.2 修改密码业务 11
3.3.3 车位预订业务 11
3.3.4 管理员后台业务 12
3.4本章小结 13
4系统总体设计 14
4.1系统架构设计 14
4.2功能结构设计 15
4.2.1 管理员模块设计 15
4.2.2 用户功能模块设计 16
4.3数据库分析与设计 16
4.3.1数据库概念设计 16
4.3.2数据库表设计 20
4.4本章小结 21
5系统实现 22
5.1 普通用户模块功能实现 22
5.1.1 注册功能 22
5.1.2 登录功能 23
5.1.3 车位预约功能 24
5.1.4 订单结算功能 25
5.2 管理员模块功能实现 26
5.2.1公告管理 26
5.2.2车位管理 27
5.2.3积分管理 28
5.2.4投诉建议管理 29
5.2.5 管理员管理 30
5.2.6 用户管理 31
5.3本章小结 33
6系统测试 34
6.1 运行环境说明 34
6.2 测试规划 34
6.3 前台功能测试 35
6.4 后台功能测试 35
6.5测试结果 36
6.6本章小结 36
总 结 37
参考文献 39
致 谢 41
随着互联网技术的不断发展,信息产业迅速扩张,信息技术被应用到各行各业。在信息化如此发达的今天,人们方方面面都需要网络,诸如外卖点餐、网上购物、预约网约车等,网络已经深入人们生活的衣食住行中去。国家鼓励大力发展科技产业,出台多项政策扶持互联网新型产业,传统行业结合互联网进行变更已经成为时代发展的潮流。现如今信息技术飞速发展,各行各业都发生了巨大的变化,特别是对于传统行业来说更是如此。汽车的购买量逐年上涨,对于停车场的需求逐步扩大,特别是对于商场和小区的停车场来说供不应求。停车场经常出现堵塞、停车难等问题,给人们带来非常不好的出行体验。
对于传统的停车场管理来说,在车辆进入以后次啊会对车辆信息进行记录,车辆进入后自行选择空位来进行停放,顾客第一时间并不知道哪里存在空位会导致随意停放的现象,做不到有序的分布,同时不规则的停放甚至会占用两个以上车位,导致资源浪费。为了解决这些问题,设计并实现出一款智慧停车场车位分配系统刻不容缓。
此次研究是希望实现一款智慧停车场管理系统来解决当下停车困难、车位停放混乱,以及用户出行到陌生环境后找不到停车场等相关问题。智慧停车场系统通过展示坐标导航信息,来方便用户去寻找停车场位置,支持线上预约车位来确保用户到达停车场后有位置可以停放,通过智能排序,引领车主来进行顺序停放,解决停车混乱的问题,并且实行会员积分制,提供折扣来吸引用户使用,同时实现了整套的后台管理系统,结合互联网技术来方便管理人员进行管理,提高管理人员管理效率。
1.3.1国外研究现状
对于国外来说,在2020年Singh Jagmeet发表的《Control and management system of unattended intelligent three-dimensional parking lot v1 0》文献中设计并实现智能停车场管理系统,该系统首次将模块分为机械车库控制系统、交互系统、收费系统、本地及远程管理系统三个部分,其中机械车库控制系统用于控制车库的传感器数据采集、安全检测、存取车动作执行和车库状态信息反馈。交互系统主要面向客户,客户可以通过交互系统进行存车操作、取车操作、请求帮助、扫码付费。设备制造工艺精良,系统稳定性和产品技术水平达到较高水平。在2020年中Daito Techno发表的《Researchers Submit Patent Application, “Parking Lot Management System”, for Approval》中设计并实现了一款智能化停车场管理系统,通过结合物联网相关技术,实现智能化车位排布,完美的解决了当下停车慢,车位紧张等问题[1]。在2019年Guo Fang Liu,Wang Lin Yu在《Research on the Intelligent Parking Lot Management System based on the Internet of Things》一文中针对大多数停车场智能化程度和管理水平相对较低的问题,重点研究了基于Zigbee无线传感器网络的功能设计,提出了一种基于物联网的智能停车场管理系统。该系统能够检测出个人在停车场内的停车位使用情况,以及停车场内的车辆数量[2]。
1.3.2国内研究现状
对于国内来说,2021年,路漫漫《基于交互优化的城市商业智能停车场管理系统》发表的期刊中提到针对停车场资源紧张而无效停车时间浪费严重的问题,提出交互式智能停车场管理系统,以停车后距出口最近为优化目标[4],减少车位寻找及停车后步行等无效停车时间,取车时采用反向寻车导航及提前支付,减少取车离场时车牌识别后的支付环节,优化系统瓶颈[4]。龚华堂在《智能停车信息管理系统的构建方案》一文针对停车难、管理难的问题,提出了智能停车信息管理系统的构建方案,对系统软件体系、硬件体系进行部署设计,有效提高了智能停车信息管理系统的应用效率[6]。程琳,樊江涛等人在《智能停车场管理系统设计与实现》文中指出智能城市停车系统旨在解决城市交通堵塞,停车位不足,停车难等问题。系统采用无线传感技术、定位服务以及周边地图获取停车场的信息设计智能停车管理平台,适用于各大型商业区、居民区、办公区等停车场,可以有效改善此问题[8]。
虽然国内外研究停车场车位分配从停车场车位分配方面,停车管理系统方面,车位预测模型方面已经取得一些成就,缓解了一定的交通压力,但仍存在着一些问题,我国在研究中将交通的动态变化一般情况下忽略不计,没有考虑用户出行过程中道路交通变化和停车场车位的变化,以及用户无法实时了解到车位的实况,无法选择最优资源,为了弥补国内外智慧停车场系统的空缺,本系统主要是从停车场车位分配的实际需求出发,使工作人员从繁琐的工作任务中解放出来,为管理者提供一套简单可靠的管理软件,使管理体系更加的明了,能够及时的对停车现状进行调整,提高停车场的收入,使停车场在竞争中具有更大的优势。
通过进行详细的资料准备以及结合自身的技术储备对开发本系统所用到的工具和技术框架进行了确定,本章节主要介绍开发本系统需要的环境以及开发工具以及核心技术框架。
图2-1 系统开发环境
2.2.1 前端框架选取
本系统前端开发框架选取layui框架进行开发,页面选取JSP页面,通过CSS框架来调整页面样式,并且通过Javascript框架来进行方法调用。
Layui框架是一款轻量级的框架非常轻量级的框架,非常适合Web开发,并且同后端调用十分便利,Layui页面十分优美,并且市面上拥有非常多好看的模板,适合系统开发快速集成,本系统就基于这些优点所以决定选取Layui框架作为本系统前端框架选型。
停车场管理系统选取Javascript框架来进行前后端调用,通过Javascript框架强大的集成能力以及快速响应的能力,无需联系服务器即可完成响应,大大提升了前端请求速度,让系统流畅性更为便利,这也是本系统选取Javascript框架进行开发的原因之一。
2.2.2 后端框架选取
本系统采用Spring框架来进行开发,主要是为了代替Servlet框架的弊端,Spring框架拥有的两大特性正是本系统开发所需要的,本系统渴望开发出一款轻量级的系统,所以首先需要用到Spring框架的解耦性,将模块之间的关联进行降解,大大减少之间的耦合力度,让一个模块出现问题后最小程度的减少其他模块受到的影响,这样就会让系统变得更为轻盈。
其次,为了进一步的节省系统内存消耗,Spring框架的控制反转即IOC原理可以极大的减少内存消耗,本系统中用户模块、毕业生信息管理模块、学校信息管理模块中就很好的应用到这一特性,系统在控制层中注入和业务层的Bean后,就可以随去随用,不需要再每次NEW一个对象出来,这样可以最大程度上节省内存消耗,在生命周期结束后会自动被Java垃圾回收机制回收掉,释放内存空间。
此外,SpringAOP也是该框架的核心,SpringAOP为面向切面编程,将维度划分为切面和点,采用该模块可以对日志和事务进行很好的集成,非常方便进行日志管理,本系统日志管理就是基于SpringAOP的基础上实现的。Spring框架拥有这些良好的框架和特性,为本系统的开发提供了诸多的便利,这也是本系统后端开发采用Spring框架的原因之一。
MyBatis 本是apache的一个开源项目iBatis,Mybatis框架主要是用于系统和数据库之间交互使用,Mybatis框架同Spring框架进行集成,主要原理是采用了ORM的思想,将数据库字段和实体类字段进行一一映射,系统操作实体类数据,然后通过映射来传入到数据库中进行修改,本系统中在resource目录下配置好Mapper.xml映射,将实体类和系统的持久层代码结合起来,这样系统可以通过改变实体类的赋值来传递到数据库中,完成数据库的读写查操作。
Mybatis框架解决了Hibernate框架全局映射的问题,采用单独编写Sql语句进行控制,这样改变字段只需要对改动的Sql进行修改,不需要再进行全局修改。在本系统中利用Mybatis框架的特性将字段拆分开来,这样做的好处是,既可以方便字段的变更操作带来的代码改动,又可以提高数据库的查询速度。
2.2.3 前后端交互
后端框架采用SSM(Spring+SpringMVC+Mybatis)框架进行实现,采用MVC的设计思想,将系统分为三层结构,前端通过HTTP方式来发生请求,会被前端控制器进行拦截,拦截下来的请求会根据Url来进行匹配,找到对应的控制层进行分发,控制层将请求解析,将数据分发到业务层进行业务处理,业务层集成Spring框架进行业务实现,处理好的逻辑调用持久层进行数据交互,持久层通过Mybatis框架和数据库进行映射,从而来读写数据库信息。处理后的结果再一一返回到前端中去,根据前端框架渲染展示到页面中。
3.1.1 技术可行性
技术可行性是指开发本系统技术范畴是否超出开发人员掌握的技术栈,如果超出开发人员所掌握的技术要求,则开发该系统就存在技术风险。本系统技术框架选择SpringBoot框架来进行搭建,这些框架是开发本系统技术人员所掌握的技术点,并且开发人员在开发本系统前针对这些框架进行了系统性的学习,确保在开发过程中不会碰到技术壁垒,确保项目开发不会因为技术难点而拖延开发进度,并且本系统开发工具的选取也符合常规,选取了合适的开发工具在一定程度上减少了开发的难度,故而是符合技术可行性要求的,开发人员的技术掌握是满足开发本系统的,因此本系统的技术可行性是满足的。前端采用Layui框架,这也符合开发人员的技术栈,与数据库交互采用MyBatis框架,该框架可以和数据库表结构建立映射关系,并且支持Sql语句的编写,非常的灵活。开发本系统所需要的技术点没有超过开发人员的技术边界。
综上所述,技术可行性是可行的。
3.1.2 经济可行性
经济可行性是指开发本系统以及对本系统后面的运维成本是否会超出系统带来的收益值。如果开发系统的成本远远超过系统所能带来的收益,那么该系统的开发一定是没有意义的。系统在选用的开发工具以及其他的服务支持基本上都是完全免费的,在开发系统过程中的所有工作都是由自身做的,在碰到自己无法解决的问题,几乎都是向老师和同学请教和在网上查阅资料等。除去开发成本外,运维成本也是非常容易被忽略的点,本系统通过运行Jar包来部署,占用内存较小,只需要一台2核2G的服务器即可,一年的成本也就一百多块钱,成本是非常低的。但是本系统开发出来以后,可以通过吸引企业入驻来抽取收益,并且可以发布广告来获取广告费用,从多方面都能带来收益,系统开发出来所带来的收益远远高出开发成本。
综上所述,对于经济可行性来说是可行的。
3.1.3 操作可行性
操作可行性是指系统操作是否符合人们使用习惯,对管理者和用户两方面来说,本系统基于B/S架构,只需要对系统简单的部署调试就能够正常使用,系统界面美观大气,不需要经过单独的学习就能够进行功能模块上的操作,所以在使用层面上是没有难度的。对于运维人员来说,系统需要打好war包部署到Tomcat容器上即可,并且后期运维只需要进行War包替换,操作上节省了很多步骤。
图3-2 管理员用例图
图4-1 系统架构图
前端的UI和展示层组成的系统前端结构,前端主要由Html页面结合CSS样式和Ajax框架组成,来进行页面展示和信息传递。
业务层和数据层组成的后端结构,后端主要由Spring框架结合MyBatis框架来构成后端结构。
数据库采用MySql数据库来存储信息,通过MyBatis框架来完成映射和系统完成数据交互。
并且系统集成日志记录和权限控制能功能,采用Spring框架继承Spring框架AOP控制切面编程的组件,来对日志信息进行管理,通过切面切点来集成到系统后端中,完成日志的管理,可以详细记录每一步系统的操作和类的对象,既方便运维人员跟踪又方便开发人员进行调试。权限控制则是采用Security安全控制框架集成Spring框架来进行实现,通过获取Token来进行权限管理,增加系统的安全性,避免恶意攻击。
本系统根据业务不同划分为两个角色,分别是管理员角色和用户角色,用户角色为本系统的前端的主要使用者,可以对停车场的信息进行查看,主要功能点为选取、预约车位来进行停车。管理员为本系统的后台管理者,主要功能是对本网站数据信息进行管理以及对车位预约进行审核。
4.2.1 管理员模块设计
图4-2 管理员功能结构图
管理模块可对不同角色的人物带来不同的需求满足,如对客户预约后产生的订单信息进行管理,主要包括对订单的查询和审核等功能,还可以按照条件对订单信息进行查看;可以对网站上的公告信息进行增删改查操作,用户管理可以对用户信息进行管理,对用户进行新增、修改和删除操作,修改后用户信息会直接反应到前端中,车位管理对车位信息进行管理,车位信息可以供用户进行查看和选择,选择车位进行停靠,管理员可以对用户的投诉信息信息管理,查看留言列表并且可以进行增删改查操作,对用户停车消费进行统计,并且可以按条件进行查询,同时会对积分进行排行,对系统信息进行管理,特别是对管理员信息进行管理。
4.2.2 用户功能模块设计
图4-3 用户模块功能结构图
对于系统用户来说可以进行注册登录,登录后可以查看个人信息,并且可以对个人信息进行修改等操作。登陆后可以在车位管理模块对车位根据条件进行查询,查询到可以查看车位的详细信息,并且可以预约车位,还可以提交反馈信息,后端会将可以展示出来,前端可以查看和查询,在订单查询模块对产生的订单信息进行查询,还可以查看到历史订单,并且预约后可以对订单状态进行查看,确保是否已成功支付,可以对网站发布的活动进行查看,也可以对网站展出的客片进行查看,还可以对网站首页的轮播图进行查看。