您的位置:首页 > 编程语言 > Java开发

java权限管理

2011-08-31 21:25 120 查看
此教程适用于基础基础学者
好了大家好 今天交大家做java的权限模块
这个权限表有三张表 分别是用户表(sp_admin_user)
权限表(sp_admin_action)
还有就是右侧为用户赋权的表(sp_allotstr)

大家记住哈此权限表从不存在继承映射 什么一对一啊 什么多对多啊 都不存在 纯数据库与数据库之间的查询 因为本人在做权限前 想的太多了 所以没有做出来 不知道是什么外键关系什么的怎么连 但后来才发现根本没关系

首先大家看这张图吧
每个用户都有不同的权限比如此表中有zhou用户还有admin用户




这个小疙瘩就是权限分配了 下面为大家展示下权限分配页面吧



这个就是为用户赋权限的了
好了 功能展示就到这里 下面就是教大家如何去做权限模块了 有些说的很罗嗦 所以大家 当小说看吧!!!

这两个用户就是在登录时候输入的用户名和密码



比如咱们登录zhou这个用户
只有这两个权限



而我用admin登录就会有



所有权限



在这个上面 大家必须得有个用户表是吧 要没登录 怎么能有权限呢(感觉是废话 呵呵) 验证用户就不用我说了吧 自己做用户登录验证吧

首先给大家看下用户表吧 这里我用的是oracle数据库



这个是user表action_list 就是权限关系表了 上面所对应的21,64,146,21,72,22就是对应的权限表的,admin的action_list里的all知道什么意思吧 就是所有权限了

然后为大家看下权限表吧



这个就是权限表了字段很多吧

首先就是action_id 这个action_id就是对应用户表里的action_list里的字段 如果你想有什么权限就给用户表里的action_list添加字段就行了 切记是 多少多少逗号多少多少 因为这个是用的select * from sp_admin_action t where action_id in (21,64,146,21,72,22)
这个用的是 where……in…… 大家知道什么是where……in……嘛?
起初我是不知道这个是什么意思但后来才知道 原来where in的意思就是比如我从权限表查用户表的action_list里的对应的权限这里用户表里的action_list字段本人就不查了 你们自己查吧 我就写个假数据



然后就把相应的字段取出来 所对应的数据也就出现了比如我登陆的是zhou 那对应的权限就是这些数据



然后前台页面也给你看下吧



知道为什么输入这么多的id却出现了只有两个商品列表?看这个表格




(注:商品管理为一级菜单俗称父菜单商品列表为二级菜单就是所谓的子菜单)

这里其实用到了一个父id的概念 就是通过父亲可以找出儿子的概念(感觉有点搞笑哦!!!)
Ismenu这个字段就是一个二级菜单的显示与隐藏

如果为1的话就是显示此菜单 如果为0则是隐藏那么我们看



这两个 然后在看上面的图


这两个就是显示出来的 数据库这样查询大家应该会吧 就是显示出来数据 jsp稍加判断是0隐藏是1显示总会吧 这个就够太太太简单的了 然后就是该到显示父菜单了吧



看这个表parent_id就是父id对应的子id了 parent_id里显示1的都是为父id(就是所指的action_id)了 然后就是根据父亲


显示出



两个列表

最后在页面中显示出

这样的效果

这里增删改查我就不用为大家做了吧 简单的查看大家还不会啊(相信你们都是有志青年)



剩下的就是这个表了

首先大家看一下这个显示页面所对应的表吧



哇数据一大堆 呵呵 是不是有点雷人
在这里parent_id 就是对应的用户表的cation_id 就是获得父的name


这里商品管理就是那个父id了
然后大家用sql取出用户表对应的字段就ok了 然后就是赋权了 给哪个用户赋权 就勾选哪个 然后在数据库里生成什么样的权限



这里 priv_array就是

所对应的action_list这里会给所有的数据赋给用户表 父子查询显示数据上面我已经说过了 这里你自己做就ok了 呵呵

本文出自 “爱步stop” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: