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

四 系统实现

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

相关推荐
代码之光_19803 分钟前
SpringBoot校园资料分享平台:设计与实现
java·spring boot·后端
向上的车轮6 分钟前
Django学习笔记二:数据库操作详解
数据库·django
编程老船长16 分钟前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
科技资讯早知道1 小时前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设
全栈师1 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 3171 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop
BergerLee2 小时前
对不经常变动的数据集合添加Redis缓存
数据库·redis·缓存
小比卡丘2 小时前
C语言进阶版第17课—自定义类型:联合和枚举
android·java·c语言
gorgor在码农2 小时前
Mysql 索引底层数据结构和算法
数据结构·数据库·mysql
xmh-sxh-13142 小时前
java 数据存储方式
java