Java项目:102SSM汽车租赁系统

博主主页:Java旅途
简介:分享计算机知识、学习路线、系统源码及教程
文末获取源码

一、项目介绍

汽车租赁系统基于Spring+SpringMVC+Mybatis开发,系统使用shiro框架做权限安全控制,超级管理员登录系统后可根据自己的实际需求配角色,然后新建用户选择角色即可。

超级管理员功能如下:

  • 客户管理
  • 车辆管理
  • 汽车出租
  • 出租单管理
  • 汽车入库
  • 检查单管理
  • 统计分析
  • 系统管理
    • 菜单管理
    • 角色管理
    • 用户管理
  • 公告管理
  • 系统日志

二、技术框架

  • 后端:Spring,Springmvc,Mybatis
  • 前端:layui,echarts

三、安装教程

  1. 用idea打开项目
  2. 在idea中配置jdk环境
  3. 配置maven环境并下载依赖
  4. 配置tomcat8.0
  5. 新建数据库,导入数据库文件
  6. 在db.properties文件中将数据库账号密码改成自己本地的
  7. 系统的静态资源存储在D盘,如果你的电脑没有D盘,则需要改成其他盘,具体位置在file.properties,将文件里面的D:/upload 改成你本地的即可。
  8. 启动运行, 管理员账号密码 admin/123456

四、项目截图

image-20230710141750885

image-20230710141828487

image-20230710141847644

image-20230710141933437

image-20230710141948519

image-20230710142010136

image-20230710142027866

五、相关代码

BusController

package com.yeqifu.bus.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** 业务管理的路由控制器*/
@Controller
@RequestMapping("bus")
public class BusController {/*** 跳转到客户管理* @return*/@RequestMapping("toCustomerManager")public String toCustomerManager(){return "business/customer/customerManager";}/*** 跳转到车辆管理* @return*/@RequestMapping("toCarManager")public String toCarManager(){return "business/car/carManager";}/*** 跳转到汽车出租* @return*/@RequestMapping("toRentCarManager")public String toRentCarManager(){return "business/rent/rentCarManager";}/*** 跳转到出租单管理的页面* @return*/@RequestMapping("toRentManager")public String toRentManager(){return "business/rent/rentManager";}/*** 跳转到汽车入库管理的页面* @return*/@RequestMapping("toCheckCarManager")public String toCheckCarManager(){return "business/check/checkCarManager";}/*** 跳转到检查单管理的页面* @return*/@RequestMapping("toCheckManager")public String toCheckManager(){return "business/check/checkManager";}}

RentController

package com.yeqifu.bus.controller;import com.yeqifu.bus.domain.Car;
import com.yeqifu.bus.domain.Customer;
import com.yeqifu.bus.service.ICarService;
import com.yeqifu.bus.service.ICustomerService;
import com.yeqifu.bus.service.IRentService;
import com.yeqifu.bus.vo.RentVo;
import com.yeqifu.sys.constast.SysConstast;
import com.yeqifu.sys.domain.User;
import com.yeqifu.sys.utils.DataGridView;
import com.yeqifu.sys.utils.RandomUtils;
import com.yeqifu.sys.utils.ResultObj;
import com.yeqifu.sys.utils.WebUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;/*** 汽车出租管理的控制器*/
@RestController
@RequestMapping("rent")
public class RentController {@Autowiredprivate IRentService rentService;@Autowiredprivate ICarService carService;@Autowiredprivate ICustomerService customerService;/*** 检查身份证号是否存在* @param rentVo* @return*/@RequestMapping("checkCustomerExist")public ResultObj checkCustomerExist(RentVo rentVo){Customer customer = customerService.queryCustomerByIdentity(rentVo.getIdentity());if (null!=customer){return ResultObj.STATUS_TRUE;}else {return ResultObj.STATUS_FALSE;}}/*** 初始化添加出租单的表单的数据* @param rentVo* @return*/@RequestMapping("initRentFrom")public RentVo initRentFrom(RentVo rentVo){//生成出租单号rentVo.setRentid(RandomUtils.createRandomStringUseTime(SysConstast.CAR_ORDER_CZ));//设置起租时间rentVo.setBegindate(new Date());//设置操作员/*User user =(User) WebUtils.getHttpSession().getAttribute("user");rentVo.setOpername(user.getRealname());*/Customer customer = customerService.queryCustomerByIdentity(rentVo.getIdentity());rentVo.setOpername(customer.getCustname());return rentVo;}/*** 保存出租单信息* @param rentVo* @return*/@RequestMapping("saveRent")public ResultObj saveRent(RentVo rentVo){try {//设置创建时间rentVo.setCreatetime(new Date());//设置归还状态  默认为审核中rentVo.setRentflag(SysConstast.RENT_CHECK);//保存this.rentService.addRent(rentVo);return ResultObj.ADD_SUCCESS_RENT;}catch (Exception e){e.printStackTrace();return ResultObj.ADD_ERROR_RENT;}}/*** 删除出租单信息* @param rentVo* @return*/@RequestMapping("deleteRent")public ResultObj deleteRent(RentVo rentVo){try {//删除this.rentService.deleteRent(rentVo.getRentid());return ResultObj.DELETE_SUCCESS;}catch (Exception e){e.printStackTrace();return ResultObj.DELETE_ERROR;}}/*** 修改出租单信息* @param rentVo* @return*/@RequestMapping("updateRent")public ResultObj updateRent(RentVo rentVo){try {//修改this.rentService.updateRent(rentVo);return ResultObj.UPDATE_SUCCESS;}catch (Exception e){e.printStackTrace();return ResultObj.UPDATE_ERROR;}}/*** 审核出租单信息* @param rentVo* @return*/@RequestMapping("checkRent")public ResultObj checkRent(RentVo rentVo){try {//修改出租单的状态rentVo.setRentflag(SysConstast.RENT_BACK_FALSE);this.rentService.updateRent(rentVo);//修改汽车的状态Car car = carService.queryCarByCarNumber(rentVo.getCarnumber());car.setIsrenting(SysConstast.RENT_CAR_TRUE);this.carService.updateCarCheck(car);return ResultObj.CHECK_SUCCESS_RENT;}catch (Exception e){e.printStackTrace();return ResultObj.CHECK_ERROR_RENT;}}/******************出租单管理*******************//*** 查询*/@RequestMapping("loadAllRent")public DataGridView loadAllRent(RentVo rentVo){return this.rentService.queryAllRent(rentVo);}}

大家点赞、收藏、关注、评论啦 、👇🏻点开下方卡片👇🏻关注后回复 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/227989.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kasada p.js (x-kpsdk-cd、x-kpsdk-cd、integrity)

提供x-kpsdk-cd的API服务 详细请私信~ 可试用~ 一、简述 integrity是通过身份验证Kasada检测机器人流量后获得的一个检测结果(数据完整性) x-kpsdk-cd 是经过编码计算等等获得。当你得到正确的解决验证码值之后,解码会看到如下图 二、cook…

【Pytorch】学习记录分享8——PyTorch自然语言处理基础-词向量模型Word2Vec

【Pytorch】学习记录分享7——PyTorch自然语言处理基础-词向量模型Word2Vec 1. 词向量模型Word2Vec)1. 如何度量这个单词的?2.词向量是什么样子?3.词向量对应的热力图:4.词向量模型的输入与输出![在这里插入图片描述](https://img-blog.csdni…

Volume Control 2

为游戏添加音乐和音效总是需要一些编码来设置一个系统来控制、显示和保存应用程序的音量设置。 音量控制的设计是为了立即为您设置这些内容,让您有更多时间专注于最重要的事情——制作出色的游戏! 在版本2中,我们对系统进行了重新设计,使其更加模块化、灵活,甚至更易于使用…

RHCE9学习指南 第13章 硬盘管理

新的硬盘首先需要对硬盘进行分区和格式化,首先了解一下硬盘的结构,如图13-1所示。 图13-1 磁盘上的磁道和扇区 硬盘的磁盘上有一个个的圈,每两个圈组成一个磁道。从中间往外发射线,把每个磁道分成一个个的扇区,每个扇…

Qt基础之四十五:Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),这种奇葩的缩写方式,让我想起了NBA球星“字母哥”。 下面看下Qt实现的动态语言切换效果。 一.效果 二.源码 QHSettingDialog.h #ifndef QHSETTINGDIALOG_H #define QHSETTINGDIALOG_H#…

Grafana监控数据可视化

Grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源,比 Prometheus 自带的图表展示功能强大太多&am…

【MySQL】主从异步复制配置

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

删除数据后, redis 内存占用还是很高怎么办?

现象: reids 做了数据删除,数据量不大,使用 top 命令看,发现还是占用大量内存 原因: 1.redis 底层内存根据内存分配器分配,不会立刻释放 2.redis 释放的内存空间不是连续的,存在碎片 内存碎…

软件开发新手用哪个IDE比较好?软件开发最好的IDE都在这!

目录 IDES 的优点 最佳编程 IDE 列表 Java 开发的流行集成开发环境 JetBrains 的 IntelliJ IDEA NetBeans 适用于 C/ C、C# 编程语言的最佳 IDE Visual Studio 和 Visual Studio 代码 Eclipse PHP 开发的最佳 IDE PHPStorm Sublime Text Atom JavaScript 的顶级 I…

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

💕"只有首先看到事情的可能性,才会有发生的机会。"💕 作者:Mylvzi 文章主要内容:多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

Go语言中的HTTP重定向

大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP重定向,让我们开始吧! 大家都知道,网站开发中有时候需要将用户的请求从一个URL导向到另一个URL。比如说,你可能想将旧的URL结构…

宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库

来源:宏集科技 工业物联网 宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库 原文链接:https://mp.weixin.qq.com/s/UEPtpTehdbFrw3MUCnuR2A 欢迎关注虹科,为您提供最新资讯! 01 前言 在这个数字化时代,物…

iptables防火墙(二)

目录 1、SNAT策略及应用 1.1、SNAT 策略概述 1.2、SNAT 策略的应用 2、DNAT 策略及应用 2.1、DNAT 策略概述 2.2、DNAT 策略的应用 3、规则的导出、导入 3.1、规则的备份及还原 3.2、使用 iptables 服务 4、使用防火墙脚本 4.1、防火墙脚本的构成 &#xf…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(一)

最近公司对大家的开发的硬件环境进行了升级,电脑主机的配置、显示器(两台大屏显示器)变得的逼格高多了。既然电脑上的开发环境都需要重装,就打算把开发环境也升级到最新版本,要用就用最新版本。下面对升级后的开发环境…

ssm基于vue框架的点餐系统的设计与实现+vue论文

基于vue框架的点餐系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的点餐信息管理模式,采用人工登记的方式保存相关数据,这种以人力为主的…

Flink1.17实战教程(第六篇:容错机制)

系列文章目录 Flink1.17实战教程(第一篇:概念、部署、架构) Flink1.17实战教程(第二篇:DataStream API) Flink1.17实战教程(第三篇:时间和窗口) Flink1.17实战教程&…

听GPT 讲Rust源代码--src/tools(37)

File: rust/src/tools/clippy/clippy_lints/src/explicit_write.rs 在Rust源代码中,explicit_write.rs这个文件是Clippy的一个lint插件,其作用是检查代码中的write!、writeln!宏使用时的不当或繁琐的情况,并给出相关的警告或建议。 具体来说&…

阿里后端实习二面

阿里后端实习二面 记录面试题目,希望可以帮助到大家 类加载的流程? 类加载分为三个部分:加载、连接、初始化 加载 类的加载主要的职责为将.class文件的二进制字节流读入内存(JDK1.7及之前为JVM内存,JDK1.8及之后为本地内存)&…

Xshell连接ubuntu,从github克隆项目,用Xshell克隆项目

访问不了github:https://blog.csdn.net/liu834189447/article/details/135246914 短暂解决访问问题。 ping不通虚拟机/无法连接虚拟机:https://blog.csdn.net/liu834189447/article/details/135240276 ps: Xshell、ubuntu的粘贴快捷键为 Shift Insert …

单片机外设矩阵键盘之行列扫描识别原理与示例

单片机外设矩阵键盘之行列扫描识别原理与示例 1.概述 这篇文章介绍单片机通过行列扫描的方式识别矩阵键盘的按键,通过程序执行相应的操作。 2.行列扫描识别原理 2.1.独立按键识别原理 为什么需要矩阵按键 独立按键操作简单,当数量较多时候会占用单片机…