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

四 系统实现

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

相关推荐
小黄编程快乐屋7 分钟前
各个排序算法基础速通万字介绍
java·算法·排序算法
材料苦逼不会梦到计算机白富美2 小时前
贪心算法-区间问题 C++
java·c++·贪心算法
java_heartLake5 小时前
PostgreSQL数据库参数调优实践
数据库·postgresql·调优
小小李程序员6 小时前
LRU缓存
java·spring·缓存
cnsxjean6 小时前
SpringBoot集成Minio实现上传凭证、分片上传、秒传和断点续传
java·前端·spring boot·分布式·后端·中间件·架构
hadage2336 小时前
--- stream 数据流 java ---
java·开发语言
xnuscd6 小时前
Milvus概念
数据库·学习·mysql
《源码好优多》7 小时前
基于Java Springboot汽配销售管理系统
java·开发语言·spring boot
代码欢乐豆7 小时前
软件工程第13章小测
服务器·前端·数据库·软件工程
小林想被监督学习7 小时前
Java后端如何进行文件上传和下载 —— 本地版
java·开发语言