[resolvido]login

Boas. Estou a fazer um login e tenho 2 tipos de login na BD, o administrador, que entra para uma pagina e todos os outros utilizadores que entram numa pagina diferente mas sempre que entro com o administrador manda-me para a pagina dos utilizadores normais.

[code]String pass;
String username;
username=jTextField1.getText();
pass=jPasswordField1.getText();

   String sql="select * from login where username=? and pass=?";
      try{
        pst=con.prepareStatement(sql);
        pst.setString(1,jTextField1.getText());
        pst.setString(2,jPasswordField1.getText());
        rs=pst.executeQuery();
    
          if(username=="administrador" && pass=="qwerty"){
                    ola s=new ola(con);
                    s.setVisible(true);
                    dispose(); 
                                                     }
       
             if(rs.next()){
               JOptionPane.showMessageDialog(null, "Bem vindo "+username+" ");
               pagprincipal fentrada=new pagprincipal(con);    
               fentrada.setVisible(true);
               dispose();
                          }
            else{
               JOptionPane.showMessageDialog(null, "Utilizador ou password incorretas");
                }
          }
        catch(Exception e){  
        JOptionPane.showMessageDialog(null,e);
                          }  [/code]

Alguem pode ajudar??

Cara tenta assim…

              
             
                 if(rs.next()){ 
                        if(username=="administrador" && pass=="qwerty"){  
                        ola s=new ola(con);  
                        s.setVisible(true);  
                        dispose();   
                 } else { 
                     JOptionPane.showMessageDialog(null, "Bem vindo "+username+" ");  
                     pagprincipal fentrada=new pagprincipal(con);      
                     fentrada.setVisible(true);  
                     dispose(); 
}

Lembre-se, quando for comparar String você deve utilizar o metodo equals(object) e não ==.

No caso:

if(username=="administrador" && pass=="qwerty")

Obrigado, esta a dar certo. Secalhar é melhor tirar a pass do codigo porque o admin pode querer mudar a pass algum dia e como o username é chave primaria nao pode existir outro utilizador com o mesmo nome

[quote=Sem_Nome]Lembre-se, quando for comparar String você deve utilizar o metodo equals(object) e não ==.

No caso:

if(username=="administrador" && pass=="qwerty") [/quote]

QUE ISSO JOVEM?

[quote=charleston10][quote=Sem_Nome]Lembre-se, quando for comparar String você deve utilizar o metodo equals(object) e não ==.

No caso:

if(username=="administrador" && pass=="qwerty") [/quote]

QUE ISSO JOVEM?[/quote]

Estou apontando a ele que do jeito que ele fez, usar == para comparar Strings (ou qualquer outro tipo de objeto), está errado. Ao menos, não trará o resultado desejado.

E também esqueci de dizer que é uma boa prática sempre invocar o metodo equals da constante, para evitar um NullPointerException.

Sim é certo, nao tinha reparado nesse pormenor, se voce nao me tivesse dito provavelmente ia estar aqui montes de tempo ate reparar

[quote=Sem_Nome][quote=charleston10][quote=Sem_Nome]Lembre-se, quando for comparar String você deve utilizar o metodo equals(object) e não ==.

No caso:

if(username=="administrador" && pass=="qwerty") [/quote]

QUE ISSO JOVEM?[/quote]

Estou apontando a ele que do jeito que ele fez, usar == para comparar Strings (ou qualquer outro tipo de objeto), está errado. Ao menos, não trará o resultado desejado

E também esqueci de dizer que é uma boa prática sempre invocar o metodo equals da constante, para evitar um NullPointerException.[/quote]

Sim, voce ta certo, nao to falando oq vc comentou, mas o codigo com ==…

Hehe é que você deu um quote na minha resposta então pensei que era direcionada para mim.