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

java三大框架整合做权限管理操作

2013-12-07 11:55 363 查看
关系都是多对多的关系,双向查找。

用户类:

[java] view
plaincopy

import java.util.Set;

public class RPMS_user {

private int userId;

private String userName;

private String userPass;

private Set<RPMS_role> roleId;

//生成get/set方法

}

映射文件:

[java] view
plaincopy

<hibernate-mapping package="com.softeem.dto">

<class name="RPMS_user" >

<id name="userId">

<generator class="native"/>

</id>

<property name="userName" />

<property name="userPass"></property>

<set name="roleId" table="RPMS_user_role" lazy="false" cascade="all">

<key column="userid"></key>

<many-to-many class="com.softeem.dto.RPMS_role" column="roleid"></many-to-many>

</set>

</class>

</hibernate-mapping>

下面的只说类,映射文件都差不多,理解下都可以写出来

角色类:

[java] view
plaincopy

public class RPMS_role {

private int roleId;

private String roleName;

private RPMS_owner ownerId;

private Set<RPMS_power> powerId;

private Set<RPMS_user> userId;

//生成get/set方法

}

权限类:

[java] view
plaincopy

public class RPMS_power {

private int powerId;

private String powerName;

private Set<RPMS_role> roles; //保存的多个角色

}

添加一个对象,在这里就不多说了,在这里最要是说下怎样来形成关系,和一些可能出现的错误:

添加形成关系:

[java] view
plaincopy

public String AddUserRole(){

//查找角色

role=uservice.selectRoleById(role);

Set<RPMS_role> set = new HashSet<RPMS_role>();

set.add(role);

//把角色添加到用户中

user.setRoleId(set);

uservice.addUser(user);

return SUCCESS;

}

这里举一个例子就好了,类似于增删改查的例子网上收索下一大堆:(自己琢磨下)

关键是说下,怎么从一个多对多的实例中添加或删除一条记录而不影响其他记录:

添加:

[java] view
plaincopy

/**

* 用于为角色添加对应的权限

* 先获取到选择的权限 以及角色

* 然后把权限保存到角色中去

**/

public String AddRolePower(){

if(chickid!=null&&chickid.size()>0){

for(int i=0;i<chickid.size();i++){

System.out.println(chickid.get(i));

RPMS_power pw = new RPMS_power();

pw.setPowerId(chickid.get(i));

power=uservice.selectPowerById(pw);

plist.add(power);

}

role=uservice.selectRoleById(role);

Set<RPMS_power> set = new HashSet<RPMS_power>();

for(int i=0;i<plist.size();i++){

set.add(plist.get(i));

}

role.setPowerId(set);

uservice.AddRolePower(role);

}

return SUCCESS;

}

删除:

[java] view
plaincopy

/**删除权限功能

* 先获取用户提交的权限

* 然后获取角色中有的权限

* 判断用户提交的权限在角色中是否存在

* 最后再对存在的权限进行删除功能

* **/

public String DelRolePower(){

if(chickid!=null&&chickid.size()>0){

role=uservice.selectRoleById(role);

for(int i=0;i<chickid.size();i++){

Iterator<RPMS_power> it =role.getPowerId().iterator();

while(it.hasNext()){

RPMS_power wer=it.next();

if(chickid.get(i)==wer.getPowerId()){

plist.add(wer);

}

}

}

for(int i=0;i<plist.size();i++){

role.getPowerId().remove(plist.get(i));

}

uservice.AddRolePower(role);

}

return SUCCESS;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: