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

  • Post author:
  • Post category:java


关系都是多对多的关系,双向查找。

用户类:

import java.util.Set;

public class RPMS_user {

	private int userId;
	private String userName;
	private String userPass;
	private Set<RPMS_role> roleId;

       //生成get/set方法
}

映射文件:

<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>

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

角色类:

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方法
}

权限类:

public class RPMS_power {

	private int powerId;         
	private String powerName;    
	private Set<RPMS_role> roles;    //保存的多个角色

}

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

添加形成关系:

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;
	}

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

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

添加:

/**
	 * 用于为角色添加对应的权限
	 *		先获取到选择的权限 以及角色
	 *		然后把权限保存到角色中去
	 **/
	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;
	}


删除:

/**删除权限功能
	 * 		先获取用户提交的权限
	 * 		然后获取角色中有的权限
	 * 		判断用户提交的权限在角色中是否存在
	 * 		最后再对存在的权限进行删除功能
	 * **/
	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;
	}



版权声明:本文为qq272936993原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。