java实习_day05

中软国际实训第五天——实现角色管理的数据库以及初步操作

在昨天实现了角色管理的增添查改与分页之后,在今天我们需要将不同的用户分类,以保证在用户是不同权限时,可以对所需的信息进行展示。

要对角色管理,我们就需要在数据库中创建两张表tb_role与user_role。
在这里插入图片描述
在这里插入图片描述

在项目的对应文件夹下建立接口与实现的类,这里我们在bean包中新建一个Role类和UserRole类其中这两个类对应数据库中tb_role表和user_role表对应的实体类

Role类:

public class Role {
    private int id;
    private String rolename;
    private String roledesc;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getRolename() {
        return rolename;
    }

    public void setRolename(String rolename) {
        this.rolename = rolename;
    }

    public String getRoledesc() {
        return roledesc;
    }

    public void setRoledesc(String roledesc) {
        this.roledesc = roledesc;
    }

    @Override
    public String toString() {
        return "Role{" +
                "id=" + id +
                ", rolename='" + rolename + '\'' +
                ", roledesc='" + roledesc + '\'' +
                '}';
    }
}

UserRole类:

public class UserRole {
    private int id;
    private int userId;
    private int roleId;
    public UserRole(){

    }

    public UserRole(int id, int userId, int roleId) {
        this.id = id;
        this.userId = userId;
        this.roleId = roleId;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public int getRoleId() {
        return roleId;
    }

    public void setRoleId(int roleId) {
        this.roleId = roleId;
    }

    @Override
    public String toString() {
        return "UserRole{" +
                "id=" + id +
                ", userId=" + userId +
                ", roleId=" + roleId +
                '}';
    }
}

mybatis配置:
在dao目录下建立一个接口RoleDao,创建相应的接口来具体实现角色权限管理

public interface RoleDao {
    List<Integer> findRoleIdByUserId(int userId);

    List<Role> findRoleByUserId(int id);

    void addRole(UserRole userRole);

新建RoleMappe.xml实现Dao接口,也就是对数据库进行操作,本质是mybatis的配置文件

<?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.zhongruan.dao.RoleDao" >
    <select id="findRoleIdByUserId" parameterType="int" resultType="int">
        select roleId from user_role where userId=#{userId};
    </select>

    <select id="findRoleByUserId" parameterType="int" resultType="role">
        select * from tb_role where id not in (select roleId from user_role where userId=#{id})
    </select>

    <insert id="addRole" parameterType="userRole">
        insert into user_role (userId,roleId) values (#{userId},#{roleId})
    </insert>

</mapper>

service层:
在UserController中控制不同页面的跳转控制页面跳转以及前端后台数据传递的类

@RequestMapping("toAddRole.do")
    public ModelAndView toAddRole (int id){
        List<Role> roleList = roleService.findRoleByUserId(id);
        ModelAndView mv = new ModelAndView();
        mv.addObject("roles",roleList);
        mv.addObject("id",id);
        mv.setViewName("user-role-add");
        return mv;
    }

    @RequestMapping("addRole.do")
    @ResponseBody
    public String add(String roleList,String userId){
        String[] strs = roleList.split(",");
        List<Integer> ids = new ArrayList<>();
        for(String s:strs){
            ids.add(Integer.parseInt(s));
        }
        roleService.add(ids,userId);
        return "";
    }

web层:

<tbody>
    <c:forEach items="${pageInfo.list}" var="user">
        <tr>
            <td><input id="ids" name="ids" type="checkbox" value="${user.id}"></td>
            <td>${user.id}</td>
            <td>${user.username}</td>
            <td>${user.password}</td>
            <td class="text-center">
                <a href="/user/toUpdate.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a>
                <a href="/user/deleteById.do?id=${user.id}" class="btn bg-olive btn-xs">删除</a>
                <% List<Integer> roleIds = (List<Integer>) session.getAttribute("roleIds");%>
                <% if (roleIds.contains(1)){%>
                <a href="/user/toAddRole.do?id=${user.id}">添加角色</a>
                <% } %>
            </td>
        </tr>
    </c:forEach>
    
</tbody>

之后修改用户管理出标签,添加一个判断结构。

<li id="system-setting">
	<security:authorize access="hasRole('ADMIN')">
		<a
		href="${pageContext.request.contextPath}/user/findAll.do?pages=1&size=5"> <i
			class="fa fa-circle-o"></i> 用户管理
		</a>
	</security:authorize>
</li>
 access="hasRole('ADMIN')">
		<a
		href="${pageContext.request.contextPath}/user/findAll.do?pages=1&size=5"> <i
			class="fa fa-circle-o"></i> 用户管理
		</a>
	</security:authorize>
</li>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值