一、源码特点
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
四 系统实现
源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓