摘要

随着信息化时代的到来,管理系统都趋向于智能化、系统化,智能停车场管理系统也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而智能停车场管理系统能很好地解决这一问题,轻松应对停车场平时的工作,既能提高人力物力财力,又能加快工作的效率,取代人工管理是必然趋势。
本智能停车场管理系统以ssm作为框架,b/s模式以及MySql作为后台运行的数据库,同时使用Tomcat用为系统的服务器。本系统主要包括首页、个人中心、用户管理、车位信息管理、车位预定管理、系统管理等功能,通过这些功能的实现能够基本满足日常智能停车场管理的操作。
本文着重阐述了智能停车场管理系统的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,接着说明功能模块的详细实现,最后进行了总结。

开发技术

Java语言

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。

微信小程序框架

微信小程序的开发框架是微信所独有的一套框架,分为View视图层和App Service逻辑层两部分。框架提供了一种类似于Web中html语言的wxml语言,作为视图层的标签语言,用于构造页面的布局。另外提供了一种类似Web中css语言的WXSS语言,作为视图层的标签样式语言,用于表述页面的显示。而在逻辑层的框架,则同样使用了JS语言。微信小程序为了使开发者专注在代码的逻辑层面和数据处理上,还专门提供了两种解决方案,一种是事件,一种是数据的传输。这两种方案都位于小程序框架的视图层和逻辑层之间。用户在视图层进行交互之后,传递到逻辑层对数据进行处理,并返回数据到视图层向用户反馈。对于微信小程序视图层的开发设计,小程序官方提供了一系列的组件,这些基本组件可以极大的帮助开发者完成视图层的开发。同时,对于逻辑层的开发,小程序官方提供了一系列API来方便开发者请求一些额外功能。

SSM框架

开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。

环境配置

MySQL配置

(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。

MyEclipse配置

安装完MyEclipse后选择myeclipse“Window->Preferences”
(1)配置myeclipse的jre为sun的jdk,不要用myeclipse的默认jdk:
选择“java->Installed JREs”,勾中里面的“jdk1.7”.
(2)配置编译的级别为6.0:
选择“Compiler->Compiler compliance level”的值为“6.0”。
(3)配置myeclipse的默认的文件编码格式为“UTF-8”:
选择“General->Workspace”,选中“Text file encod”下面的“Other”,设置里面的值为“UTF-8”。
(4)去掉myeclipse的JSP的验证:
选择“MyEclipse->Validation”,将“Build”列的所有勾都给去掉,这样在编译时因为避免了jsp的验证,所以编译的速度会快很多.

系统设计

需求分析

利用ssm、Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个智能停车场管理系统,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:
(1)系统合理显示小程序前台用户界面和后台管理员界面。
(2)用户和管理员所有的信息都保存与数据库中。
(3)对智能停车场信息能够进行查询、修改、删除、添加等操作。

总体设计

根据智能停车场管理系统的功能需求,进行系统设计。
前台功能:用户进入小程序可以实现首页、地图、我的;在我的页面可以对个人中心和车位预定等功能进行操作;
后台主要是管理员,管理员功能包括首页、个人中心、用户管理、车位信息管理、车位预定管理、系统管理等;
系统对这些功能进行整合,产生的功能结构图如下:

数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。
数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。
车位信息实体属性图如下所示:

用户信息实体属性图如下所示:

功能截图

小程序端

登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作

用户注册,在用户注册页面通过填写用户名、密码、确认密码、姓名、性别、手机、车牌号等信息进行注册操作

用户登陆小程序端,可以实现首页、地图、我的等功能进行详细操作

车位信息,在车位信息页面可以查看停车场名称、停车场地址、图片、车位编号、车位状态、小时费用、车位介绍等信息,用户可根据需要进行预定操作

地图,在地图页面可以查看地图路线进行导航

用户,在我的页面可以对个人中心,车位预定等详细信息进行操作

用户信息,在用户信息页面通过填写账号、密码、姓名、性别、手机、车牌号、头像等内容进行保存或退出登录操作

后台管理员功能模块

管理员通过输入用户名、密码,选择角色并点击登录进行系统登录操作

管理员登陆系统后,可以对首页、个人中心、用户管理、车位信息管理、车位预定管理、系统管理等功能进行相应操作

用户管理,在用户管理页面可以对索引、账号、姓名、性别、手机、车牌号、头像等内容进行详情、修改或删除等操作

车位信息管理,在车位信息管理页面可以对索引、停车场名称、停车场地址、车位编号、车位状态、小时费用、车位图片等内容进行详情,修改或删除等操作

车位预定管理,在车位预定管理页面可以对索引、停车场名称、停车场地址、车位编号、小时费用、预定时长、合计、停车时间、备注、车位图片、账号、姓名、手机、车牌号、是否支付、审核回复、审核状态、审核等内容进行详情或删除操作

系统管理,在公告信息页面可以对索引、标题、图片等内容进行详情,修改或删除等操作,还可以对轮播图管理进行详细操作

相关代码

数据库配置

# Tomcat
server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootr1tjfspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8username: rootpassword: 123456#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:static/,file:static/#mybatis
mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 1#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: 'null' 

控制层(controller)

package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){//      ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){//      ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

业务层(Service)


package com.service;import java.util.List;
import java.util.Map;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.UserEntity;
import com.utils.PageUtils;/*** 系统用户*/
public interface UserService extends IService<UserEntity> {PageUtils queryPage(Map<String, Object> params);List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);}

数据访问层(Dao)

package com.dao;import java.util.List;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;/*** 用户*/
public interface UserDao extends BaseMapper<UserEntity> {List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);}

计算机毕业设计=基于微信小程序的停车场管理系统相关推荐

  1. java计算机毕业设计基于微信小程序的校园外卖订餐系统APP

    项目介绍 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模块和校园订餐模块,对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革,对于传统的校园订餐管理,所包括的信 ...

  2. java计算机毕业设计基于微信小程序的药店药品销售管理系统APP

    项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...

  3. python迷你停车场管理系统_基于微信小程序的停车场管理系统

    本科学生毕业设计(论文)选题审批表 学院:计算机工程学院 专业:信息管理与信息系统 课题名称 基于微信小程序的停车场管理系统的设计与实现 课题来源 √社会实践 科研课题 自选课题 课题类别 □设计 □ ...

  4. 计算机毕业设计-基于微信小程序高校学生课堂扫码考勤签到系统-校园考勤打卡签到小程序

    注意:该项目只展示部分功能,如需了解,评论区咨询即可. 本文目录 1.开发环境 2.系统的设计背景 3 各角色功能模块 3.1 用户 3.2 管理员 4 系统页面展示 4.1 学生端功能模块展示 4. ...

  5. 计算机毕业设计-基于微信小程序的大学生心理预约咨询系统-心理测试小程序

    注意:该项目只展示部分功能,如需了解,评论区咨询即可. 本文目录 1.开发环境 2.系统的设计背景 3 各角色功能模块 3.1 学生用户 3.2 心理老师 3.3 管理员 4 系统页面展示 4.1 用 ...

  6. 【附源码】Java计算机毕业设计基于微信小程序停车系统(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. php计算机毕业设计 基于微信小程序的房屋出租租赁 小程序 uniapp

    随着时代的发展,人们对房屋租赁的需求也越来越显得比较重要,在当下很多城市中房价都是比较高的,这就导致很多外来人员需要进行房租的租赁,当前房屋租赁一般都是通过中介的方式来找房和挂牌,这就导致房主和租房的 ...

  8. node.js毕业设计基于微信小程序的健康管理系统(源码+程序+LW+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  9. 计算机毕业设计基于微信小程序的驾校报名系统

    精彩专栏推荐订阅:在 下方专栏

最新文章

  1. 12. Leetcode 350. 两个数组的交集 II (数组-分离双指针)
  2. Java对象转换为Json对象
  3. android ndk jni so,Android Studio Ndk So 文件
  4. 十四、Java练习:一个猜数游戏
  5. 20应用统计考研复试要点(part34)--简答题
  6. 真正拉开人与人之间的差距是什么?
  7. 如何在asterisk中限制呼叫路数?
  8. pytorch一天速成第一部分——基础入门Tensor和cuda
  9. 让我们一起Go(二)
  10. Windows下Python的pd.read_excel()报错
  11. Mybatis简单数据库查询
  12. android 8.1闪退,宁波市民卡app在Android 8.1闪退_宁波民生e点通
  13. 6.相对与绝对目录 cd mkdir rmdir rm
  14. 通过自研数据库画像工具支持“去O”数据库评估
  15. oracle应用技术支持,oracle技术支持工程师岗位职责
  16. 新技术计算机的案例,计算机新技术
  17. 详细分析本机号码一键登录原理!建议收藏
  18. 实验五 类和对象-3 zxt
  19. 简单飞机模型静态/模态分析
  20. Hadoop集群性能优化一

热门文章

  1. linux VCS+verdi运行UVM实战(第二章)中的例子
  2. 【开源电机驱动】H 桥驱动-软件篇
  3. flush privileges作用
  4. android studio 升级为小海豚版本 打开旧项目 xml 无法预览
  5. 企业级前端项目组框架vue-fpg介绍
  6. html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果...
  7. Windows Vista正式版何时提供下载
  8. 后台管理系统[01第三方库集成]
  9. C#pingpong输出
  10. 【C语言典例】——day3:设计魔方阵(数组)