java SSM汽车租赁管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点
    java SSM汽车租赁管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

ssm 汽车租赁管理系统1

代码下载

https://download.csdn.net/download/qq_41221322/88919221
二、功能介绍
(1)游客的主要功能需求:
浏览车辆信息:游客可以浏览全部的车辆信息也可以进行分类查询自己喜欢的车辆类型。
会员注册:用户在系统上进行注册并登录以获得跟高的权限。
匿名留言:游客可以对该租赁公司进行匿名留言;
(2)会员的主要功能需求:
个人信息管理:管理自己的信息,对自己的信息可以进行修改,添加,删除等方面。
浏览车辆信息:会员可以浏览全部的车辆信息也可以进行分类查询自己喜欢的车辆类型。
查看订单信息:会员可以查看自己当前的订单信息也可以查看历史的订单信息。
租赁情况管理:会员可以对租车,还车,续租,取消订单等方面进行管理。
留言信息管理:会员可以对自己的留言信息进行管理。
闲置车出租:可以将自己的闲置车辆信息发给管理员审核是否同意放在该系统出租。
(3)管理员的主要功能需求:
管理会员信息:对会员的信息进行管理,修改,添加,删除一些有问题的会员用户。
发布车辆信息:将车辆信息情况发布到系统中去让会员和游客进行浏览。
租赁车辆管理:对发布的车辆信息进行及时的更新,修改,删除等方面的管理。
租赁订单审核:审核订单中的身份证,驾驶证是否到期,证件信息是否一致,个人征信记录是否可以通过,有没有其他不良记录等决定是否同意租车并将结果反馈给该会员。
租赁订单管理:对订单进行管理,修改删除一些有问题的订单,或者是有取消订单的将按照相对应的时间收取相对费用。
留言信息管理:管理会员的留言,评价,建议等信息,可以对一些恶意的留言信息进行删除,从留言信息中提取有用的建议。
发布新闻信息:发布一些有关于车辆,行驶安全等的新闻信息。
闲置车辆信息审核:审核闲置车辆的年限,来源,安全性等方面信息是否通过,评估该车辆在本系统出租收取的费用,最后将审核结果反馈给需要出租闲置车的车主。若通过了将联系该车主是否同意出租,同意的话将该车辆信息发送到该系统中让其他游客与会员浏览租赁。

数据库设计

(1)管理员信息表如表5.1所示:

表5.1 管理员信息表

序号

字段名称

数据类型

长度

主键

描述

1

glyid

INTEGER

11

管理员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

(2)会员表如表5.2所示:

表5.2 会员信息表

序号

字段名称

数据类型

长度

主键

描述

1

hyid

INTEGER

11

会员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

lxdh

VARCHAR

40

联系电话

6

lxdz

VARCHAR

40

联系地址

(3)车辆类型信息表如表5.3所示:

表5.3 车辆类型信息表

序号

字段名称

数据类型

长度

主键

描述

1

cllxid

INTEGER

11

车辆类型编号

2

lx

VARCHAR

40

类型

(4)车龄信息表如表5.4所示:

表5.4 车辆信息表

序号

字段名称

数据类型

长度

主键

描述

1

clid

INTEGER

11

车辆编号

2

cmc

VARCHAR

40

车名称

3

lx

VARCHAR

40

类型

4

js

VARCHAR

40

介绍

5

tp

VARCHAR

40

图片

6

jg

VARCHAR

40

价格

7

yh

VARCHAR

40

用户

8

zt

VARCHAR

40

状态

9

sm

VARCHAR

40

说明

(5)留言表如表5.5所示:

表5.5 留言

序号

字段名称

数据类型

长度

主键

描述

1

lyid

INTEGER

11

留言编号

2

ly

VARCHAR

40

留言

3

yh

VARCHAR

40

用户

4

sj

VARCHAR

40

时间

(6)新闻表如表5.6所示:

表5.6新闻表

序号

字段名称

数据类型

长度

主键

描述

1

xwid

INTEGER

11

新闻编号

2

bt

VARCHAR

40

标题

3

nr

VARCHAR

40

内容

代码设计

@RequestMapping(value="/add")public String add(cheliang cheliang,HttpServletRequest request){Map<String,Object> map= new HashMap<String,Object>();//String name=(String)request.getParameter("name");map.put("clid", cheliang.getClid());//车辆编号map.put("cmc", cheliang.getCmc());//车名称map.put("lx", cheliang.getLx());//类型map.put("js", cheliang.getJs());//介绍map.put("tp", cheliang.getTp());//图片map.put("jg", cheliang.getJg());//价格map.put("yh", cheliang.getYh());//用户map.put("zt", cheliang.getZt());//状态map.put("sm", cheliang.getSm());//说明String clid=(String)cheliang.getClid();//车辆编号String cmc=(String)cheliang.getCmc();//车名称String lx=(String)cheliang.getLx();//类型String js=(String)cheliang.getJs();//介绍String tp=(String)cheliang.getTp();//图片String jg=(String)cheliang.getJg();//价格String yh=(String)cheliang.getYh();//用户String zt=(String)cheliang.getZt();//状态String sm=(String)cheliang.getSm();//说明String sql="";ResultSet rs=null;DBO db=new DBO();int num=0;try{sql="select count(1) as num from cheliang where cmc='"+cmc+"'";rs=db.query(sql);if(rs.next()){num=rs.getInt("num");}if(num>0){request.setAttribute("msg", "<script>alert('添加失败、车名称重复');</script>");}else{cheliangdao.save(map);request.setAttribute("msg", "<script>alert('添加成功');</script>");}}catch(Exception e){e.printStackTrace();}System.out.println("addok");return "cheliang/cheliangadd";}/**删除 * */@RequestMapping(value="/del")public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){//	Map<String,Object> map= new HashMap<String,Object>();String a=(String)request.getParameter("keyid");id=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");cheliangdao.del(id);return selectall(null,map,request);}/*** 修改cheliang信息*/@RequestMapping(value="/update")public String update(cheliang cheliang,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();map.put("clid", cheliang.getClid());//车辆编号map.put("cmc", cheliang.getCmc());//车名称map.put("lx", cheliang.getLx());//类型map.put("js", cheliang.getJs());//介绍map.put("tp", cheliang.getTp());//图片map.put("jg", cheliang.getJg());//价格map.put("yh", cheliang.getYh());//用户map.put("zt", cheliang.getZt());//状态map.put("sm", cheliang.getSm());//说明String clid=(String)cheliang.getClid();//车辆编号String cmc=(String)cheliang.getCmc();//车名称String lx=(String)cheliang.getLx();//类型String js=(String)cheliang.getJs();//介绍String tp=(String)cheliang.getTp();//图片String jg=(String)cheliang.getJg();//价格String yh=(String)cheliang.getYh();//用户String zt=(String)cheliang.getZt();//状态String sm=(String)cheliang.getSm();//说明request.setAttribute("msg", "<script>alert('操作成功');</script>");cheliangdao.update(map);return selectall(null,map1,request);}

持久层设计

public void save(Map<String, Object> map) {sqlSession.insert("com.cheliang.insertcheliang", map);}/*** 删除aa* @param id*/public void del(Integer id) {sqlSession.delete("com.cheliang.delcheliang", id);}/*** 修改cheliang信息* @param map*/public void update(Map<String, Object> map) {sqlSession.update("com.cheliang.updatecheliang", map);}/*** 查询cheliang信息* @param id* @return */public List<Map<String, Object>> select(Integer id) {return sqlSession.selectList("com.cheliang.selectcheliang", id) ; }/*** 查询cheliang信息* * @return */public List<Map<String, Object>> selectAll(Map<String, Object> map) {return sqlSession.selectList("com.cheliang.selectall", map) ; }

mybatis配置

<!-- 添加用户信息 -->
<insert id="insertcheliang"  parameterType="java.util.Map">insert  into  cheliang(cmc,lx,js,tp,jg,yh,zt,sm,clzt)  values(#{cmc},#{lx},#{js},#{tp},#{jg},#{yh},#{zt},#{sm},'空闲')
</insert><delete id="delcheliang" parameterType="int">delete  from  cheliang where clid=#{clid}
</delete><update id="updatecheliang" parameterType="java.util.Map">
update cheliang set cmc=#{cmc},lx=#{lx},js=#{js},tp=#{tp},jg=#{jg},yh=#{yh},zt=#{zt},sm=#{sm} where clid=#{clid}
</update><!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectcheliang"  parameterType="int" resultType="java.util.Map">select  * from cheliang where clid=#{clid}
</select><!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">select  * from cheliang where 1=1<if test=" null != cmc and cmc!=''" >and cmc like concat(concat('%',#{cmc}),'%')</if><if test=" null != lx and lx!=''" >and lx like concat(concat('%',#{lx}),'%')</if><if test=" null != js and js!=''" >and js like concat(concat('%',#{js}),'%')</if><if test=" null != tp and tp!=''" >and tp like concat(concat('%',#{tp}),'%')</if><if test=" null != jg and jg!=''" >and jg like concat(concat('%',#{jg}),'%')</if><if test=" null != yh and yh!=''" >and yh like concat(concat('%',#{yh}),'%')</if><if test=" null != zt and zt!=''" >and zt like concat(concat('%',#{zt}),'%')</if><if test=" null != sm and sm!=''" >and sm like concat(concat('%',#{sm}),'%')</if>
</select>


三、注意事项
    1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
     2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
    3、数据库文件名是jspssmqczl.sql,系统名称ssmqczl
    4、系统首页地址:http://127.0.0.1:8080/ssmqczl/qt/index.jsp

四 系统实现

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

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

相关文章

朴素贝叶斯基本原理sklearn实现

理论 先验概率&#xff1a;根据以往的分析经验得到的概率&#xff0c;先验概率不需要样本数据 后验概率&#xff1a;根据数据的特征进行分析 联合概率&#xff1a;几个事件同时发生的概率&#xff0c;P(瓜熟&#xff0c;瓜蒂脱落&#xff09; 定义 贝叶斯分类是一类分类算法的…

江大白 | 万字长文,算法工程师的深度经验总结!(建议阅读收藏!)

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;万字长文&#xff0c;算法工程师的深度经验总结&#xff01; 以下文章来源于知乎&#xff1a;机智的叉烧 链接&#xff1a;https://zhuanlan…

【Spring高级】第3讲 Bean的生命周期

目录 基本的生命周期后处理器总结 基本的生命周期 为了演示生命周期的过程&#xff0c;我们直接使用 SpringApplication.run()方法&#xff0c;他会直接诶返回一个容器对象。 import org.springframework.boot.SpringApplication; import org.springframework.context.Config…

JAVA实战开源项目:智能停车场管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系统管理员功能1. 停车位模块2. 车辆模块3. 停车记录模块4. IC卡模块5. IC卡挂失模块 三、界面展示3.1 登录注册3.2 车辆模块3.3 停车位模块3.4 停车数据模块3.5 IC卡档案模块3.6 IC卡挂…

opengl 学习(三)-----纹理

纹理就是贴图 分类前提demo效果解析 分类 前提 需要使用一个库来处理图片&#xff1a;#include <stb_image.h> https://github.com/nothings/stb 你下载好了之后&#xff0c;把目目录包含了就好 然后再引入 #define STB_IMAGE_IMPLEMENTATION #include "stb_i…

QEMU源码全解析 —— virtio(27)

接前一篇文章: 上一回解析了setup_vq函数的前3步,本回继续解析余下的步骤。为了便于理解和加深印象,再次贴出setup_vq函数的源码,在Linux内核源码/drivers/virtio/virtio_pci_modern.c中,代码如下: static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev…

git删除comimit提交的记录

文章目录 本地的删除远程同步修改上次提交更多详情阅读 本地的删除 例如我的提交历史如下 commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a Author: test <test36nu.com> Date: Fri Sep 22 20:55:38 2017 0800add d.txtcommit 0fb295fe0e0276f0c81df61c4fd853b7a00…

基于java的企业设备管理系统设计与实现

1、引言 设计结课作业,课程设计无处下手&#xff0c;网页要求的总数量太多&#xff1f;没有合适的模板&#xff1f;数据库&#xff0c;java&#xff0c;python&#xff0c;vue&#xff0c;html作业复杂工程量过大&#xff1f;毕设毫无头绪等等一系列问题。你想要解决的问题&am…

【c++】运算符重载【基本、左移、递增】

1. 基本运算符重载 这里以加法运算符重载为例&#xff0c;减法乘法除法等基本运算符重载原理是一样的。 比如我们想实现Person类中的两个实例化变量p1和p2中对应变量的相加操作&#xff0c;我们需要对加法运算符进行重载。 类的定义如下&#xff1a; class Person { public:i…

Maya人物建模

【MAYA人物建模】超详细讲解人物嘴巴、鼻子、眼睛、耳朵、头发、帽子等布线细节&#xff0c;零基础人物头部布线教程_哔哩哔哩_bilibili 原始图像凑合用&#xff0c;视屏中截图 图像导入过程技巧总结 前视图/右视图模式下导入图形 创建图层 锁定后可以避免图片位置的移动 前视…

Python学习日记之学习turtle库(上 篇)

一、初步认识turtle库 turtle 库是 Python 语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横 轴为 x、纵轴为 y 的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的控制&#xff0c;在这个平面 坐标系中移动&#xff0…

基于华为atlas的unet分割模型探索

Unet模型使用官方基于kaggle Carvana Image Masking Challenge数据集训练的模型。 模型输入为572*572*3&#xff0c;输出为572*572*2。分割目标分别为&#xff0c;0&#xff1a;背景&#xff0c;1&#xff1a;汽车。 Pytorch的pth模型转化onnx模型&#xff1a; import torchf…

探索Web中的颜色选择:不同取色方法的实现

在Web开发中&#xff0c;提供用户选择颜色的功能是很常见的需求。无论是为了个性化UI主题&#xff0c;还是为了图像编辑工具&#xff0c;一个直观且易用的取色器都是必不可少的。本文将介绍几种在Web应用中实现取色功能的方法&#xff0c;从简单的HTML输入到利用现代API的高级技…

计算机设计大赛 深度学习的动物识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

蓝桥杯2023年-平方差(数学)

题目描述 给定 L, R&#xff0c;问 L ≤ x ≤ R 中有多少个数 x 满足存在整数 y,z 使得 x y2 − z2。 思路 首先想到&#xff1a;x-y(xy)(x-y)&#xff0c;首先如果是奇数2*n1&#xff0c;肯定可以分成(n1n)*(n1-n)的形式&#xff0c;所以奇数是肯定可行的&#xff0c;然后…

面试中如何介绍zookeeper的ZAB协议

解释 ZAB 协议的基本概念&#xff1a;简单介绍 ZAB 协议的全称&#xff08;Zookeeper Atomic Broadcast&#xff09;以及它在 Zookeeper 中的作用&#xff0c;即确保分布式系统中的数据一致性和原子性。强调 ZAB 协议的核心目标&#xff1a;说明 ZAB 协议的主要目标是实现分布式…

Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的作用

1、PATH PATH是存储可执行文件搜索路径的系统环境变量&#xff0c;它包含了一组由冒号 : 分隔的目录列表。当运行一个命令时&#xff0c;操作系统会在这些目录中查找相应的可执行文件&#xff0c;并在找到后执行它。 例如&#xff0c;在命令行中执行ls命令时&#xff0c;就会依…

掌握Java建造者模式:逐步构建复杂对象的艺术与实践

建造者模式的主要目的是将一个复杂对象的构建过程封装起来&#xff0c;使得客户端代码不需要知道对象创建的细节。这种模式特别适用于那些具有多个组成部分、创建过程复杂、对象属性多且大多数属性可选的场合。 在Java中&#xff0c;建造者模式通常涉及以下几个角色&#xff1…

Android Studio Iguana | 2023.2.1版本

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle&#xff0c;并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 如果特定版本的 Android Studio 不支持…

如何将MathType嵌入到word中 word打开MathType显示错误

当我们编辑好mathtype公式以后&#xff0c;有时候需要将这个公式导入到word中&#xff0c;但是有不少用户们不清楚mathtype如何嵌入到word中。今天小编就给大家说明一下mathtype公式导入word的两种不同方法&#xff0c;有需要的用户们赶紧来看一下吧。 一、mathtype如何嵌入到…