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

news/2024/11/29 0:32:02/

一、源码特点
    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.ppmy.cn/news/1379698.html

相关文章

Linux(CentOS7.5):通过docker安装mysql8.0

一、预创建存储券映射 mkdir -p /opt/docker_mysql/conf/conf.d; mkdir -p /opt/docker_mysql/data; mkdir -p /opt/docker_mysql/logs; mkdir -p /opt/docker_mysql/mysql-files;chmod -R 755 /opt/docker_mysql; 二、编辑配置文件 vim /opt/docker_mysql/conf/conf.d/my.cnf …

ETL的数据挖掘方式

ETL的基本概念 数据抽取&#xff08;Extraction&#xff09;&#xff1a;从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作&#xff0c;从API接口拿取数据也是。 数据转换&#xff08;Transformation&#xff09;&#xff1a;清洗、整合和转…

Python中如何操作数据库?

Python中如何操作数据库&#xff1f; ​​​​​ 在Python中操作数据库通常涉及到使用数据库驱动程序或ORM&#xff08;对象关系映射&#xff09;库。下面是一些常见的步骤和工具&#xff0c;用于在Python中操作数据库&#xff1a; 1. 选择数据库和驱动程序 首先&#xff0c…

[BT]小迪安全2023学习笔记(第20天:Web攻防-PHP特性)

第20天 和 &#xff08;等值比较&#xff09; 当使用 操作符时&#xff0c;PHP将进行宽松比较&#xff0c;也就是说&#xff0c;只比较两个值的等价性&#xff0c;而不考虑它们的类型。 如果两个值类型不同&#xff0c;PHP会尝试将它们转换成相同的类型&#xff0c;然后再进…

PaddleSeg分割框架解读[01] readme解读

简介 PaddleSeg是基于飞桨PaddlePaddle的端到端图像分割套件,内置45+模型算法及140+预训练模型,支持配置化驱动和API调用开发方式,打通数据标注、模型开发、训练、压缩、部署的全流程,提供语义分割、交互式分割、Matting、全景分割四大分割能力,助力算法在医疗、工业、遥…

vue接入百度地图获取经纬度

通过城市名称和城市中心经纬度来获取当前所在地图&#xff0c;当前经纬度中心获取可以通过后端获取 静态文件包&#xff0c;替换baidu.html中的ak值&#xff0c;ak值通过百度地图官方网站申请 申请&#xff1a;百度地图API申请步骤 - 知乎 代码示例文件&#xff1a; 链接&a…

C# MG.CamCtrl 工业相机库(开源) 海康 大恒

C# MG.CamCtrl 相机库&#xff08;开源&#xff09; 海康 大恒 介绍工厂模式创建实例选取对应SN号的相机&#xff0c;初始化启动相机取图注销相机参数设置/获取接口 介绍 c# 相机库&#xff0c;含海康、大恒品牌2D相机的常用功能。 底层采用回调信号量模式封装 &#xff0c;最…

SpringCloudAlibaba 网关gateway整合sentinel日志默认路径修改

SpringCloudAlibaba 网关gateway整合sentinel 实现网关限流熔断 问题提出 今天运维突然告诉我 在服务器上内存满了 原因是nacos日志高达3G,然后将日志文件发给我看了一下之后才发现是gateway整合sentinel使用了默认日志地址导致日志生成地址直接存在与根路径下而且一下存在多…