專案型別:JAVA WEB畢業設計
專案名稱:基于SSM的汽車租賃系統
用戶型別:多角色(角色可以自己添加并設定權限)
系統型別:后臺管理系統
設計模式:SSM+Layui
開發工具:Idea
資料庫:Mysql+Navicat
資料庫表:11張
適用:軟體工程、計算機科學與技術等JAVA課程的學習和畢業設計
學長原始碼
計科學長,免費指導降低查重,定期發布高質量手工開發原始碼,提供課程設計和畢業設計的指導!雙1流高校剛畢業的老學長,曾經也是個小白!
專案來源:
獲取地址:其他專案以及專案來源
回復 學生 免費get一套原始碼
回復 ppt 免費get 367套畢業設計ppt模板
相關優質畢業設計專案
基于SSM的電子產品商城
基于Jsp+Servlet的大學生社團管理系統
基于Jsp+Servlet的在線點餐系統
基于SSM的物流快遞管理系統
基于Jsp+Servlet的醫院掛號管理系統
Jsp+Servlet的學生上課簽到打卡系統【原創開發】https://blog.csdn.net/qq_59059632/article/details/118943638
https://blog.csdn.net/qq_59059632/article/details/118943638Jsp+Servlet圖書管理系統【原創開發】https://blog.csdn.net/qq_59059632/article/details/118656590
https://blog.csdn.net/qq_59059632/article/details/118656590
Jsp+Servlet圖書管理系統【原創開發】https://blog.csdn.net/qq_59059632/article/details/118656590https://blog.csdn.net/qq_59059632/article/details/118656590
Jsp+Servlet大學生社團管理系統【原創開發】https://blog.csdn.net/qq_59059632/article/details/119332395https://blog.csdn.net/qq_59059632/article/details/119332395
Jsp+Servlet在線點餐系統(原創)https://editor.csdn.net/md/?articleId=118831747https://editor.csdn.net/md/?articleId=118831747
Jsp+Servlet醫院掛號系統https://blog.csdn.net/qq_59059632/article/details/119424113https://blog.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
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta charset="utf-8">
<title>角色管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<%--<link rel="icon" href="favicon.ico">--%>
<link rel="stylesheet" href="${alfred}/resources/layui/css/layui.css" media="all"/>
<link rel="stylesheet" href="${alfred}/resources/css/public.css" media="all"/>
<link rel="stylesheet" href="${alfred}/resources/layui_ext/dtree/dtree.css">
<link rel="stylesheet" href="${alfred}/resources/layui_ext/dtree/font/dtreefont.css">
</head>
<body class="childrenBody">
<!-- 搜索條件開始 -->
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>查詢條件</legend>
</fieldset>
<form class="layui-form" method="post" id="searchFrm">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">角色名稱:</label>
<div class="layui-input-inline" style="padding: 5px">
<input type="text" name="rolename" autocomplete="off" class="layui-input layui-input-inline"
placeholder="請輸入角色名稱" style="height: 30px;border-radius: 10px">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">角色備注:</label>
<div class="layui-input-inline" style="padding: 5px">
<input type="text" name="roledesc" autocomplete="off" class="layui-input layui-input-inline"
placeholder="請輸入角色備注" style="height: 30px;border-radius: 10px">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">是否可用:</label>
<div class="layui-input-inline">
<input type="radio" name="available" value="1" title="可用">
<input type="radio" name="available" value="0" title="不可用">
</div>
</div>
<div class="layui-inline">
<button type="button" class="layui-btn layui-btn-normal layui-icon layui-icon-search layui-btn-radius layui-btn-sm" id="doSearch">查詢</button>
<button type="reset" class="layui-btn layui-btn-warm layui-icon layui-icon-refresh layui-btn-radius layui-btn-sm">重置</button>
</div>
</div>
</form>
<!-- 資料表格開始 -->
<table class="layui-hide" id="roleTable" lay-filter="roleTable"></table>
<div style="display: none;" id="roleToolBar">
<button type="button" class="layui-btn layui-btn-sm layui-btn-radius" lay-event="add">增加</button>
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm layui-btn-radius" lay-event="deleteBatch">批量洗掉</button>
</div>
<div id="roleBar" style="display: none;">
<a class="layui-btn layui-btn-xs layui-btn-radius" lay-event="edit">編輯</a>
<a class="layui-btn layui-btn-warm layui-btn-xs layui-btn-radius" lay-event="selectRoleMenu">分配選單</a>
<a class="layui-btn layui-btn-danger layui-btn-xs layui-btn-radius" lay-event="del">洗掉</a>
</div>
<!-- 添加和修改的彈出層-->
<div style="display: none;padding: 20px" id="saveOrUpdateDiv">
<form class="layui-form" lay-filter="dataFrm" id="dataFrm">
<div class="layui-form-item">
<label class="layui-form-label">角色名稱:</label>
<div class="layui-input-block">
<input type="hidden" name="roleid">
<input type="text" name="rolename" placeholder="請輸入角色名稱" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色備注:</label>
<div class="layui-input-block">
<input type="text" name="roledesc" placeholder="請輸入角色備注" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">是否可用:</label>
<div class="layui-input-inline">
<input type="radio" name="available" value="1" checked="checked" title="可用">
<input type="radio" name="available" value="0" title="不可用">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="text-align: center;padding-right: 110px">
<button type="button"
class="layui-btn layui-btn-normal layui-btn-md layui-icon layui-icon-release layui-btn-radius"
lay-filter="doSubmit" lay-submit="">提交
</button>
<button type="reset"
class="layui-btn layui-btn-warm layui-btn-md layui-icon layui-icon-refresh layui-btn-radius">重置
</button>
</div>
</div>
</form>
</div>
<%--角色分配選單的彈出層開始--%>
<div style="display: none" id="selectRoleMenu">
<ul id="menuTree" class="dtree" data-id="0"></ul>
</div>
<script src="${alfred}/resources/layui/layui.js"></script>
<script type="text/javascript">
var tableIns;
layui.extend({
dtree: '${alfred}/resources/layui_ext/dist/dtree'
}).use(['jquery', 'layer', 'form', 'table', 'dtree'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var dtree = layui.dtree;
//渲染資料表格
tableIns = table.render({
elem: '#roleTable' //渲染的目標物件
, url: '${alfred}/role/loadAllRole.action' //資料介面
, title: '用戶資料表'//資料匯出來的標題
, toolbar: "#roleToolBar" //表格的工具條
, height: 'full-150'
, cellMinWidth: 100 //設定列的最小默認寬度
, page: true //是否啟用分頁
, cols: [[ //串列資料
{type: 'checkbox', fixed: 'left'}
, {field: 'roleid', title: 'ID', align: 'center'}
, {field: 'rolename', title: '角色名稱', align: 'center'}
, {field: 'roledesc', title: '角色備注', align: 'center'}
, {
field: 'available', title: '是否可用', align: 'center', templet: function (d) {
return d.available == '1' ? '<font color=blue>可用</font>' : '<font color=red>不可用</font>';
}
}
, {fixed: 'right', title: '操作', toolbar: '#roleBar', align: 'center'}
]],
done:function (data, curr, count) {
//不是第一頁時,如果當前回傳的資料為0那么就回傳上一頁
if(data.data.length==0&&curr!=1){
tableIns.reload({
page:{
curr:curr-1
}
})
}
}
})
//模糊查詢
$("#doSearch").click(function () {
var params = $("#searchFrm").serialize();
//alert(params);
tableIns.reload({
url: "${alfred}/role/loadAllRole.action?" + params,
page:{curr:1}
})
});
//監聽頭部工具列事件
table.on("toolbar(roleTable)", function (obj) {
switch (obj.event) {
case 'add':
openAddRole();
break;
case 'deleteBatch':
deleteBatch();
break;
}
});
//監聽行工具事件
table.on('tool(roleTable)', function (obj) {
var data = obj.data; //獲得當前行資料
var layEvent = obj.event; //獲得 lay-event 對應的值(也可以是表頭的 event 引數對應的值)
if (layEvent === 'del') { //洗掉
layer.confirm('真的洗掉【' + data.rolename + '】這個角色么?', function (index) {
//向服務端發送洗掉指令
$.post("${alfred}/role/deleteRole.action", {roleid: data.roleid}, function (res) {
layer.msg(res.msg);
//重繪資料表格
tableIns.reload();
})
});
} else if (layEvent === 'edit') { //編輯
//編輯,打開修改界面
openUpdateRole(data);
}else if(layEvent === 'selectRoleMenu'){//分配權限
openselectRoleMenu(data);
}
});
var url;
var mainIndex;
//打開添加頁面
function openAddRole() {
mainIndex = layer.open({
type: 1,
title: '添加角色',
content: $("#saveOrUpdateDiv"),
area: ['600px', '300px'],
success: function (index) {
//清空表單資料
$("#dataFrm")[0].reset();
url = "${alfred}/role/addRole.action";
}
});
}
//打開修改頁面
function openUpdateRole(data) {
mainIndex = layer.open({
type: 1,
title: '修改角色',
content: $("#saveOrUpdateDiv"),
area: ['600px', '300px'],
success: function (index) {
form.val("dataFrm", data);
url = "${alfred}/role/updateRole.action";
}
});
}
//保存
form.on("submit(doSubmit)", function (obj) {
//序列化表單資料
var params = $("#dataFrm").serialize();
$.post(url, params, function (obj) {
layer.msg(obj.msg);
//關閉彈出層
layer.close(mainIndex)
//重繪資料 表格
tableIns.reload();
})
});
//批量洗掉
function deleteBatch() {
//得到選中的資料行
var checkStatus = table.checkStatus('roleTable');
var data = checkStatus.data;
layer.alert(data.length);
var params="";
$.each(data,function(i,item){
if (i==0){
params+="ids="+item.roleid;
}else{
params+="&ids="+item.roleid;
}
});
layer.confirm('真的要洗掉這些角色么?', function (index) {
//向服務端發送洗掉指令
$.post("${alfred}/role/deleteBatchRole.action",params, function (res) {
layer.msg(res.msg);
//重繪資料表格
tableIns.reload();
})
});
}
//打開分配選單的彈出層
function openselectRoleMenu(data) {
var menuTree;
mainIndex=layer.open({
type:1,
title:'分配【'+data.rolename+'】的角色',
content:$("#selectRoleMenu"),
area:['400px','500px'],
btnAlign:'c',
btn:['<div class="layui-icon layui-icon-release">確認分配</div>','<div class="layui-icon layui-icon-close">取消分配</div>'],
yes:function (index, layero) {
var nodes = dtree.getCheckbarNodesParam("menuTree");
var roleid = data.roleid;
var params="roleid="+roleid;
$.each(nodes,function (i, item) {
params+="&ids="+item.nodeId;
})
//保存角色和選單的關系
$.post("${alfred}/role/saveRoleMenu.action",params,function (obj) {
layer.msg(obj.msg);
//關閉彈出層
layer.close(mainIndex);
})
},
success:function (index) {
//初始化樹
menuTree = dtree.render({
elem: "#menuTree",
dataStyle: "layuiStyle", //使用layui風格的資料格式
response:{message:"msg",statusCode:0}, //修改response中回傳資料的定義
dataFormat: "list", //配置data的風格為list
checkbar:true,
checkbarType:"all",
checkbarData:"choose",
url: "${alfred}/role/initRoleMenuTreeJson.action?roleid="+data.roleid
});
}
})
}
});
</script>
</body>
</html>
RoleController.java
package com.bjpowernode.sys.controller;
import com.bjpowernode.sys.service.RoleService;
import com.bjpowernode.sys.utils.DataGridView;
import com.bjpowernode.sys.utils.ResultObj;
import com.bjpowernode.sys.vo.RoleVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import 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);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 修改角色
*/
@RequestMapping("updateRole")
public ResultObj updateRole(RoleVo roleVo) {
try {
this.roleService.updateRole(roleVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 洗掉角色
*/
@RequestMapping("deleteRole")
public ResultObj deleteRole(RoleVo roleVo) {
try {
this.roleService.deleteRole(roleVo.getRoleid());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
/**
* 批量洗掉角色
*/
@RequestMapping("deleteBatchRole")
public ResultObj deleteBatchRole(RoleVo roleVo) {
try {
this.roleService.deleteBatchRole(roleVo.getIds());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return 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);
return ResultObj.DISPATCH_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DISPATCH_ERROR;
}
}
}
RoleService.Java
package 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;
/**
*
*/
public interface RoleService {
/**
* 查詢所有角色回傳
* @param roleVo
* @return
*/
public List<Role> queryAllRoleForList(RoleVo roleVo);
/**
* 根據用戶id查詢用戶的可用角色
*/
public List<Role> 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 [] ids);
/**
* 加載角色管理分配選單的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;
import com.bjpowernode.sys.constant.SysConstant;
import com.bjpowernode.sys.domain.Menu;
import com.bjpowernode.sys.domain.Role;
import com.bjpowernode.sys.mapper.MenuMapper;
import com.bjpowernode.sys.mapper.RoleMapper;
import com.bjpowernode.sys.service.RoleService;
import com.bjpowernode.sys.utils.DataGridView;
import com.bjpowernode.sys.utils.TreeNode;
import com.bjpowernode.sys.vo.RoleVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 角色管理的服務介面
*
* 2020/2/17 13:55
*/
@Service
public class RoleServiceImpl implements RoleService {
@Autowired
private RoleMapper roleMapper;
@Autowired
private MenuMapper menuMapper;
/**
* 查詢所有選單回傳
* @param roleVo
* @return
*/
@Override
public List<Role> queryAllRoleForList(RoleVo roleVo) {
return roleMapper.queryAllRole(roleVo);
}
/**
* @param roleVo
* @param userId
* @return
*/
@Override
public List<Role> queryRoleByUserIdForList(RoleVo roleVo, Integer userId) {
return roleMapper.queryAllRole(roleVo);
}
/**
* 查詢所有角色串列
* @param roleVo
* @return
*/
@Override
public DataGridView queryAllRole(RoleVo roleVo) {
Page<Object> page = PageHelper.startPage(roleVo.getPage(),roleVo.getLimit());
List<Role> data = this.roleMapper.queryAllRole(roleVo);
return new DataGridView(page.getTotal(),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) {
//洗掉角色表的資料
this.roleMapper.deleteByPrimaryKey(roleid);
//根據角色id洗掉sys_role_menu里面的資料
this.roleMapper.deleteRoleMenuByRid(roleid);
//根據角色id洗掉sys_role_user里面的資料
this.roleMapper.deleteRoleUserByRid(roleid);
}
/**
* 根據前臺頁面傳來的陣列批量洗掉角色
* @param ids
*/
@Override
public void deleteBatchRole(Integer[] ids) {
for (Integer rid : ids){
deleteRole(rid);
}
}
@Override
public DataGridView initRoleMenuTreeJson(Integer roleid) {
//查詢所有的可用的選單
Menu menu = new Menu();
menu.setAvailable(SysConstant.AVAILABLE_TRUE);
List<Menu> allMenu = menuMapper.queryAllMenu(menu);
//根據角色ID查詢當前角色擁有的選單
List<Menu> roleMenu = menuMapper.queryMenuByRoleId(SysConstant.AVAILABLE_TRUE,roleid);
List<TreeNode> data = new ArrayList<>();
for (Menu m1 : allMenu) {
String checkArr = SysConstant.CODE_ZERO+"";
for (Menu m2 : roleMenu) {
if (m1.getId()==m2.getId()){
checkArr=SysConstant.CODE_ONE+"";
break;
}
}
Integer id = m1.getId();
Integer pid = m1.getPid();
String title = m1.getTitle();
Boolean spread = m1.getSpread()==SysConstant.SPREAD_TRUE?true:false;
data.add(new TreeNode(id,pid,title,spread,checkArr));
}
return new DataGridView(data);
}
@Override
public void saveRoleMenu(RoleVo roleVo) {
Integer rid=roleVo.getRoleid();
Integer [] mids=roleVo.getIds();
//根據rid洗掉sys_role_menu里面的所有資料
this.roleMapper.deleteRoleMenuByRid(rid);
//保存角色和選單的關系
for (Integer mid : mids) {
this.roleMapper.insertRoleMenu(rid,mid);
}
}
}
RoleMapper.java
package com.bjpowernode.sys.mapper;
import com.bjpowernode.sys.domain.Role;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*/
public interface RoleMapper {
int deleteByPrimaryKey(Integer roleid);
int insert(Role record);
int insertSelective(Role record);
Role selectByPrimaryKey(Integer roleid);
int updateByPrimaryKeySelective(Role record);
int updateByPrimaryKey(Role record);
/**
* 查詢角色
* @param role
* @return
*/
List<Role> 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里面的資料
* @param userid
*/
void deleteRoleUserByUid(Integer userid);
/**
* 根據用戶id查詢角色
* @param available
* @param userid
* @return
*/
List<Role> queryRoleByUid(@Param("available") Integer available,@Param("uid") Integer userid);
}
RoleMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bjpowernode.sys.mapper.RoleMapper">
<resultMap id="BaseResultMap" type="com.bjpowernode.sys.domain.Role">
<id column="roleid" jdbcType="INTEGER" property="roleid"/>
<result column="rolename" jdbcType="VARCHAR" property="rolename"/>
<result column="roledesc" jdbcType="VARCHAR" property="roledesc"/>
<result column="available" jdbcType="INTEGER" property="available"/>
</resultMap>
<sql id="Base_Column_List">
roleid, rolename, roledesc, available
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from sys_role
where roleid = #{roleid,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from sys_role
where roleid = #{roleid,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.bjpowernode.sys.domain.Role">
insert into sys_role (roleid, rolename, roledesc,
available)
values (#{roleid,jdbcType=INTEGER}, #{rolename,jdbcType=VARCHAR}, #{roledesc,jdbcType=VARCHAR},
#{available,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.bjpowernode.sys.domain.Role">
insert into sys_role
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="roleid != null">
roleid,
</if>
<if test="rolename != null">
rolename,
</if>
<if test="roledesc != null">
roledesc,
</if>
<if test="available != null">
available,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="roleid != null">
#{roleid,jdbcType=INTEGER},
</if>
<if test="rolename != null">
#{rolename,jdbcType=VARCHAR},
</if>
<if test="roledesc != null">
#{roledesc,jdbcType=VARCHAR},
</if>
<if test="available != null">
#{available,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.bjpowernode.sys.domain.Role">
update sys_role
<set>
<if test="rolename != null">
rolename = #{rolename,jdbcType=VARCHAR},
</if>
<if test="roledesc != null">
roledesc = #{roledesc,jdbcType=VARCHAR},
</if>
<if test="available != null">
available = #{available,jdbcType=INTEGER},
</if>
</set>
where roleid = #{roleid,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.bjpowernode.sys.domain.Role">
update sys_role
set rolename = #{rolename,jdbcType=VARCHAR},
roledesc = #{roledesc,jdbcType=VARCHAR},
available = #{available,jdbcType=INTEGER}
where roleid = #{roleid,jdbcType=INTEGER}
</update>
<!--查詢角色-->
<select id="queryAllRole" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from sys_role
<where>
<if test="rolename!=null and rolename!=''">
and rolename like concat("%",#{rolename},"%")
</if>
<if test="roledesc!=null and roledesc!=''">
and roledesc like concat("%",#{roledesc},"%")
</if>
<if test="available!=null">
and available=#{available}
</if>
</where>
</select>
<!--根據角色id洗掉sys_role_menu里面的資料 deleteRoleMenuByRid-->
<delete id="deleteRoleMenuByRid">
delete from sys_role_menu where rid=#{value}
</delete>
<!--根據角色id洗掉sys_role_user里面的資料deleteRoleUserByRid-->
<delete id="deleteRoleUserByRid">
delete from sys_role_user where rid=#{value}
</delete>
<!--保存角色和選單之間的關系-->
<insert id="insertRoleMenu">
insert into sys_role_menu(rid, mid) values(#{rid},#{mid})
</insert>
<!--根據用戶id洗掉sys_role_user里面的資料 deleteRoleUserByUid-->
<delete id="deleteRoleUserByUid">
delete from sys_role_user where uid=#{value}
</delete>
<!--根據用戶id查詢角色串列-->
<select id="queryRoleByUid" resultMap="BaseResultMap">
select t1.* from sys_role t1 inner join sys_role_user t2 on(t1.roleid=t2.rid) where t2.uid=#{uid}
</select>
</mapper>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302491.html
標籤:其他

