关注分享主机优惠活动
国内外VPS云服务器

基于SSM+Idea+MySQL的汽车租赁系统(SSM毕业设计源码)(汽车租赁系统UML课程设计)

总结:每个角色登录后可以拥有不同权限的功能。 它有很多功能,我们将向您展示主要功能。

项目类型:JAVA WEB毕业项目名称:基于SSM的租车系统

用户类型:多角色(可自行添加角色和设置权限))系统类型:后端管理系统设计模式:SSM+Layui 开发工具:Idea 数据库:Mysql+Navicat 数据库表数:11 个 适用对象:软件工程、计算机科学、技术等JAVA课程的学习及毕业设计 /p>

高级源码

会计院长提供免费指导,减少重复检查,高质量手工开发源码我们定期发布代码,并提供课程设计和毕业设计指导。 连双1流大学刚毕业的学长都曾经是初学者!

项目来源:

检索地址:其他项目及项目来源

回复同学获取免费获取源代码一套

回复 免费获取367套毕业设计ppt模板

相关优质毕业设计

基于SSM的电子产品商城

基于Jsp+Servlet的高校社团管理系统

基于Jsp+Servlet的在线订购系统

p>

基于SSM的物流快递管理系统

基于Jsp+Servlet的医院挂号管理系统

Jsp+Servlet学生班级签到及盖章系统【原创开发】https://blog.csdn.net/qq_59059632/article/details/118943638https://blog.csdn.net/qq_59059632/article/details/ 118943638Jsp+Servlet图书管理系统【原创开发】https://blog.csdn.net/qq_59059632/article/details/118656590https://blog.csdn.net/qq_59059632/article/details/118656590Jsp+Servlet图书管理系统【原创开发]开发]开发]开发]https://blog.csdn.net/qq_59059632/article/details/118656590https://blog.csdn.net/qq_59059632/article/details/118656590Jsp+Servlet大学学生圈子管理系统【原创】开发] https://blog.csdn.net/qq_59059632/article/details/119332395https://blog.csdn.net/qq_59059632/article/details/119332395Jsp+Servlet在线点餐系统(原创)https://editor.csdn .net/md/?articleId=118831747https://editor.csdn.net/md/?articleId=118831747Jsp+Servlet医院挂号系统https://blog.csdn.net/qq_59059632/article/details/119424113https://blog.csdn.net/md/? csdn.net/qq_59059632/Article/details/119424113 Jsp+Servlet车险系统 https://blog.csdn.net/qq_59059632/article/details/120189420 https://blog.csdn.net/qq_59059632/article/details/120189420

后台功能介绍

本系统有多种角色。 每个角色都可以独立配置。 添加角色后,为每个角色分配不同的权限,实现多角色登录。 每个角色登录后可以拥有不同权限的功能。 它有很多功能,我们将向您展示主要功能。

登录界面

租赁客户管理

车辆信息管理

添加租赁汽车

租车

租车订单管理

租借与归还(归还时需进行维护调整)

菜单管理

角色管理

用户管理

统计分析

数据库表

项目结构

代码演示说明 (我们以多角色管理为例,这也是本系统的核心功能

RoleManage.jsp

添加角色管理查询条件,一次性删除,编辑和删除分配菜单

RoleController.java

包 com.bjpowernode.sys.controller;导入 com.bjpowernode.sys.service.RoleService;导入 com.bjpowernode.sys.utils.DataGridView;导入 com.bjpowernode.sys.utils.ResultObj;导入 com. sys.vo.RoleVo;导入 org.springframework.beans.factory.annotation.Autowired;导入 org.springframework.web.bind.annotation.RequestMapping;导入 org.springframework.web.bind.annotation.RestController;/** * 角色控制器* * 2020/2/17 14:36 ​​*/@RestController@RequestMapping("role")public class roleController { @Autowired private roleService roleService; / * * * 加载角色列表并返回DataGridView */ @RequestMapping("loadAllRole") public DataGridView loadAllRole(RoleVo roleVo) { return this.roleService.queryAllRole(roleVo) } /** * 添加角色 */ @ RequestMapping("addRole" ) public ResultObj addRole(RoleVo roleVo) { try { this.roleService.addRole(roleVo); 返回 ResultObj.ADD_SUCCESS。 } catch (异常 e) { e.printStackTrace(); 返回 ResultObj.ADD_ERROR。 /** * 更改角色 */ @RequestMapping("updateRole") public ResultObj updateRole(RoleVo)roleVo) { 尝试 { this.roleService.updateRole(roleVo); 返回 ResultObj.UPDATE_SUCCESS。 } catch (异常 e) { e.printStackTrace(); 返回 ResultObj.UPDATE_ERROR。 } } /** * 删除角色 */ @RequestMapping( "deleteRole") public ResultObj deleteRole(RoleVo roleVo) { try { this.roleService.deleteRole(roleVo.getRoleid()); returns ResultObj.DELETE_SUCCESS. } catch (异常 e) { e.printStackTrace(); 返回 ResultObj.DELETE_ERROR。 } } /** * 批量删除角色 */ @RequestMapping("deleteBatchRole") public ResultObj deleteBatchRole(RoleVo roleVo) { try { this.roleService.deleteBatchRole(roleVo.getIds());ETE_success; } catch (异常 e) { e.printStackTrace(); 返回 ResultObj.DELETE_ERROR; } } /** * 加载角色管理分配菜单json */ @RequestMapping("initRoleMenuTreeJson") public DataGridView initRoleMenuTreeJson(Integer roleid) { return this.roleService.initRoleMenuTreeJson(roleid) } /** * 角色和菜单保存关系*/ @RequestMapping("saveRoleMenu") public ResultObj saveRoleMenu(RoleVo roleVo) { try { this.roleService.saveRoleMenu(roleVo); 返回 ResultObj.DISPATCH_SUCCESS。 } catch (异常 e) { e.printStackTrace(); 返回 ResultObj.DISPATCH_ERROR。 } }}

RoleService.Java

包 com.bjpowernode.sys.service;import com.bjpowernode.sys .domain.Role;import com.bjpowernode.sys.utils.DataGridView;import com.bjpowernode.sys.vo.RoleVo;import java.util.List;/** * */publicinterfaceRoleService { /** * 查询并返回所有角色 * @param roleVo * @return */ public List queryAllRoleForList(RoleVo roleVo); /** * 根据用户ID查询用户可用的角色 */ public List queryRoleByUserIdForList(RoleVo roleVo, Integer userId); /** * 查询所有角色* @param roleVo * @return */ public DataGridView queryAllRole(RoleVo roleVo); /** * 添加角色* @param roleVo */ public void addRole(RoleVo roleVo); /** * 修改角色 * @param roleVo */ public void updateRole(RoleVo roleVo); /** * 根据ID删除角色 * @param roleid */ public void deleteRole(Integer roleid) /** * 批量删除角色 * @param ids */ public void deleteBatchRole(Integer [] ID); /** * 加载角色管理分配菜单 json * @param roleid * @return */ public DataGridView initRoleMenuTreeJson(Integer roleid); /** * 保存角色和菜单的关系 * @param roleVo */ public void saveRoleMenu(RoleVo roleVo);}

RoleServiceImpl.java

package com.bjpowernode.sys.service.impl;import com.github.pagehelper.Page;Import com.github.pagehelper.PageHelper;导入 com.bjpowernode.sys.constant.SysConstant;导入 com.bjpowernode.sys.domain.Menu;导入 com.bjpowernode.sys.domain.Role;导入 com.bjpowernode.sys.mapper.MenuMapper;导入 com. .mapper.RoleMapper;导入com.bjpowernode.sys.service.RoleService;导入com.bjpowernode.sys.utils.DataGridView;导入com.bjpowernode.sys.utils.TreeNode;导入com.bjpowernode.sys.vo;导入RoleVo。 org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.ArrayList;import java.util.List;/** * 角色管理的服务接口 * * 2020/2/ 17 13 :55 */@Servicepublic class roleServiceImpl Implements RoleService { @Autowired private roleMapper roleMapper; @Autowired private MenuMapper 菜单映射器; /** * 查询所有菜单并返回 * @param roleVo * @return */ @Override public List queryAllRoleForList(RoleVo roleVo) { return roleMapper.queryAllRole(roleVo); roleVo * @param userId * @return */ @Override public List queryRoleByUserIdForList(RoleVo roleVo, Integer userId) { return roleMapper.queryAllRole(roleVo); } /** * 查询所有角色列表 * @param roleVo * @return */ @覆盖发布ic DataGridView queryAllRole(RoleVo roleVo) { 页面页面 = PageHelper.startPage(roleVo.getPage(), roleVo.getLimit()); 列表数据 = this.roleMapper.queryAllRole(roleVo); data); } /** * 添加角色* @param roleVo */ @Override public void addRole(RoleVo roleVo) { this.roleMapper.insertSelective(roleVo); } /** * 更新角色* @param roleVo */ @Override public void updateRole(RoleVo roleVo) { this.roleMapper.updateByPrimaryKeySelective(roleVo); } /** * 根据角色roleid单独删除角色 * @param roleid */ @Override public void deleteRole(Integer roleid ) { //删除角色表data this.roleMapper.deleteByPrimaryKey(roleid); //根据角色ID删除sys_role_menu的数据 this.roleMapper.deletRoleMenuByRid(roleid); // 根据角色 ID 删除 sys_role_user 的数据 this.roleMapper.deleteRoleUserByRid(roleid); } /** * 根据首页传入的数组批量删除角色* @param ids */ @Override public void deleteBatchRole (Integer[] ids) { for (Integer Riding : ids){ deleteRole(rid); @Override public DataGridView initRoleMenuTreeJson(Integer roleid) { //查询所有可用菜单 Menu menu = new Menu(); setAvailable(SysConstant.AVAILABLE_TRUE); List allMenu = menuMapper.queryAllMenu(menu); // 根据角色ID查询当前角色拥有的菜单。 列表 roleMenu = menuMapper.queryMenuByRoleId(SysConstant.AVAILABLE_TRUE,roleid); 列表数据 = new ArrayList(); for (Menu m1 : allMenu) { String checkArr = SysConstant.CODE_ZERO+"";nu m2 : roleMenu) { if (m1.getId()==m2.getId()){ checkArr=SysConstant.CODE_ONE+""; 销毁; 整数 ID = m1.getId(); String Title = m1.getTitle(); Boolean Spread = m1.getSpread()==SysConstant.SPREAD_TRUE?true:false; data.add(new TreeNode(id,pid,title,spread,checkArr));数据)。 @Override public void saveRoleMenu(RoleVo roleVo) { Integer Rid=roleVo.getRoleid(); Integer [] Mids=roleVo.getIds(); //根据 this.roleMapper 删除 sys_role_menu 中的所有数据 .deleteRoleMenuByRid(rid); // 将角色和菜单关系保存到 (Integer Mid : Mids) { this.roleMapper.insertRoleMenu(rid,mid); } }}

RoleMapper.java

包 com.bjpowernode.sys.mapper;导入 com.bjpowernode.sys.domain.Role;导入 org.apache.ibatis.annotations.Param ;import java.util.List ;/** * */公共接口 RoleMapper { int deleteByPrimaryKey(Integer roleid); int insert(Role record); int insertSelective(Role record); record); int updateByPrimaryKey(Role record); /** * 查询角色 * @param role * @return */ List queryAllRole(Role role); /** * 根据角色 ID 删除 sys_role_menu 中的数据 * @param roleid */ void deleteRoleMenuByRid(Integer roleid); /** * 根据角色 ID 删除 sys_role_user 的数据 * @param roleid */ void deleteRoleUserByRid(Integer roleid);颜色与菜单的关系 sys_role_menu * @param Rid * @param Mid */ void insertRoleMenu(@Param("rid") Integer Rid, @Param("mid") Integer Mid) /** * 根据用户ID设置sys_role_user data Delete * @param userid */ void deleteRoleUserByUid(Integer userid) /** * 根据用户ID查询角色 * @param available * @param userid * @return */ List queryRoleByUid(@Param("available") Integer available , @Param("uid") Integer userid);}

RoleMapper.xml

roleid, rolename, roledesc, available select from sys_role where roleid = #{roleid,jdbcType=INTEGER} delete from sys_role where roleid = # {roleid,jdbcType=INTEGER} 插入 sys_role (roleid, rolename , roledesk,可用)值 (#{roleid,jdbcType=INTEGER}, #{rolename,jdbcType=VARCHAR}, #{roledesc,jdbcType=VARCHAR}, #{available,jdbcType=INTEGER}) 插入 sys_role roleid, rolename, roledesc , available , #{roleid,jdbcType=INTEGER}, #{rolename,jdbcType=VARCHAR}, #{roledesc,jdbcType=VARCHAR}, #{available,jdbcType=INTEGER}, 更新的 sys_role 角色名称 = #{rolename,jdbcType= VARCHAR},roledesc = #{roledesc,jdbcType=VARCHAR},可用 = #{available,jdbcType=INTEGER},roleid = #{roleid,jdbcType=INTEGER} 更新 sys_role 设置角色名称 = #{rolename,jdbcType=VARCHAR},roledesc = # { roledesc,jdbcType=VARCHAR}, available = #{available,jdbcType=INTEGER} 其中 roleid = #{roleid,jdbcType=INTEGER} 就像 concat("%",#{rolename},"%") 从 sys_role 和 rolename 中选择。 从 roledesc 中删除,例如 concat("%",#{roledesc},"%") 和 available=#{available}sys_role_menu where Rid=#{value} 从 sys_role_user 中删除 where Rid=#{value} 插入 sys_role_menu(rid, Mid) value(#{rid},#{mid}) 从 sys_role_user 中删除 where uid=#{value} 选择 t1 .* 从 sys_role t1 内部加入 sys_role_user t2 on(t1.roleid=t2.rid) where t2.uid=#{uid}

未经允许不得转载:主机频道 » 基于SSM+Idea+MySQL的汽车租赁系统(SSM毕业设计源码)(汽车租赁系统UML课程设计)

评论 抢沙发

评论前必须登录!