• Java项目:汽车租车管理系统(java+SSM+HTML+JSP+bootstrap+layui+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项目:否;


    技术栈

    1. 后端:Spring+SpringMVC+Mybatis
    2. 前端:HTML+CSS+JavaScript+jsp+jquery+bootstrap+layui


    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中util/DBUtil.java配置文件中的数据库配置改为自己的配置;
    4. 运行项目,输入localhost:8080/ssm_qiche_rentsys/ 登录

     

     

     

     

    后台管理员控制层: 

    1. @Controller
    2. @RequestMapping(value = "/admin")
    3. public class AdminManageController {
    4. public static void main(String[] args) {
    5. }
    6. AdminService adminService = new AdminService();
    7. SendMailService sendMailService = new SendMailService();
    8. /**
    9. * Code:200 Data=id (id是String类型)管理员信息正确
    10. * Code:205 Data=0 管理员不存在
    11. * Code:206 Data=-3 管理员密码错误
    12. * Code:207 Data=-2 管理员账户被重复
    13. * Code:404 Data=-1 catch异常
    14. *
    15. * @param username
    16. * @param password
    17. * @return
    18. */
    19. @RequestMapping(value = "/adminLogin", method = RequestMethod.GET)
    20. @ResponseBody
    21. public JsonMsg adminLogin(String username, String password) {
    22. JsonMsg jsonMsg = new JsonMsg();
    23. try {
    24. if (adminService.getAdminByName(username).size() == 0) {
    25. jsonMsg.setCode("205");
    26. jsonMsg.setData(0);
    27. } else if (adminService.getAdminByName(username).size() != 1) {
    28. jsonMsg.setCode("207");
    29. jsonMsg.setData(-2);
    30. }
    31. else{
    32. int id;
    33. if(!adminService.getAdminByName(username).get(0).getPassword().equals(password))
    34. {
    35. jsonMsg.setCode("206");
    36. jsonMsg.setData(-3);
    37. } else {
    38. id = adminService.getAdminByName(username).get(0).getId();
    39. jsonMsg.setCode("200");
    40. jsonMsg.setData(adminService.getAdminById(id));
    41. }
    42. }
    43. } catch (SQLException e) {
    44. jsonMsg.setCode("404");
    45. jsonMsg.setData(-1);
    46. e.printStackTrace();
    47. }
    48. return jsonMsg;
    49. }
    50. /**
    51. * Code=404 Data=-1 抛出异常不做改变
    52. * Code=202 Data=0 不变/修改无效
    53. * Code=202 Data=-2 id不存在
    54. * Code=202 Data=-3 名字修改时产生重复
    55. * Code=200 Data>=1 修改成功 Data=修改的信息数量
    56. * 参数都可以为null,但是id为null无法更新
    57. * null的参数不做更新
    58. *
    59. * @param id
    60. * @param username
    61. * @param password
    62. * @param email
    63. * @param description
    64. * @param pic
    65. * @return
    66. */
    67. @RequestMapping(value = "/adminUpdate", method = RequestMethod.GET)
    68. @ResponseBody
    69. public JsonMsg updateAdmin(int id,String username,String password,String email,String description,String pic)
    70. {
    71. int status=0;
    72. JsonMsg jsonMsg=new JsonMsg();
    73. AdminBean ub=new AdminBean();
    74. ub.setUsername(username);
    75. ub.setPassword(password);
    76. ub.setEmail(email);
    77. ub.setDescription(description);
    78. ub.setPic(pic);
    79. try {
    80. status = adminService.updateUserById(id, ub);
    81. jsonMsg.setData(status);
    82. if (status >= 1) {
    83. jsonMsg.setCode("200");
    84. } else {
    85. jsonMsg.setCode("202");
    86. }
    87. } catch (SQLException e) {
    88. jsonMsg.setCode("404");
    89. jsonMsg.setData(-1);
    90. e.printStackTrace();
    91. }
    92. return jsonMsg;
    93. }
    94. /**
    95. * 向user的email发邮件
    96. *
    97. * @param email
    98. * @param username
    99. * @return
    100. */
    101. @RequestMapping(value = "/sendEmail", method = RequestMethod.GET)
    102. @ResponseBody
    103. public JsonMsg sendEmail(String email, String username) {
    104. JsonMsg jsonMsg = new JsonMsg();
    105. try {
    106. if (sendMailService.sendmail(email, username)) {
    107. jsonMsg.setCode("200");
    108. jsonMsg.setData("Send Email Success");
    109. } else {
    110. jsonMsg.setCode("205");
    111. jsonMsg.setData("Send Email Failed");
    112. }
    113. } catch (Exception e) {
    114. jsonMsg.setCode("404");
    115. e.printStackTrace();
    116. }
    117. return jsonMsg;
    118. }
    119. // @RequestMapping(value = "/login", method = RequestMethod.GET)
    120. // @ResponseBody
    121. // public JsonMsg login(String username, String password) {
    122. // JsonMsg jsonMsg = new JsonMsg();
    123. // try {
    124. // if (adminService.getAdminByNamePassword(username, password).size() == 0) {
    125. // jsonMsg.setCode("205");
    126. // } else {
    127. // jsonMsg.setCode("200");
    128. // }
    129. // jsonMsg.setData(adminService.getAdminByNamePassword(username, password));
    130. // } catch (Exception e) {
    131. // jsonMsg.setCode("404");
    132. // e.printStackTrace();
    133. // }
    134. // return jsonMsg;
    135. // }
    136. //
    137. // @RequestMapping(value = "/getAdminByid", method = RequestMethod.GET)
    138. // @ResponseBody
    139. // public JsonMsg login(String id) {
    140. // JsonMsg jsonMsg = new JsonMsg();
    141. // try {
    142. // jsonMsg.setCode("200");
    143. // jsonMsg.setData(adminService.getAdminById(id));
    144. // } catch (Exception e) {
    145. // jsonMsg.setCode("404");
    146. // e.printStackTrace();
    147. // }
    148. // return jsonMsg;
    149. // }
    150. // /**
    151. // * 这个是用来注册管理员
    152. // * 我加了一个Deprecated的annotation
    153. // *
    154. // * @param username
    155. // * @param password
    156. // * @param email
    157. // * @return
    158. // */
    159. // @RequestMapping(value = "/register", method = RequestMethod.GET)
    160. // @ResponseBody
    161. // @Deprecated
    162. // public JsonMsg addAdmin(String username, String password, String email) {
    163. // JsonMsg jsonMsg = new JsonMsg();
    164. // try {
    165. // jsonMsg.setCode("200");
    166. // jsonMsg.setData(adminService.addAdmin(username, password, email));
    167. // } catch (Exception e) {
    168. // jsonMsg.setCode("404");
    169. // e.printStackTrace();
    170. // }
    171. // return jsonMsg;
    172. // }
    173. //
    174. // /**
    175. // * 用来注册普通用户
    176. // *
    177. // * @param username
    178. // * @param password
    179. // * @param email
    180. // * @return
    181. // */
    182. // @RequestMapping(value = "/registerUser", method = RequestMethod.GET)
    183. // @ResponseBody
    184. // public JsonMsg addUser(String username, String password, String email) {
    185. // JsonMsg jsonMsg = new JsonMsg();
    186. // jsonMsg.setCode("200");
    187. // jsonMsg.setData(1);
    188. // return jsonMsg;
    189. // }
    190. //
    191. // @RequestMapping(value="/userLogin",method=RequestMethod.GET)
    192. // @ResponseBody
    193. // public JsonMsg userLogin(String username, String password){
    194. // return null;
    195. // }
    196. }

    车辆管理控制层:

    1. @Controller
    2. @RequestMapping(value = "/car")
    3. public class CarController {
    4. CarService orderService = new CarService();
    5. CarOutService outOrderService = new CarOutService();
    6. /**
    7. * Code = "200" 成功存入
    8. * Code = "202" 输入存在问题
    9. * Code = "203" 系统错误
    10. * @param sender_id
    11. * @param carName
    12. * @param stringPrice
    13. * @return
    14. */
    15. @RequestMapping(value = "/userAddCar", method = RequestMethod.GET)
    16. @ResponseBody
    17. public JsonMsg userAddCar(int sender_id, String carName, String stringPrice) {
    18. int price = 0;
    19. try {
    20. price = Integer.parseInt(stringPrice);
    21. } catch (Exception e) {
    22. System.out.println("Chenjie Debug");
    23. e.printStackTrace();
    24. }
    25. JsonMsg jsonMsg = new JsonMsg();
    26. if (price < 0 || carName == null) {
    27. jsonMsg.setCode("202");
    28. jsonMsg.setData(0);
    29. }
    30. try {
    31. int i = orderService.addCar(carName, price, "还没有实现照片上传");
    32. System.out.println("addCar之后的返回值是:"+i);
    33. if (i >= 1) {
    34. int r = outOrderService.add(sender_id, carName, price, "还没有实现照片上传");
    35. if (r == 1) {
    36. jsonMsg.setCode("200");
    37. jsonMsg.setData(1);
    38. } else {
    39. jsonMsg.setCode("2031");
    40. jsonMsg.setData(-1);
    41. }
    42. } else {
    43. jsonMsg.setCode("2032");
    44. jsonMsg.setData(-1);
    45. }
    46. } catch (SQLException e) {
    47. jsonMsg.setCode("2033");
    48. jsonMsg.setData(-1);
    49. e.printStackTrace();
    50. }
    51. return jsonMsg;
    52. }
    53. }

    停车位管理控制层:

    1. @Controller
    2. @RequestMapping(value = "/park")
    3. public class ParkController {
    4. ParkService parkService=new ParkService();
    5. /**
    6. * 添加park
    7. *自动生成id
    8. * Code200 1成功添加
    9. * Code404 -1 添加失败/异常/price格式错误/缺少参数
    10. * @param name
    11. * @param price
    12. * @return
    13. */
    14. @RequestMapping(value = "/parkAdd", method = RequestMethod.GET)
    15. @ResponseBody
    16. public JsonMsg parkAdd(String name,String price)
    17. {
    18. JsonMsg jsonMsg=new JsonMsg();
    19. try {
    20. if(name==null||price==null)
    21. {
    22. throw new Exception("缺少参数");
    23. }
    24. int i=parkService.addPark(name,Integer.parseInt(price));
    25. jsonMsg.setCode("200");
    26. jsonMsg.setData(1);
    27. } catch (Exception e) {
    28. jsonMsg.setCode("404");
    29. jsonMsg.setData(-1);
    30. e.printStackTrace();
    31. }
    32. return jsonMsg;
    33. }
    34. /**
    35. *利用id删除park
    36. * code200 1找到并删除成功
    37. * code200 0没有找到
    38. * code202 0车位正在被使用,不可以删除
    39. * code404 -1删除异常
    40. * @param id
    41. * @return
    42. */
    43. @RequestMapping(value = "/parkDelete", method = RequestMethod.GET)
    44. @ResponseBody
    45. public JsonMsg parkDelete(int id)
    46. {
    47. JsonMsg jsonMsg=new JsonMsg();
    48. try {
    49. ParkBean park=parkService.getParkById(id);
    50. if(park.getStatus()==0)
    51. {
    52. int i=parkService.deleteParkById(id);
    53. jsonMsg.setCode("200");
    54. jsonMsg.setData(i);
    55. }
    56. else{
    57. jsonMsg.setCode("202");
    58. jsonMsg.setData(0);
    59. }
    60. }
    61. catch (Exception e)
    62. {
    63. jsonMsg.setCode("404");
    64. jsonMsg.setData("-1");
    65. e.printStackTrace();
    66. }
    67. return jsonMsg;
    68. }
    69. /**
    70. *Code 200 得到所有parks
    71. * Code 404 -1异常
    72. * @return
    73. */
    74. @RequestMapping(value = "/parkTraversal", method = RequestMethod.GET)
    75. @ResponseBody
    76. public JsonMsg parkTraversal()
    77. {
    78. JsonMsg jsonMsg=new JsonMsg();
    79. try {
    80. List<ParkBean> parks=parkService.getAllPark();
    81. jsonMsg.setCode("200");
    82. jsonMsg.setData(parks);
    83. }
    84. catch (Exception e)
    85. {
    86. jsonMsg.setCode("404");
    87. jsonMsg.setData("-1");
    88. e.printStackTrace();
    89. }
    90. return jsonMsg;
    91. }
    92. /**
    93. *id必须设置
    94. * 其他参数不设置代表不更新
    95. * Code 200 data=1更新成功
    96. * Code 200 data=0 没有更新
    97. * Code 404 异常
    98. * @param id
    99. * @param name
    100. * @param price_per_day
    101. * @param status
    102. * @return
    103. */
    104. @RequestMapping(value = "/parkUpdate", method = RequestMethod.GET)
    105. @ResponseBody
    106. public JsonMsg parkUpdate(int id,String name,String price_per_day,String status)
    107. {
    108. JsonMsg jsonMsg=new JsonMsg();
    109. try {
    110. ParkBean parkBean=new ParkBean();
    111. if(name!=null)
    112. {
    113. parkBean.setName(name);
    114. }
    115. if(price_per_day!=null)
    116. {
    117. parkBean.setPrice_per_day(Integer.parseInt(price_per_day));
    118. }
    119. if(status!=null)
    120. {
    121. parkBean.setStatus(Integer.parseInt(status));
    122. }
    123. int i=parkService.updateParkById(id,parkBean);
    124. jsonMsg.setCode("200");
    125. jsonMsg.setData(1);
    126. }
    127. catch (Exception e)
    128. {
    129. jsonMsg.setCode("404");
    130. jsonMsg.setData("-1");
    131. e.printStackTrace();
    132. }
    133. return jsonMsg;
    134. }
    135. /**
    136. *Code 200 得到所有空闲状态的park
    137. * Code 404 异常
    138. * @return
    139. */
    140. @RequestMapping(value = "/parkIdleTraversal", method = RequestMethod.GET)
    141. @ResponseBody
    142. public JsonMsg parkIdleTraversal()
    143. {
    144. JsonMsg jsonMsg=new JsonMsg();
    145. try {
    146. List<ParkBean> parkBeans=parkService.getIdlePark();
    147. jsonMsg.setCode("200");
    148. jsonMsg.setData(parkBeans);
    149. }
    150. catch (Exception e)
    151. {
    152. jsonMsg.setCode("404");
    153. jsonMsg.setData("-1");
    154. e.printStackTrace();
    155. }
    156. return jsonMsg;
    157. }
    158. }

    源码获取:俺的博客首页 "资源" 里下载!

  • 相关阅读:
    人口大数据解决方案
    matlab实现了一个基于粒子群优化(PSO)算法的程序,用于寻找一种三层材料结构的最佳配置
    计算机组成原理习题课第三章-1(唐朔飞)
    jmeter录制https脚本
    【tgcalls】Instance接口的实例类的创建
    正点原子嵌入式linux驱动开发——Linux蜂鸣器
    图像识别(五)| 春天花开却不识?打开百度识图,残差和卷积带你识遍路边野花
    【新刊邀稿】1区计算机类SCI&EI,迅速抢占版面,就差你了~
    ESP32实验-自建web服务器配网02
    KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(4)
  • 原文地址:https://blog.csdn.net/m0_66863468/article/details/125568517