基于Java web停车场管理系统的设计与实现
摘 要
随着全面小康时代的到来,人民的生活发生了翻天覆地的变化,很多人为了提高生活的质量和出行效率都会考虑去买一部车来办公,出家旅行,这也导致了车辆的迅速增长。在我们的日常出行中难免会遇到堵车难,找车位更难的问题,因此就出现了怎样解决停车难的问题。本停车场管理系统由此诞生。
本课题以Myeclipse作为运行载体,通过Myeclipse Tomcat7服务器和MVC的开发模式,以Mysql-5.5.27作为数据库在J2EE标准的前提下实现了一种B\\S架构的系统。本系统将网络和现实相结合,突破了传统停车场的限制更加适应当代社会对停车场的管理需求。
关键词:J2EE;B/S结构;Mysql;MVC;
1绪论
1.1 系统研究背景
从上世纪八十年代开始,停车还只是少数人的需求,停车场的出现成为了一个新的行业,那时停车场的主要职能是保护车辆,一人一凳一壶茶成为了那个时代的一大特色,那时的车辆是财富和权利的象征,停车场还不发达,人们停车一般停在道路两旁,有的人会给小费让人看着,通常情况只有富贵人家院子才有停车场。
上世纪九十年代初,随着外国企业的涌入,一些先进公司带来了一些发展思路和停车理念,为了更好的服务车主,提高物业水平,以停车行业为目标所带来的相关技术和理念出现了分水岭,推陈出新成为了时代发展理念。此时的停车场还停留在收费管理阶段,进出口控制系统的出现也是模仿外国的收费管理系统。要想解决这种问题就要进行创新。
1.2研究意义
传统老套的停车场收费管理系统已不再满足人们的需求,放眼现在,很多汽车行业的人们开始着手于改造停车场的进程中,这是机遇也是一种挑战,谁能领先于对方抓住当今信息化的大潮流,谁就能在停车场市场抢占先机。
我们经常会遇到这样一个问题就是去到很多老旧小区,包括一些商场去停车发现转了一圈竟然没有停靠的位置,这不仅浪费时间,还会影响到自己的心情。上下班高峰期经常是堵在停车杆下一车一杆,付着零钱,这种等待经常让车主焦头烂额。
这些停车场,都在存在这样一个问题,工具老旧,网络环境差,所以迫切需要一个停车场的管理系统来处理这系列的问题。
想要对车辆进行管理就是对车辆信息进行管理,想要管理好这一连串的信息,就要了解停车场位的数量信息、进出车辆信息、车主的身份信息等,处理好这些信息,才有利于车辆管理,提高停车场的市场竞争力。针对停车场有关方面的信息,将其系统、停车位、固定车主、临时车主、IC卡进行了信息化,方便使用者管理车辆。
针对这样的问题该停车场管理系统就要做到不断地更新。本系统采用的是IC卡消费和货币支付相结合的方式,系统计时计费。采用Java web的相关技术,实现线上管理。改进后的系统使用灵活、办事高效、收费透明。有效提高车辆进出效率,节省用户时间。
2相关技术与方法
2.1 J2EE
2.1.1 J2EE介绍
J2EE本身是一个标准,1999年,由Sun公司正式领导开发了J2EE的第一个版本,到后来的J2EE1.4版本最初的作用是用来制作动态网页Applet,但是由于企业系统API之间不能相互兼容,为了规范企业应用系统的开发,构成了J2EE标准。它能够开发和部署异构环境中的可移植程序,J2EE为搭建具有伸缩性、灵活性、易维护性的企业系统提供了良好的机制,使软件开发商能够以更快的速度向市场推出适应用户的解决方案。
2.1.2构建本系统J2EE开发工具
Java虚拟机:JDK 1.7.0_79
java开发工具:Myeclipse web服务器:Tomcat 7.0
2.2 MVC介绍
MVC是一种软件设计典范,它最早存在于桌面程序中,它可以处理模型数据,然后以视图的方式将其创立出来,通过用户输入的数据来向模型传输视图命令。使用MVC的目的是将它的主要核心就是模型、视图、控制器。使用MVC的目的是将模型和视图的实现代码分离,使一个程序有不同的表现形式。比如一批数据可以由柱形图表示,也可以由线形图表示。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器的作用是保证视图和模型同步更新,三者是相互独立的存在,但又通过一定的逻辑交织在一次。便于开发者分层开发应对象。
2.3 JSP介绍
JSP是J2EE标准的一种技术规范。其以Java为脚本语言,可以将java代码嵌入jsp页
面,将代码和业务逻辑分离开来,实现动态交互。用户通过表单或者超链接提交数据,数据传到对应的Servlet中,通过Java代码处理,形成动态交互。JSP现今被大多数企业所应用,对于J2EE来说必不可缺。它使Web开发简化,提高效率,减少企业支出。
2.4 JQuery介绍
jQuery是一种独特的链式语法,它对于开发环境的要求很低,一个可以查看浏览器的设备就可以运行它。jQuery是继prototype之后又一个优秀的JavaScript框架,兼容了多种
browse(IE6.0+),FF1.5+等主流浏览器。不但能够方便的操作文档和DOM、处理事件、实现动画效果,而且很方便的实现AJAX交互、兼容CSS3。在元素迭代和数组处理方面,比JavaScript框架更强。
3系统分析
3.1可行性分析 3.1.1技术可行性
MVC模式是整个设计的关键性技术,它贯穿系统的始终,并且采用了SpringMVC和JDBC
架构的组合方式,搭建起一个用户界面。如下是它的三个核心所实现的功能。
1.模型层
模型层主要用于逻辑处理。它可以对数据库进行处理来给视图层提供数据,由于模型层的代码写一次就可以被视图多次利用,所以也大大降低了工作量。
2.视图层
停车场管理系统采用JSP来实现视图层,它是用户能够直观看到并与之交互的界面。 3.控制层
控制层就是将模型层与视图层发生关系的最后一步,它相当于一个控制器接收用户发出的请求,并调用相应的模型层来处理,模型层再将处理好的逻辑数据传送给视图层实现相应的功能。
在停车场管理系统的设计中应用MVC设计模式,便于开发人员设计代码,由于这三个逻辑可以同时进行,提高了效率,节省时间,且由于分层,将代码隔离开来,方便开发人员操作。
3.1.2需求可行性
根据调查了解到,大多数公共场所出现停车难、车位少等问题,停车场的效率十分低下,导致停车场的收益降低,且不安全。而有了这样一个管理系统,管理员可以在电脑上查看停车场的实时动态,这样用户就可以在最短的时间内掌握停车位的使用情况。
3.1.3操作可行性
因为本系统所所使用的运行工具是myeclipse,只要工作人员的电脑上安装此软件再稍加的讲解就可以上手操作。
3.2需求分析 3.2.1系统功能描述
系统信息管理:设置管理员的权限、编辑管理员的信息。
车位信息管理:对车位进行编号,备注车辆的信息,定位所属的区域。
IC卡信息管理:对已经注册了IC卡的车主进行信息备份,并且可以编辑和删除他们的相关信息。
固定车主停车管理:查询用户的入场与出场信息,对于无用的记录进行删除。 临时车辆信息管理:记录临时车辆的车牌号,临时编号,入场时间,出场时间,与收费标准,对其具有删除和查询功能。
收费管理:管理收费、添加收费信息,对临时车主的停车收费。 打印报表:查看报表信息,对固定车主和临时车主相关信息进行打印。 系统功能操作:修改密码、退出系统。 留言信息管理:添加留言、管理留言。
管理员系统信心管理车位信息管理车主信息管理IC卡信息管理收费信息管理系统功能管理留言信息管理新编删固定临时增辑除车主车主新编删角色用户停车停车增辑除管理管理管理管理出入出入场场场场新增导入编删新增删导出辑除导入编导出辑除图1总体设计图
结打退算印出系统修添管改加理密留留码言言
4系统设计
本章内容包括系统核心业务类设计、数据库设计两部分,系统核心业务类设计主要表达的是类与类之间的关系,大体实现的功能是什么。
数据库设计采用了一个分层设计直观反映出每个模块的功能,用一个实体联系图来介绍各个模块之间的联系。
4.1系统类设计
经分析,该系统核心业务类如图2所示:
图2系统核心业务类
4.1.1 User类
User类系统登录界面,主要功能是登录系统,注销系统如表1所示。
表1 USER类
类功能描述 所在包名称 类属性 保护属性 Public Public Public 类型 String String String 名称 ID Name Password 位 20 20 20 描述 用户ID 姓名 密码 登录界面 DAL 主要实现方法 保护属性 Public Public 方法名 login logout 输入参数 string id,string pwd string id 输出参数 String Void 方法功能描述 登陆系统 注销系统
4.1.2 Journal类
Journal类由5个类组成。分别是Fixed类、Temp类、Role类、Card类、Seat类 。 Fixed类记录固定车主信息,主要功能是查询车主信息,记录车主的出入场时间,打印和删除车主的信息,如表2所示。
类功能描述 所在包名称 管理固定车主的信息 DAL 类属性 保护属性 Public Public 类型 String String 名称 Fix_id Card_id 主要实现方法 位 20 20 描述 记录编号 IC卡号 保护属性 Public Public 方法名 Update Delete 输入参数 string Fix_id string pwd string Fix_id 输出参数 Int Void 方法功能描述 更新固定车主信息 删除固定车主信息 Temp类管理临时车主信息,主要功能是记录临时车主的出场时间,入场时间,并结算他们的停车费,具体情况如图4.4所示。
类功能描述 所在包名称 类属性 保护属性 Public 类型 String 名称 Temp_id 位 20 描述 记录编号 管理临时车辆信息 DAL 主要实现方法 保护属性 方法名 输入参数 输出参方法功能描述 数 Public Public Update Delete string Temp_id string Temp Int Void 更新临时车主信息 删除临时车主信息
Role类管理用户及管理员,主要功能是添加管理员,设置管理员的权限,删除管理员,具体情况如图4.5所示。
类功能描述 所在包名称 类属性 保护属性 Public 类型 String 名称 Role_id 位 20 描述 记录用户编号 用户管理 DAL 主要实现方法 保护属性 Public Public
方法名 Insert Delete 输入参数 string Role_id string Role_id 输出参数 Int Void 方法功能描述 增加用户 删除用户
图4.5 Role类 Figure 4.5 Role classes
Card类管理IC卡信息,主要功能是添加IC卡,删除IC卡,具体情况如图4.6所示。
类功能描述 所在包名称 类属性 保护属性 Public 类型 String 名称 Card_id 位 20 描述 记录车辆编号 管理IC卡信息 DAL 主要实现方法 保护属性 方法名 Update Delete 输入参数 string Card_id string Card_id 输出参数 方法功能描述 Public Int 编辑IC卡信息 Public Void 删除IC卡信息
图4.6 Card类 Figure 4.5 Card type
Seat类车位信息,主要功能是查看车位的占用情况,编辑车位信息,删除车位信息,具体情况如图4.7所示。
类功能描述 所在包名称 类属性 保护属性 Public 类型 String 名称 Seat_id 位 20 描述 记录车位编号 管理车位信息 DAL 主要实现方法 保护属性 方法名 Update Delete 输入参数 string Seat_id string Seat_name string Seat_id 输出参数 Int Void 方法功能描述 Public Public 编辑车位信息 删除车位信息
图4.7 Seat类 Figure 4.5 Seat class
4.2数据库设计 4.2.1数据需求分析
停车场系统实体联系图表明了实体与实体之间的关系,根据系统的功能需求,系统有管理员、IC卡、临时车主、固定车主、车位、收费信息六个实体。一个固定车主拥有一张IC卡和一个车位,一个临时车主拥有一个临时车位和临时IC卡。临时车主产生收费信息。实体关系属性图如图4.8所示
车位状态车位ID所属区域车位编号车位备注角色编号IC卡编号记录编号拥有IC卡号IC卡1用户编号车位拥有用户用户名称真实姓名用户密码拥有固定车主临时车主用户电话车牌号临时卡编号临时编号车牌号车位编号用户姓名产生收费信息产生
图4.8停车场系统实体联系图
Figure 4.6 entity contact diagram of parking lot system
4.2.2数据库的实现
根据系统需求确定系统有如下7张表。 1.用户表:储存用户信息。 2.角色表:储存角色信息。
3.车位管理表:管理车位信息以及车位状态。 4.IC卡管理表:管理IC卡信息。
5.临时车辆记录表:记录临时车辆的信息。 6.固定车主表:记录固定车主的入场出场信息。 7.收费表:记录用户们的收费信息。
用户表的主要参数有管理员用户的ID、角色的ID、系统姓名、真实姓名、电话信息,如图4.9所示。
序号 1 2 3 user_id role_id user_name Varchar2 Varchar2 Varchar2 列名 数据类型 长度 50 50 50 小数位 0 0 0 是 标识 主键 是 否 否 否 是 允许空 外键 4 5 6 real_name user_pwd user_phone Varchar2 Varchar2 Varchar2 50 20 50
0 0 0 否 否 是
角色表的主要参数有管理员的ID、名字信息,如图4.10所示。
表4-9角色表 序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 role_iVarcha50 d r2 2 role_nVarcha50 ame r2
0 0 是 是 否 否 车位管理表的主要参数有车位的ID、编号、区域、状态、备注信息,如图4.11所示。
序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 seat_id 2 seat_num 3 seat_setion 4 seat_state 5 seat_tag Varchar2 Varchar2 Varchar2 int 50 50 50 11 0 0 0 0 0 是 是 否 否 否 否 是 Varcha50 r2 图4.11 车位管理参数图
Figure 4.11 parameters of parking space management
IC卡表的主要参数有IC卡的ID、车位ID、姓名、车牌号、地址、电话信息,如图4.12所示。
序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 card_id varchar2 2 seat_id Varchar2 3 user_naVarchame r2 4 user_geVarchander r2 5 user_adVarchadr r2 6 car_num Varchar2 50 50 50 1 50 50 0 是 是 0 0 0 0 0
否 否 否 否 否 否 是 图4.12 IC卡参数图
Figure 4.12 IC card parameter diagram
临时车辆记录表的主要参数是临时车主的编号ID、临时ID、车牌号、进场年月、进场时间、出场年月、出场时间、费用信息,如图4.13所示。
序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 temp_id Varcha50 r2 2 card_id Varcha50 r2 3 car_num Varcha50 r2 4 entry_dadate 0 te 5 entery_ttime 0 ime 6 out_date date 0 0 是 是 否 0 0 0 0 0 否 否 否 否 是 7 out_time time 8 temp_monfloat ey
0 0
0 4 是 是 图4.13 临时车辆参数图
Figure 4.13 temporary vehicle parameters diagram
固定车主表的主要参数是固定车主的编号、IC卡编号、进场年月、进场时间、出场年月、出场时间信息,如图4.14所示。
序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 fixed_id Varcha50 r2 2 card_id Varcha50 r2 3 entry_dadate 0 te 4 entery_ttime 0 ime 5 out_date date 0 6 out_time time 0
0 是 是 否 0 0 0 0 0 否 否 否 是 是 是 图4.14 固定车主参数图
Figure 4.14 fixed vehicle owner parameter diagram
收费表用主要参数是收费的临时编号、ID编号、车牌号、收费金额、时间信息,如图4.15所示。
序号 列名 数据类型 长度 小数位 标识 主键 允许空 外键 1 role_id Varcha25 0 是 是 否 r2 2 role_namVarcha250 是 e r2 5 4 car_num Varcha25 0 是 r2 5 car_moneVarcha25y r2 5 6 car_time Varcha25r2 5
0 0 是 是 图4.15 收费表参数图
Figure 4.15 Parameter diagram of the charge table
5系统实现
5.1 总体功能
登录系统从登录页面开始,登陆角色有管理员和超级管理员之分,超级管理员除了可以操作管理员的权限,还可以设置管理员权限,而管理员可以对车位信息、IC卡信息、固定车主信息、系统信息等功能进行管理。停车场管理系统的功能图如图5.1所示:
图5.1总体功能图
Figure 5.1 overall function diagram
5.2用户登录
登录模块界面如图5.1所示:
图5.2登录界面图 Figure 5.2 user login
功能描述:登陆界面需要管理员编号和密码进行登录,根据用户编号和角色编号获取管理员编号、密码和权限。首先我们要保证用户名和密码不能为空。在登录的同时与已有的数据库进行验证,系统在数据库中搜索用户输入的用户名是否存在,若不存在,则提示出错,并返回登录界面。系统只能单方面使用,不能一个账号多用或者两个账号同时登录这个系统,一定程度上提高系统的安全性。
5.3系统信息管理
添加角色信息如图5.3所示:
图5.3添加角色信息图
Figure 5.3 add a role infographic
管理角色信息如图5.4所示:
图5.4管理角色信息图
Figure 5.4 management role information diagram
添加用户界面信息如图5.5所示:
图5.5添加用户界面信息图
Figure 5.5 add the user interface infographic
管理用户信息界面如图5.6所示:
图5.6管理用户信息界面图
Figure 5.6 management user information interface diagram
功能描述:该模块是对系统信息的一个管理,添加角色输入编号和名称,后台数据库进行验证,若角色没有存在则添加数据成功,跳转到管理界面。管理角色信息可以对管理员进行编辑、删除、查询功能。添加用户信息输入用户编号、名称、昵称、姓名、密码电话点击确定进行后台数据库的验证,若成功添加则跳转到管理界面。管理用户信息可以查询到用户的编号,角色名称,真实姓名,电话联系方式等信息并可对其进行编辑、删除、查询等操作。
5.4车位信息管理
添加停车位信息如图5.7所示:
图5.7添加车位信息图
Figure 5.7 add the parking space information diagram
管理车位信息如图5.8所示:
图5.8管理车位信息图
Figure 5.8 add the parking space information diagram
功能描述:该模块实现对车位进行管理,包括添加车位编号,选择车位所属的区域,备注车位目前的使用状况等操作。一系列操作完成后返回到管理界面。管理界面可根据车位ID、车位编号、所属区域、车位备注进行查询,还可对车位信息进行编辑和删除。
该类中主要封装了分页和对车位信息的增、删、改、查等方法。首先获取车位信息列表,然后获取未分配的车位列表,根据查询条件获取分页后的信息列表,数据的更新、插入、删除,获取分页总数,根据查询条件获取分页总数。
5.5 IC卡管理
添加IC卡类型操作如图5.9所示:
图5.9添加IC卡类型图
Figure 5.9 add IC card type diagram
管理IC卡类型操作如图5.10所示:
图5.10管理IC卡类型图
Figure 5.10 management IC card type diagram
功能描述:该功能模块实现对IC卡信息的管理,点击添加IC卡输入如图5.9所示的信息,添加成功后,跳转到图5.10的界面。管理界面可根据IC卡编号、车位编号、用户名称、车牌号码进行查询。也可进行相应的编辑和删除操作。
5.6 固定车主管理
固定车主出入场设置界面如图5.11所示:
图5.11固定车主出入场设置图
Figure 5.11 fixed vehicle owner admission Settings
停车信息管理界面如图5.12所示:
图5.12停车信息管理图
Figure 5.12 parking information management diagram
功能描述:该模块是对固定车主的出入场设置以及停车信息进行管理。如图5.11所示,对车主进行入场设置,点击确定后就会在下面的表格中显示,点击停车信息管理按钮,就会出现如图5.12所示。设置出场,出场时间就会出现在停车信息表中。
5.7临时车主管理
临时车主入场信息界面如图5.13所示:
图5.13临时车主入场图
Figure 5.13 temporary owner admission chart
车主出场信息界面如图5.14所示:
图5.14车主出场信息图
Figure 5.14 vehicle owner exit information chart
结算页面如图5.15所示
图5.15结算页面图
Figure 5.15 diagram of settlement page
功能描述:该模块是对临时车主车辆的管理。点击入场管理,出现如图5.13所示的界面,输入信息,如果输入成功就会跳转到如图5.14的界面,出场日期,日期显示未出场,停车费用显示待结算。点击结算出现如图5.15界面。
5.8 收费管理
收费管理如图所示:
图5.16收费管理图
Figure 5.66 fee management chart
功能描述:临时用户是一小时3元收费,固定用户是按次数收费。
5.9打印管理
打印管理如图5.17所示:
图5.17打印管理图
Figure 5.17 print the management chart
功能描述:打印管理可以对用户收费情况进行打印,使决策更透彻。
5.10修改密码功能操作
修改密码操作页面如图5.18所示:
图5.18系统功能操作图
Figure 5.18 system function operation diagram
功能描述:该模块主要用于修改密码,修改密码完成后会自动跳转到用户登录界面,如图5.1所示。
6系统测试
本系统是基于J2EE标准下通过MVC模式设计实现的一个软件系统,在进行用户登录测试时,其中不输入用户名密码,输入错误用户名密码,其中任何一项出现,都会提示登录名和密码错误,如果输入正确就会跳转到主界面,即登录系统成功。在进行临时车主添加测试中,不输入临时IC卡号及车牌,都会提示临时IC卡号或者车牌号不能为空,出现IC卡输入重复的情况,则会出现主见重复数据添加失败,如果正确则会显示添加成功。在进行添加角色测试中,在不输入角色编号和不输入角色名称时,会出现请添加此字段,输入了重复的角色编号,会出现主键重复,数据添加失败。如果输入成功,会出现添加成功字样。本次系统的主要功能基本完成。
本次停车场管理系统能够满足用户的基本需求,方便快捷,既节省了时间,提高了效率,又节约了开发成本,给人们生活带来了极大的改善。
7总结
此次课题的设计对我来说有很大的收获,锻炼了我编写程序的能力,也懂的每一个项目的设计有难有易,但是只要你用下心来从中学到了东西,那他就是一个好的项目。
刚开始选题的时候,还对项目的选题无从下手,因为java的知识是从大三上半年开始的,那时学的还是一些基础知识,为此对于这个项目无从下手,只能一边学习,一边去图书馆上网查找资料,在学习的过程中,我首先做了一些java小程序,一步一步接触到了web动态页面设计,经过一个月的编程、修改、调试,终于将系统运行起来,期间,我的舍友给了我很大的帮助,因为他所设计的课题也是关于web项目的,他经常会给我一下程序的相关建议,在这期间我也发现了自身的一些问题,如对一些架构的理解不够透彻,这也是我日后需要去学习的地方。
本次项目的实现,已完成了项目中的所有功能,从中认识到实践的重要性,不懂的东西要多问老师,它对于我大学四年的生活意义重大,虽然在当今停车场市场的发展我的设计还略有欠缺,但我希望有更多的人投入到停车场系统的研究当中去,希望中国停车场市场的发展变的越来越好。
因篇幅问题不能全部显示,请点此查看更多更全内容