📄 roleprivilegedao.java
字号:
/**
*
*/
package com.qrsx.appcam.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.qrsx.appcam.model.Privilege;
import com.qrsx.appcam.model.Role;
import com.qrsx.appcam.model.RolePrivilege;
/**
* 创建,删除权限都是以一个列表为参数的.
* 每次从角色权限编辑页面提交时,先在Action中判断
* 具体做法是先从数据库中检索该角色所拥有的权限
* 然后与用户提交的privilegeId进行比较,原来数据库中存在的privilegeID而用户
* 提交的privilegeID中没有的,要对这些privilegeID进行删除.
* 反之原来数据库中没有而用户提交了的privilegeId要进行插入.
* @author 张清华
*
*/
public class RolePrivilegeDAO extends BaseDAO {
/**
* 创建角色权限绑定
* @param list
* @throws SQLException
*/
public void create(RolePrivilege rolePrivilege)throws SQLException{
Integer[] privilegeIds=rolePrivilege.getPrivilegeIds();
for(int i=0,n=privilegeIds.length;i<n;i++){
String sql = "insert into roleprivilege( roleId,privilegeId) values(?,?)";
//设置参数值
ps=conn.prepareStatement(sql);
ps.setInt(1, rolePrivilege.getRoleId());
ps.setInt(2, privilegeIds[i]);
//执行
ps.executeUpdate();
}
}
/**
* 删除角色权限绑定
* @param list
* @throws SQLException
*/
public void delete(Integer roleId,Integer privilegeId)throws SQLException{
String sql = "delete from roleprivilege where roleId=? and privilegeId=?";
//设置参数值
ps=conn.prepareStatement(sql);
ps.setInt(1, roleId);
ps.setInt(2, privilegeId);
//执行
ps.executeUpdate();
}
/**
* 返回角色所绑定的所有权限ID
* @param roleId
* @return
* @throws SQLException
*/
public RolePrivilege list(Integer roleId)throws SQLException{
String sql = "select * from roleprivilege where roleId=?";
//执行查询
ps=conn.prepareStatement(sql);
ps.setInt(1, roleId);
ResultSet rs = ps.executeQuery();
//将查询结果组装至RolePrivilege实体对象
RolePrivilege rolePrivilege1 = new RolePrivilege();
ArrayList<Integer> list=new ArrayList<Integer>();
//privileges[]=rolePrivilege1.getPrivilegeIds();
int i=0;
while(rs.next()){
rolePrivilege1.setRoleId(rs.getInt("roleId"));
list.add(rs.getInt("privilegeId"));
i++;
}
Integer[] privilegeIds=new Integer[i];
for(int j=0;j<i;j++){
privilegeIds[j]=list.get(j);
System.out.println("j=="+j);
}
rolePrivilege1.setPrivilegeIds(privilegeIds);
return rolePrivilege1;
}
/**
* 返回当前用户还不具有的权限
* @param roleId
* @return
* @throws SQLException
*/
public List<Privilege> assemble(Integer roleId)throws SQLException{
PrivilegeDAO dao=new PrivilegeDAO();
List<Privilege> list=dao.assemble(roleId);
return list;
}
/**
* 查找指定角色拥有的权限
* @param role
* @return
* @throws SQLException
*/
public List<Privilege> findPrivileges(Role role)throws SQLException{
String sql = "select privilegeId from roleprivilege where roleId=?";
ps=conn.prepareStatement(sql);
ps.setInt(1, role.getId());
ResultSet rs=ps.executeQuery();
Privilege privilege=null;
List<Privilege> list=new ArrayList<Privilege>();
PrivilegeDAO dao=new PrivilegeDAO();
while(rs.next()){
privilege=dao.findById(rs.getInt("privilegeId"));
list.add(privilege);
}
return list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -