方法一:
一般用这种比较多的,3个模块:用户模块、角色模块、菜单模块,对应数据库表:用户表、角色表、菜单表、用户角色表、角色菜单表,这种方法实现思路表结构都清晰明确,当然也存在一个弊端:菜单表添加菜单时,因为菜单中存在父子关系,不懂技术的添加菜单表容易出错

表结构:
用户表
`id` INT
`login_name` VARCHAR
`password` VARCHAR
`user_name` VARCHAR
角色表
`id` INT
`role_name` VARCHAR
`role_describe` VARCHAR
菜单表(此表定义以下字段,是因为前端是vue写的,可根据自己选择的框架调整字段):
`id` INT
`path` VARCHAR
`component` VARCHAR
`menu_name` VARCHAR
`menu_type` VARCHAR
`parent_id` VARCHAR
`enabled` VARCHAR
`group_id` VARCHAR
用户角色表(用户分配角色,使用此表)
`id` INT
`user_id` INT 用户表id
`role_id` INT 角色表id
角色菜单表(角色分配菜单使用此表)
`id` INT
`menu_id` INT 菜单表id
`role_id` INT 角色表id

方法二:
这是一个简化版本的,但实现起来比较简单,对于方法一,砍掉了角色,对于小项目来说比较适合。两个模块:用户模块,权限模块,对应数据库表:用户表、权限表,这里用户表和方法一的用户表基本相同,可以根据需要添加部门字段,权限表中不存放菜单信息,菜单信息存放到前端,可以是一个json格式,但表中要存菜单对应的id,用户id,这就和用户表关联起来了。
前端查询用户表,显示用户列表,点击某个用户时,查询其权限列表,显示对应的权限列表(树形结构的),已经拥有的权限是勾选状态。

用户表
`id` INT
`login_name` VARCHAR
`password` VARCHAR
`user_name` VARCHAR
`department` VARCHAR
权限表
`id` INT
`resource_id` INT 此字段对应前端的菜单id
`user_id` INT 用于关联用户表

java实现用户权限模块两种方法相关推荐

  1. mysql查询_MySQL查看用户权限的两种方法

    MySQL查看用户权限命令的两方法: 一. 使用MySQL grantsmysql> show grants for username@localhost;实例:mysql> show g ...

  2. JAVA获取安卓系统下usb_Android 获取 usb 权限的两种方法

    前言: 最近工作上遇到几个USB模块在android平台上适配使用的情况,所以要用到USB权限获取问题 ##USB权限获取有以下2种方式: 一.直接在AndroidManifest.xml文件中进行如 ...

  3. 计算机用户没有管理员权限,教你让win7系统电脑普通账户拥有管理员权限的两种方法...

    在ghost win7系统电脑中如果没有管理员权限,是没办法打开一些程序.文件的,甚至删除一些文件也要有管理器权限,不然就会提示"您的权限不足,请点击继续来获得权限."那么怎么让一 ...

  4. 进Linux系统单用户模式,Linux进入单用户模式的两种方法

    单用户模式的作用 在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况. 遇到这种情况,一般情况下,维护人员就会通过最常用的方 ...

  5. root android oppo,OPPO R9S怎么ROOT oppor9s获取root权限的两种方法

    OPPO R9S如何ROOT呢?作为一款最新的OPPO系列智能手机,对于刚入手的用户而言,可能不知该如何获取OPPO R9S手机ROOT权限.下面就与大家分享一下获取OPPO R9S手机ROOT权限的 ...

  6. 进入root权限的两种方法

    *进入root权限的两种方法 第一种方法:sudo(暂时的):使用root权限而不是直接进入, sudo + <指令> 第二种方法:root(非暂时的):输入sudo passwd roo ...

  7. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

  8. 小程序获取用户信息的两种方法

    小程序获取用户信息的两种方法 第一种使用 getUserProfile 代码示例 第二种使用 头像昵称填写 相信大家之前也经常使用open-data获取用户的头像和昵称吧,但微信的这个改编意味着我们要 ...

  9. JAVA中初始化线程的两种方法_java中最简单的方式新起一个线程

    启动一个线程 在一个方法中启动一个线程,有两种方法 第一种是让类实现Runable接口,这样的话编译器就会提示你实现里面的未实现的方法(就是run方法) 第二种是,现在方法中new一个线程,然后直接调 ...

最新文章

  1. 6.1.Scrapy项目
  2. linux u8 头文件,2019-12-11 转载TCP/IP编程常用C语言头文件
  3. Eclipse 中查看一个方法被哪些对象引用了
  4. html 自动隐藏属性,隐藏(属性) | hidden (attribute)
  5. fortran还是python_Fortran 还有存在的必要吗?
  6. [Windows]_[0基础]_[Release程序的崩溃报告minidump解决方式]
  7. 性冷淡风的麻将,获红点奖!网友:没有烟火气了
  8. python表格处理免费教程_手把手教你用Python处理Excel表格
  9. Android应用删除顶部标题栏
  10. Sentry的安装搭建与使用
  11. svn和git下载安装
  12. 华氏温度转换为摄氏温度,c语言实例一
  13. [论文评析]Long-Tail Learning via Logit Adjustment,ICLR,2021
  14. 51nod1538: 一道难题(特征多项式+多项式取模/求逆)
  15. linux开发员用游戏本吗,为什么很多程序员使用thinkpad而不是同等价位的游戏本呢?...
  16. 用电脑怎么快速抠图?怎么把图片抠成透明背景?
  17. 打造高效的项目团队,促进项目进度管理
  18. websocket 客户端测试工具
  19. day1-python基础1
  20. 津津的储蓄计划 NOIp提高组2004

热门文章

  1. 【通信】【2】《宽带太赫兹通信技术》的笔记和一些简单的词汇的意思(误
  2. Javascript日期和时间戳(毫秒/秒)相互转化,日期分隔符不同转化结果不同
  3. Delphi第三方插件的安装
  4. 大数据标签获取处理步骤_基于大数据的用户深层标签挖掘方法与流程
  5. HDMI转MIPI DSI芯片TC358870XBG
  6. java gc 时间_Java GC日志查看,GC日志时间分析
  7. 反编译简书app和小红书app滑动效果sticky粘性头布局的实现CoordinatorLayout+behavior
  8. 关于孩子如何进行艺术教育的思考(一)
  9. 计算机室管理员管理格言,计算机老师的教育格言
  10. Android Studio中配置Genymotion模拟器