📄 powermanager.java
字号:
//插入用户 public void insertPowerUser(String userSign){ int usrid = getKeyId("poweruser","usrid") ; String strusrid = Integer.toString(usrid); String temp ="("+strusrid+",'','password','','','','','','"+userSign+"')"; sql="insert into poweruser values "+ temp; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; db.executeUpdate(m_Connection,sql) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ System.out.println(e.getMessage()) ; } } //修改表内容 public void updateTable(String tableName,String Key,String keyValue,String columnName,String columnValue){ sql="update "+tableName+" set "+columnName +"='"+ct.ChineseStringToAscii(columnValue)+"' where "+Key+"='"+ct.ChineseStringToAscii(keyValue)+"'"; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; db.executeUpdate(m_Connection,sql) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ System.out.println(e.getMessage()) ; } } //删除用户 public void delPowerUser(String userSign){ sql="delete from poweruser where usrsign='"+userSign+"'"; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; db.executeUpdate(m_Connection,sql) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ System.out.println(e.getMessage()) ; } } //插入权限模块 public String insertPowerMod(Vector vColumn){ int ierr=0; String err=""; int powerid = getKeyId("powermod","powerid"); String strpowerid = Integer.toString(powerid); String temp =""; //判断ID是否已存在,如果存在执行修改操作,否则执行添加操作 //int nowpowerid = vColumn.elementAt(0) ; String tempsql="select powerid from powermod where powerid="+vColumn.elementAt(0).toString(); //插入语句 try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; rs=db.executeQuery(m_Connection,tempsql) ; if(rs.next()){ temp = temp+"set powerpath='"+ct.ChineseStringToAscii(vColumn.elementAt(1).toString())+"'," ; temp = temp+"powername='"+ct.ChineseStringToAscii(vColumn.elementAt(2).toString())+"'," ; temp = temp+"powerdes='"+ct.ChineseStringToAscii(vColumn.elementAt(3).toString())+"' "; temp = temp +"where powerid = "+vColumn.elementAt(0).toString(); sql="update powermod "+temp; rs.close() ; } else{ for(int i=1;i<vColumn.size()-1 ;i++){ temp=temp+"'"+ct.ChineseStringToAscii(vColumn.elementAt(i).toString())+"'," ; } temp="("+strpowerid+","+temp.substring(0,temp.length()-1)+")"; sql="insert into powermod values "+ temp; //将对应的权限位置为0 String powersql="select grpid,grppower from powergroup"; ResultSet rest = db.executeQuery(m_Connection,powersql) ; while(rest.next()){ String grpid = rest.getString(1) ; String power = rest.getString(2) ; //System.out.println("pwerlength:"+power.length()); ; power = power.substring(0,powerid)+"0"+power.substring(powerid+1,power.length()); String respowersql ="update powergroup set grppower='"+power+"' where grpid="+grpid; db.executeUpdate(m_Connection,respowersql) ; //System.out.println("result powersql:"+respowersql+"dddd"+power.length()) ; } rest.close() ; } //在dbm表中加入权限位 if(vColumn.elementAt(4).toString().equals("dbm")){ String strtmp = vColumn.elementAt(1).toString(); int index=1; Vector vTemp = new Vector(); int i ; for(i =1;i<strtmp.length()-1;i++){ if(strtmp.substring(i,i+1).equals(",")){ vTemp.addElement(strtmp.substring(index,i)); index = i+1; } } vTemp.addElement(strtmp.substring(index,i)) ; Object[] arrPath = vTemp.toArray(); //for(int j=0;j<arrPath.length;j++){ // System.out.println(arrPath[j]) ; //} String pwrsql=""; //System.out.println("arrparth.length="+arrPath.length) ; if(arrPath.length == 2 ) pwrsql="update dbsource set powersite='"+strpowerid+"' where dbsname='"+ct.ChineseStringToAscii(arrPath[1].toString().trim())+"'"; //System.out.println("pwrsql="+pwrsql) ; if(arrPath.length == 3) pwrsql="update dbtable set powersite = '"+strpowerid+"' where dbttype = '"+ct.ChineseStringToAscii(arrPath[2].toString().trim())+"' and dbsid in (select dbsid from dbsource where dbsname = '"+ct.ChineseStringToAscii(arrPath[1].toString().trim())+"')"; //System.out.println("pwrsql="+pwrsql) ; db.executeUpdate(m_Connection,pwrsql) ; //System.out.println("pwrsql="+pwrsql) ; } ierr=db.executeUpdate(m_Connection,sql) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ err=e.getMessage().toString(); //System.out.println("err:"+err) ; } if(ierr>0){ err="success"; } return err; } //判断权限块中是否存在该权限 public boolean isSetPower(String powerpath){ boolean isSet = false; sql="select * from powermod where powerpath='"+ct.ChineseStringToAscii(powerpath)+"'"; //System.out.println("ispowerset:"+sql) ; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; rs = db.executeQuery(m_Connection,sql) ; if(rs.next()) isSet=true; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ //err=e.getMessage().toString(); return false; //System.out.println("err:"+err) ; } return isSet; } // 删除权限块 public String delPowerMod(String keyValue){ int ierr=0; String err=""; sql="delete from powermod where powerid="+keyValue; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; ierr=db.executeUpdate(m_Connection,sql) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ err=e.getMessage().toString(); //System.out.println("err:"+err) ; } if(ierr>0){ err="success"; } return err; } //根据用sign取用户权限 public String getUserPower(String usrsign){ sql="select grpid from poweruser where usrsign='"+usrsign+"'"; String grpid=""; String strPower=""; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; rs = db.executeQuery(m_Connection,sql) ; if(rs.next()){ grpid=rs.getString(1); } Object[] arrGrpId = ct.toArray(grpid,"@");//用户组id数组 //Object[][] arrTempPower; Vector vTempPower=new Vector(); for(int i=0;i<200;i++) vTempPower.addElement("0") ;//初始化向量 for(int i=0;i<arrGrpId.length ;i++){ Object[] tmpPower = getGroupPowerforGrpid(arrGrpId[i].toString());//组权限数组 for(int j=0;j<tmpPower.length ;j++){ //多组权限的并集 int iPower1 = Integer.parseInt(vTempPower.elementAt(j).toString()); int iPower2 = Integer.parseInt(tmpPower[j].toString()); if(iPower2>iPower1){ vTempPower.setElementAt(Integer.toString(iPower2),j); ; } } } for(int i=0;i<vTempPower.size();i++){ strPower = strPower+vTempPower.elementAt(i).toString() ; } //test:System.out.println("length1="+strPower) ; objDBConnection.freeConnection("access",m_Connection) ; } catch(Exception e){ } return strPower; } //取用户权限模块,模块取路径的第一个值 public Vector getvPowerMod(String usersign){ String strPower=getUserPower(usersign); //System.out.println(strPower) ; int pid=0; String modPath=""; String tempMod=""; Vector vMod = new Vector(); Vector vTmpMod = new Vector(); sql="select powerid,powerpath from powermod order by powerpath"; try{ db=new DBAccess(); objDBConnection=objDBConnection.getInstance() ; m_Connection = objDBConnection.getConnection("access") ; rs=db.executeQuery(m_Connection,sql) ; while(rs.next()){ pid=rs.getInt(1) ; modPath=rs.getString(2); //System.out.println(modPath) ; if(modPath.indexOf(",")>0){ modPath = modPath.substring(0,modPath.indexOf(","))+"]"; } String tmp = strPower.substring(pid,pid+1) ; int itmp=Integer.parseInt(tmp) ; if(itmp>0){ vTmpMod.addElement(modPath) ; } } rs.close() ; objDBConnection.freeConnection("access",m_Connection) ; //过虑重复的模块 tempMod=ct.AsciiToChineseString(vTmpMod.elementAt(0).toString()) ; vMod.addElement(tempMod) ; for(int i=1 ;i<vTmpMod.size() ;i++){ if(!vTmpMod.elementAt(i).toString().equals(tempMod)){ tempMod=vTmpMod.elementAt(i).toString() ; vMod.addElement(ct.AsciiToChineseString(tempMod)) ; } } } catch(Exception e){ e.getMessage() ; } return vMod; } /************************************************************** 取用户属性 ChineseTransfer ct = new ChineseTransfer(); System.out.println("del:"+ct.delStr("11@","11")); ***************************************************************/ public Vector vGetUsrId(){ return vUsrId; } public Vector vGetUsrName(){ return vUsrName; } public Vector vGetUsrPin(){ return vUsrPin; } public Vector vGetUsrMail(){ return vUsrMail; } public Vector vGetUsrPhone(){ return vUsrPhone; } public Vector vGetUsrAddress(){ return vUsrAddress; } public Vector vGetUsrDes(){ return vUsrDes; } public Vector vGetUsrGrpId(){ return vUsrGrpId; } public Vector vGetUsrSign(){ return vUsrSign; } //取用户属性结束*************************************************** /**************************************************************** *取用户组信息 *****************************************************************/ public Vector vGetGrpId(){ return vGrpId; } public Vector vGetGrpName(){ return vGrpName; } public Vector vGetGrpPower(){ return vGrpPower; } public Vector vGetGrpDes(){ return vGrpDes; } //取用户组属性结束*************************************************** /************************************************************** *取权限块属性 ***************************************************************/ public Vector vGetPowerId(){ return vPowerId; } public Vector vGetPowerPath(){ return vPowerPath; } public Vector vGetPowerName(){ return vPowerName; } public Vector vGetPowerDes(){ return vPowerDes; } public String getSQL(){ return sql; } public static void main(String[] args){ PowerManager pw = new PowerManager(); Vector vmp=pw.getvPowerMod("0000") ; // for(int i=0 ;i<vmp.size() ;i++){ // System.out.println("mod:"+vmp.elementAt(i)) ; // } //pw.insertPowerGroup("grop3"); //System.out.println("sql="+pw.getUserPower("0002")); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -