java后台一般有一个权限管理模块,控制用户访问资源或者页面操作按钮。
最近一个项目也需要用到该功能,该管理模块模仿Easyui视频作者孙宇的权限管理系统,详细请见:
http://yusun.iteye.com/blog/1527018
打算分3篇博文将设计思路与关键代码记录下来,以备有需要的同学使用:
这一篇主要讲数据库结构:使用Mysql数据库
1、建立资源表(tresource),该表主要添加系统的访问资源,有父级级联关系,所以需要添加pid字段。
pid需要设置外键,自引用id
测试数据如下:
2、建立角色表(trole),该表负责记录系统的角色
该表有2列 id(varchar 36) text(varchar 200)
id:角色id
text:角色显示名,如:超级管理员,普通管理员
3、建立角色资源对应表(trole_tresource),该表负责关联角色表与资源表。
通过外键关联另外两张表 ,role_id映射role表id,resource_id映射resource表id,具体操作见表1的建立。
4、建立用户表(tuser)
5、建立用户角色对应表(tuser_trole)
该表 字段如下:
id : varchar(36)
role_id:varchar(36) 外键 对应角色表role.id
user_id:vatchar(36) 外键 对应用户表user.id
外键建立参照表1
6、使用hibernate反向工程生成model层
这样就能自动生成实体类之间的对应关系:如下所示:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "role_id", nullable = false)
public Trole getTrole() {
return this.trole;
}
public void setTrole(Trole trole) {
this.trole = trole;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "resource_id", nullable = false)
public Tresource getTresource() {
return this.tresource;
}
public void setTresource(Tresource tresource) {
this.tresource = tresource;
}