基于javaweb+mysql的ssm汽车出租管理系统(java+ssm+jsp+jquery+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM汽车出租管理系统(java+ssm+jsp+jquery+mysql)
项目介绍
本项目包含管理员、用户、技术人员、工作人员等四种角色;
管理员角色包含以下功能: 管理员登录,员工管理,车辆管理,公告管理,图片管理,统计管理等功能。
用户角色包含以下功能: 用户首页,用户登录,查看车辆,查看我的预定,预定租车,查看预定详情等功能。
技术人员角色包含以下功能: 技术人员登录,车辆状态管理等功能。
工作人员角色包含以下功能: 工作人员登录,车辆租赁管理,预定管理,留言管理,会员管理等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jquery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
cellSpacing=0 cellPadding=0 width=1002 align=center bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD
style="PADDING-RIGHT: 8px; PADDING-LEFT: 20px; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"
vAlign=top>
</TD></TR></TBODY></TABLE>
<TABLE height=4 cellSpacing=0 cellPadding=0 width=1002 align=center
bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD width=5><IMG height=3 src="qtimages/zjgdj_64.gif" width=5></TD>
<TD background=qtimages/zjgdj_65.gif><IMG height=3
src="qtimages/zjgdj_65.gif" width=1></TD>
<TD width=4><IMG height=3 src="qtimages/zjgdj_67.gif"
width=4></TD></TR></TBODY></TABLE>
<TABLE height=8 cellSpacing=0 cellPadding=0 width=1002 align=center
bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE>
<%@ include file="qtdown.jsp"%>
</body>
</html>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.dao.UserDao">
<resultMap id="userResultMap" type="com.entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="createtime" column="createtime"/>
<result property="role" column="role"/>
<result property="name" column="name"/>
<result property="tej" column="tej"/>
<result property="sfz" column="sfz"/>
</resultMap>
<resultMap id="vipResultMap" type="com.entity.Vip">
request.setAttribute("chepai", chepai);
}
HttpSession session = request.getSession();
User user = (User) session.getAttribute("qiantai");
//分页功能默认第一页
int currentpage = 1;
//获取当前页
if (pagenum != null) {
currentpage = Integer.parseInt(pagenum);
}
//查询列表
List<Jilu> list = jiluService.selectBeanList((currentpage - 1)
* pageSize, pageSize,chepai,null,null,null,0,0,user.getId());
//列表返回页面
request.setAttribute("list", list);
//获取总数量
int total = jiluService.selectBeanCount(chepai,null,null,null,0,0,user.getId());
//分页信息返回页面
request.setAttribute("pagerinfo", Pager.getPagerNormal(total, pageSize,
currentpage, "jilulist.do", "共有" + total + "条记录"));
request.setAttribute("title", "我的租车");
return "jilulist.jsp";
}
//查看租车记录详情页面
@RequestMapping("/jiluview.do")
public String jiluview(HttpServletRequest request,int id){
Jilu bean = jiluService.selectBeanById(id);
Car car = carService.selectBeanById(bean.getCarid());
bean.setCar(car);
request.setAttribute("bean", bean);
this.getPrintWriter(response).print("<script language=javascript>alert('驾驶证复印件不能为空');" +
"window.location.href='jiluadd.do';</script>");
return;
}
int carid = bean.getCarid();
Car car = carService.selectBeanById(carid);
bean.setChepai(car.getChepai());
bean.setCarid(car.getId());
String sfz = bean.getSfz();
User kehu = userService.sfzyz(sfz);
if(kehu==null){
kehu = new User();
kehu.setCreatetime(Util.getTime());
kehu.setName(bean.getXingming());
kehu.setPassword("111111");
kehu.setRole(4);
kehu.setSfz(sfz);
kehu.setTej(bean.getDianhua());
kehu.setUsername(sfz);
userService.insertBean(kehu);
}
bean.setKehuid(kehu.getId());
HttpSession session = request.getSession();
User user = (User)session.getAttribute("manage");
bean.setWorkid(user.getId());
String sfz2 = Util.uploadFile(request, prodFile1);
String jsz = Util.uploadFile(request, prodFile2);
bean.setSfz2(sfz2);
bean.setJsz(jsz);
bean.setShijian1(Util.getTime());
bean.setZhuangtai("出租中");
return "gonggao/gonggaolist.jsp";
}
//跳转到添加网站公告页面
@RequestMapping("/gonggaoadd.do")
public String gonggaoadd(HttpServletRequest request){
request.setAttribute("url", "gonggaoadd2.do");
request.setAttribute("title", "添加网站公告");
return "gonggao/gonggaoadd.jsp";
}
//添加网站公告操作
@RequestMapping("/gonggaoadd2.do")
public void gonggaoadd2(HttpServletResponse response,Gonggao bean){
bean.setCtime(Util.getTime());
gonggaoService.insertBean(bean);
}
//跳转到修改网站公告页面
@RequestMapping("/gonggaoupdate.do")
public String gonggaoupdate(HttpServletRequest request,int id){
Gonggao bean = gonggaoService.selectBeanById(id);
request.setAttribute("bean", bean);
request.setAttribute("url", "gonggaoupdate2.do?id="+id);
request.setAttribute("title", "修改网站公告");
return "gonggao/gonggaoupdate.jsp";
}
private String pinpai;//品牌
private String xinghao;//型号
private String pic;//车辆图片
private String price;//车价
private String xsz;//行驶证号
private String yanse;//颜色
private int zujin;//租金
private String status;//车辆状态 待租赁/租赁中/维修中/预定中
private String ctime;//添加时间
private int weihu;//总维护费
private Double tzujin;//总租金
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getChepai() {
return chepai;
}
public void setChepai(String chepai) {
this.chepai = chepai;
}
public String getChejia() {
return chejia;
}
public void setChejia(String chejia) {
this.chejia = chejia;
<mapper namespace="com.dao.UserDao">
<resultMap id="userResultMap" type="com.entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="createtime" column="createtime"/>
<result property="role" column="role"/>
<result property="name" column="name"/>
<result property="tej" column="tej"/>
<result property="sfz" column="sfz"/>
</resultMap>
<resultMap id="vipResultMap" type="com.entity.Vip">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="points" column="points"/>
<result property="level" column="level"/>
<result property="enddate" column="enddate"/>
<result property="consumed" column="consumed"/>
</resultMap>
<!-- 插入到数据库 -->
<insert id="insertBean"
parameterType="com.entity.User">
insert into t_user (
username,
password,
createtime,
role,
name,
sfz,
tej
) values (
#{username},
#{password},
#{createtime},
#{role},
#{name},
#{sfz},
request.setAttribute("pagerinfo", Pager.getPagerNormal(total, pageSize,
currentpage, "carlist3.do", "共有" + total + "条记录"));
//查询按钮
request.setAttribute("url", "carlist3.do");
//添加,更新,删除等按钮
request.setAttribute("url2", "car");
request.setAttribute("title", "车辆租赁管理");
return "car/carlist3.jsp";
}
//跳转到租车页面
@RequestMapping("/jiluadd.do")
public String jiluadd(HttpServletRequest request,int carid){
Car car = carService.selectBeanById(carid);
request.setAttribute("car", car);
request.setAttribute("url", "jiluadd2.do?carid="+carid);
request.setAttribute("title", "租车");
return "jilu/jiluadd.jsp";
}
//租车操作
@RequestMapping("/jiluadd2.do")
public void jiluadd2(HttpServletResponse response,HttpServletRequest request,Jilu bean,MultipartFile prodFile1,MultipartFile prodFile2){
if(prodFile1==null || prodFile1.getSize()<=0 ){
this.getPrintWriter(response).print("<script language=javascript>alert('身份证复印件不能为空');" +
"window.location.href='jiluadd.do';</script>");
return;
}
@RequestMapping("/useradd2.do")
public void useradd2(HttpServletResponse response,User bean){
User user = userService.useryz(bean.getUsername());
if(user!=null){
return;
}
bean.setPassword("111111");
bean.setCreatetime(Util.getTime());
userService.insertBean(bean);
}
//跳转到修改人员页面
@RequestMapping("/userupdate.do")
public String userupdate(HttpServletRequest request,int id){
User bean = userService.selectBeanById(id);
request.setAttribute("bean", bean);
request.setAttribute("url", "userupdate2.do?id="+id);
request.setAttribute("title", "修改人员");
return "user/userupdate.jsp";
}
//修改人员操作
@RequestMapping("/userupdate2.do")
public void userupdate2(HttpServletResponse response,User bean){
userService.updateBean(bean);
}
//删除操作
@RequestMapping("/userdelete.do")
public void userdelete(HttpServletResponse response,int id){
userService.deleteBean(id);
<TR height=20>
<TD align=middle width=30><IMG height=9
src="images/menu_icon.gif" width=9></TD>
<TD><A class=menuChild href="carlist.do" target=main>车辆管理</A>
</TD>
</TR>
<TR height=20>
<TD align=middle width=30><IMG height=9
src="images/menu_icon.gif" width=9></TD>
<TD><A class=menuChild href="carlist2.do" target=main>车辆维修管理</A>
</TD>
</TR>
<TR height=4>
<TD colSpan=2></TD>
</TR>
</TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
<TR height=22>
<TD style="PADDING-LEFT: 30px" background=images/menu_bt.jpg>
<A class=menuParent onclick=expand(3)
href="javascript:void(0);">网站公告</A>
</TD>
</TR>
<TR height=4>
<TD></TD>
</TR>
</TABLE>
<TABLE id=child3 style="DISPLAY: none" cellSpacing=0 cellPadding=0
width=150 border=0>
<TR height=20>
<TD align=middle width=30><IMG height=9
src="images/menu_icon.gif" width=9></TD>
<TD><A class=menuChild href="gonggaolist.do" target=main>网站公告管理</A>
</TD>
</TR>
<TR height=4>
@Controller
@RequestMapping("/manage")
public class ManageController {
@Resource
private UserService userService;
@Resource
private CarService carService;
@Resource
private GonggaoService gonggaoService;
@Resource
private PicService picService;
@Resource
private JiluService jiluService;
@Resource
private YudingService yudingService;
@Resource
private LiuyanService liuyanService;
@Resource
private RiService riService;
@Resource
private YueService yueService;
@Resource
private VipService vipService;
@Value("#{jdbc.pageSize}")
private int pageSize;
// 获取输出对象
public PrintWriter getPrintWriter(HttpServletResponse response) {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
} catch (IOException e) {
}
//根据ID查询对象
public Liuyan selectBeanById(int id){
return liuyanDao.selectBeanById(id);
}
public List<Liuyan> selectBeanList(int start,int limit,String ltitle,String zhuangtai,int kehuid,int workid){
return liuyanDao.selectBeanList(start,limit,ltitle,zhuangtai,kehuid,workid);
}
public int selectBeanCount(String ltitle,String zhuangtai,int kehuid,int workid){
return liuyanDao.selectBeanCount(ltitle,zhuangtai,kehuid,workid);
}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getEnddate() {
return enddate;
}
public void setEnddate(String enddate) {
this.enddate = enddate;
}
public Double getConsumed() {
return consumed;
}
public void setConsumed(Double consumed) {
this.consumed = consumed;
}
public int getKehuid() {
return kehuid;
}
public void setKehuid(int kehuid) {
this.kehuid = kehuid;
}
public double getDiscount() {
return discount;
}
public void setDiscount(double discount) {
this.discount = discount;
}
}
//待处理预定列表
@RequestMapping("/yudinglist.do")
public String yudinglist(HttpServletRequest request,String pagenum,String chepai,String sfz){
//查询条件返回页面
if (chepai != null && !"".equals(chepai)) {
request.setAttribute("chepai", chepai);
}
if (sfz != null && !"".equals(sfz)) {
request.setAttribute("sfz", sfz);
}
//分页功能默认第一页
int currentpage = 1;
//获取当前页
if (pagenum != null) {
currentpage = Integer.parseInt(pagenum);
}
//查询列表
List<Yuding> list = yudingService.selectBeanList((currentpage - 1)
* pageSize, pageSize, chepai,sfz,0,0,"处理中");
//列表返回页面
request.setAttribute("list", list);
//获取总数量
int total = yudingService.selectBeanCount(chepai,sfz,0,0,"处理中");
//分页信息返回页面
request.setAttribute("pagerinfo", Pager.getPagerNormal(total, pageSize,
currentpage, "yudinglist.do", "共有" + total + "条记录"));
//查询按钮
request.setAttribute("url", "yudinglist.do");
//添加,更新,删除等按钮
request.setAttribute("url2", "yuding");
request.setAttribute("title", "待处理预定");
return "yuding/yudinglist.jsp";
userService.insertBean(user);
}
//跳转到用户登录页面
@RequestMapping("/login.do")
public String login(HttpServletRequest request){
request.setAttribute("title", "用户登录");
return "login.jsp";
}
//用户登录操作
@RequestMapping("/login2.do")
public void login2(HttpServletRequest request,HttpServletResponse response,String username,String password){
PrintWriter writer = this.getPrintWriter(response);
User bean = userService.userlogin(username, password, 4);
if(bean==null){
}else{
HttpSession session = request.getSession();
session.setAttribute("qiantai", bean);
session.setAttribute("username", bean.getUsername());
Vip vip=vipService.selectBeanByUsername(username);
if(vip!=null) {
session.setAttribute("vip", vip);
}else {
Vip vip2=new Vip();
vip2.setUsername(username);
vip2.setLevel(0);
vip2.setPoints(0);
session.setAttribute("vip", vip2);
}
}
request.setAttribute("title", "添加车辆");
return "car/caradd.jsp";
}
//添加车辆操作
@RequestMapping("/caradd2.do")
public void caradd2(HttpServletResponse response,HttpServletRequest request,Car bean,MultipartFile prodFile){
if(prodFile==null || prodFile.getSize()<=0 ){
this.getPrintWriter(response).print("<script language=javascript>alert('车辆图片不能为空');" +
"window.location.href='caradd.do';</script>");
return;
}
String pic = Util.uploadFile(request, prodFile);
bean.setPic(pic);
bean.setStatus("待租赁");
bean.setCtime(Util.getTime());
carService.insertBean(bean);
this.getPrintWriter(response).print("<script language=javascript>alert('操作成功');" +
"window.location.href='carlist.do';</script>");
}
//跳转到修改车辆页面
@RequestMapping("/carupdate.do")
public String carupdate(HttpServletRequest request,int id){
Car bean = carService.selectBeanById(id);
request.setAttribute("bean", bean);
request.setAttribute("url", "carupdate2.do?id="+id);
request.setAttribute("title", "修改车辆");
return "car/carupdate.jsp";
}
//修改车辆操作
@RequestMapping("/carupdate2.do")
@Resource
private YueService yueService;
@Resource
private VipService vipService;
@Value("#{jdbc.pageSize}")
private int pageSize;
// 获取输出对象
public PrintWriter getPrintWriter(HttpServletResponse response) {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
return writer;
}
//管理员登录
@RequestMapping("/login.do")
public void login(HttpServletRequest request,HttpServletResponse response,String username,String password,String role){
PrintWriter writer = this.getPrintWriter(response);
User user = userService.userlogin(username, password,Integer.parseInt(role));
if(user==null){
}else{
HttpSession session = request.getSession();
session.setAttribute("manage", user);
}
//车辆
public class Car {
private int id;//主键
private String chepai;//车牌号
private String chejia;//车架号
private String pinpai;//品牌
private String xinghao;//型号
private String pic;//车辆图片
private String price;//车价
private String xsz;//行驶证号
private String yanse;//颜色
private int zujin;//租金
private String status;//车辆状态 待租赁/租赁中/维修中/预定中
private String ctime;//添加时间
private int weihu;//总维护费
private Double tzujin;//总租金
public int getId() {
return id;
}