public class AddRole {
    Connection con=null;
    Vector vu=null;
    public AddRole() {
        con=Pub.connectBase();
        User us=new User();
        us.connectDatabase();
        vu=us.getAllUser();
        us.closeDatabase();
    }    public Vector addView(String dirCode){
        String sql="select DirId from T_OA_DirInfo where MasDir=?";
        Vector vv=new Vector();
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            ps=con.prepareStatement(sql);
            ps.setString(1,dirCode);
            rs=ps.executeQuery();
            while(rs.next()){
                vv.add(rs.getString(1));
                rs.close();
            ps.close();
        }catch(Exception ex){
            System.out.println(ex);
        }finally{
            return vv;
        }
    }
    public void addUser(String dirId){
        PreparedStatement pst=null;
        String sq="Insert into docViewRole (userId,DirId ) Values ";
        sq=sq+" (?,?)";
        for(int j=0;j<vu.size();j++){
            try{
                User use=(User)vu.elementAt(j);
                if(!this.isE(dirId,use.getAccount())){
                pst=con.prepareStatement(sq);
                pst.setString(1,use.getAccount());
                pst.setString(2,dirId);
                pst.executeUpdate();
                pst.close();
                }
            }catch(Exception es){
                System.out.println(es);
            }
        }
    }    public void add(String dr){
        Vector vt=this.addView(dr);
        for(int i=0;i<vt.size();i++){
            this.addUser((String)vt.elementAt(i));
            this.add((String)vt.elementAt(i));
        }
    }
    public void addAll(String dr){
        this.addUser(dr);
        this.add(dr);
    }
    private boolean isE(String dr,String user){
        String sl="select DirId from docViewRole  where (userId=?)and(DirId=?)";
        PreparedStatement pst=null;
        boolean b=false;
        ResultSet rs=null;
        try{
            pst=con.prepareStatement(sl);
            pst.setString(1,user);
            pst.setString(2,dr);
            rs=pst.executeQuery();
            b=rs.next();
            pst.close();
        }catch(Exception es){
            System.out.println(es);
        }
        return b;
    }
    public static void main(String[] args) {
        AddRole a = new AddRole();
        a.add("0001");
    }