项目运行
环境配置:
Jdk1.8 + Tomcat7.0 + Mysql +vscode)+ IntelliJ IDEA。
项目技术:
ssm + mybatis + Maven +mysql5.7或8.0等等组成,B/S模式 + Maven管理等等。
环境需要
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 4G内存以上;或者 Mac OS;
5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7/8.0等版本均可;
毕设帮助,指导,本源码分享,调试部署(见文末)
系统介绍:
-
随着社会的发展,计算机的优势和普及使得汽车租赁系统的开发成为必需。汽车租赁系统主要是借助计算机,通过对汽车租赁信息等信息进行管理。减少管理员的工作,同时也方便广大用户对个人所需汽车租赁信息的及时查询以及管理。
-
汽车租赁系统的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的springboot框架。使用Mysql数据库和Eclipse开发环境。该汽车租赁系统包括用户和管理员。其主要功能包括管理员:首页、个人中心、用户管理、车辆品牌管理、车辆信息管理、车辆颜色管理、租赁订单列表管理、还车记录管理、管理员管理、我的收藏管理、系统管理,用户:首页、个人中心、车辆信息管理、租赁订单列表管理、还车记录管理,前台首页;首页、车辆信息、系统公告、个人中心、后台管理等功能。
本论文对汽车租赁系统的发展背景进行详细的介绍,并且对系统开发技术进行介绍,然后对系统进行需求分析,对汽车租赁系统业务流程、系统结构以及数据都进行详细说明。用户可根据关键字进行信息的查找自己想要的信息等。 -
关键词:汽车租赁系统,Mysql数据库,Java技术 springboot框架
-
图4.1即为设计的功能结构,主要功能:
- 用户:首页、个人中心、车辆信息管理、租赁订单列表管理、还车记录管理等操作
- 管理员:首页、个人中心、用户管理、车辆品牌管理、车辆信息管理、车辆颜色管理、租赁订单列表管理、还车记录管理、管理员管理、我的收藏管理、系统管理等功能。
图4.1 功能结构
- 程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
功能截图:
编程人员在搭建的开发环境中,会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。
5.1 管理员功能实现
- 管理员登录进入汽车租赁系统可以查看首页、个人中心、用户管理、车辆品牌管理、车辆信息管理、车辆颜色管理、租赁订单列表管理、还车记录管理、管理员管理、我的收藏管理、系统管理等信息,如图
- 用户管理,在用户管理列表可以查看账号、姓名、性别、年龄、手机、邮箱、照片等内容,还可以根据需要修改或删除等操作,如图
- 车辆品牌管理,在车辆品牌管理列表可以查看品牌等信息,并可根据需要进行修改或删除等操作,如图
- 车辆颜色管理,在车辆颜色管理可以查看颜色等信息,并可根据需要进行修改或删除等操作,如图
- 车辆信息管理,在车辆信息管理可以查看车辆名称、车牌号码、车辆品牌、车辆类型、车辆照片、车辆颜色、换挡方式、车辆天窗、车座、租赁价格、车辆详情等内容,并且根据需要进行修改或删除等操作,如图
- 租赁订单列表管理,在租赁订单列表管理可以查看账号、姓名、手机、车辆名称、车牌号码、车辆品牌、车辆类型、换挡方式、租赁价格、租赁天数、提车日期、实付金额、是否支付、审核回复、审核状态、审核等内容,并且根据需要进行修改或删除等操作,如图
5.2 用户功能实现
- 用户登录、用户注册,通过注册获取账号、密码、姓名、性别、年龄、手机、邮箱等信息进行注册、登录,如图
- 车辆信息,在车辆信息页面可以查看车辆名称、车牌号码、车辆品牌、车辆类型、车辆照片、车辆颜色、换挡方式、车辆天窗、车座、租赁价格、车辆详情等信息进行购买、点我收藏,如图
- 个人中心,在个人中心页面可以查看账号、密码、姓名、性别、年龄、手机、邮箱等进行更新信息、退出登录如图
- 用户登录进入汽车租赁系统可以查看首页、个人中心、车辆信息管理、租赁订单列表管理、还车记录管理等内容,如图
- 还车记录管理,在还车记录管理列表中通过查看账号、姓名、手机、车辆名称、车牌号码、车辆品牌、车辆类型、换挡方式、租赁价格、还车日期、租赁天数、审核回复、审核状态等信息并详情、删除,如图
代码实现:
package com.example.springboottest1.controller;
import com.example.springboottest1.entity.User;
import com.example.springboottest1.entity.books;
import com.example.springboottest1.entity.userinfo;
import com.example.springboottest1.service.UserLoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping(value = {"/user"})
public class UserLoginController {
/**
* 最开始希望用Map的形式接参数,后来不用了,将请求对应的接受方式记录一下
*
* @RequestBody Map<String,Object> map post请求
* @RequestParam Map<String,Object> map get请求
*/
/**
* 注入service
*/
@Autowired
private UserLoginService userLoginService;
@Autowired
private JdbcTemplate jdbcTemplate;
/**
* 同时这个时候可以自己了解一下@Controller与@RestController的区别,以及@ResponseBody的用法。
*/
/**
* 跳转到用户登录页面
* @return 登录页面
*/
@RequestMapping(value = {"/loginHtml"})
public String loginHtml(){
return "userLogin";
}
/**
* 跳转到用户注册页面
* @return 注册页面
*/
@RequestMapping(value = {"/registerpage"})
public String registerpage(){
return "register";
}
/**
* 获取用户名与密码,用户登录
* @return 登录成功页面
*/
@RequestMapping(value = {"/userLogin"})
public String userLogin(@RequestParam("username") String username,
@RequestParam("password") String password,
Model model, HttpServletRequest request){
if(StringUtils.isEmpty(username)){
return "用户名不能为空";
}
if(StringUtils.isEmpty(password)){
return "密码不能为空";
}
User user = userLoginService.userLogin(username,password);
if(user != null){ //登录成功
request.getSession().setAttribute("session_user",user.getUsername()); //将用户信息放入session 用于后续的拦截器
//获取当前登录用户
Map<String, Object> map = new HashMap<>();
map.put("sessionId", request.getSession().getId()); // 取值
map.put("message", request.getSession().getAttribute("session_user"));
model.addAttribute("user",map.get("message"));
String sql2 = "select * from userinfo where iusername=?";
RowMapper<userinfo> rowMapper2=new BeanPropertyRowMapper<userinfo>(userinfo.class);
List<userinfo> userinfo= jdbcTemplate.query(sql2, rowMapper2,map.get("message"));
//userinfo thisinfo= jdbcTemplate.queryForObject(sql2, rowMapper2,map.get("message"));
if(userinfo.size()==0){
String sql="insert into userinfo(iusername,iage,iphone) values (?,?,?)";
jdbcTemplate.update(sql,map.get("message"),0,0);
List<userinfo> userinfo2= jdbcTemplate.query(sql2, rowMapper2,map.get("message"));
model.addAttribute("info",userinfo2.get(0));//添加一个值为"hello thymeleaf"的hello变量到视图
model.addAttribute("name",map.get("message"));
return "myhome";
}
model.addAttribute("info",userinfo.get(0));//添加一个值为"hello thymeleaf"的hello变量到视图
model.addAttribute("name",map.get("message"));
return "myhome";
}
return "userLogin";
}
/**
* 注册新用户
* @return 注册结果
*/
@ResponseBody
@RequestMapping(value = {"/uregister"})
public String addUser(@RequestParam("username") String username,
@RequestParam("password") String password,
@RequestParam("password2") String password2,
@RequestParam("age") int age){
if(StringUtils.isEmpty(username)){
return "用户名不能为空";
}
if(StringUtils.isEmpty(password)){
return "密码不能为空";
}
if(StringUtils.isEmpty(password2)){
return "确认密码不能为空";
}
if(!password.equals(password2)){
return "两次密码不相同,注册失败!!";
}else {
int res = userLoginService.adduser(username,password,age);
if(res == 0){
return "注册失败!";
}else {
return "注册成功!";
}
}
}
/**
* 用于测试拦截器(用户是否登录,查看session)
* 查询用户列表 http://localhost:8080/user/queryAllUser
* @return 用户列表(json串)
*/
@ResponseBody
@RequestMapping(value = {"/queryAllUser"})
public List<Map<String,Object>> queryAllUser(){
return userLoginService.queryAllUser();
}
}
论文参考:
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻