Comparar string do bd e digitada pelo usuario

9 respostas
L

nao to conseguindo comparar elas

sempre fala que ta incorreto
mesmo sendo com alguma que exista no banco de dados
na pagina html eu digito num formulario o nome usuario e senha
ai ele chama o servlet pra verifica se o usuario existe no banco de dados
mas sempre diz invalido

olha o pedaço do codigo que faz isso

String nome = request.getParameter(“nomeusu”);

String senha = request.getParameter(“senha”);

ResultSet rs=st.executeQuery(“SELECT nome_usuario,senha FROM usuarios WHERE nome_usuario LIKE '%”+nome+"’");

if(rs.next()){

String s = rs.getString(2);

if(s==senha){

out.println(“

USUARIO LOGADO COM SUCESSO

”);
}
else
out.println(“

NOME DE USUARIO OU SENHA INVALIDOS

”);
}

9 Respostas

T

Java != JavaScript. Em JavaScript você pode comparar duas strings com o sinal de igual.
Em Java você tem de usar equals:

if (s.equals (senha)) {
L

coloquei o equals
mas continua falando q ta invalido

String nome = request.getParameter(“nomeusu”);

String senha = request.getParameter(“senha”);

ResultSet rs=st.executeQuery(“SELECT nome_usuario,senha FROM usuarios WHERE nome_usuario LIKE '%”+nome+"’");

if(rs.next()){

String s = rs.getString(2);

if(s.equals(senha)){

out.println(“

USUARIO LOGADO COM SUCESSO

”);
}
else
out.println(“

NOME DE USUARIO OU SENHA INVALIDOS

”);
}
J

“printa” as duas senhas e manda o resultado pra cá

L

vou printa aqui

no
if(rs.next())
ele nao chega nem a entrar nesse if

ou seja nao encontra o usuario com o nome

L

mudei o codigo
ta assim agora

String nome = request.getParameter(“nomeusu”);

String senha = request.getParameter(“senha”);

ResultSet rs=st.executeQuery(“SELECT nome_usuario,senha FROM usuarios”);

if(rs.next()){

String u = rs.getString(1);

String s = rs.getString(2);

if(s.equals(senha) && u.equals(nome)){

out.println(“

USUARIO LOGADO COM SUCESSO

”);
}
else
out.println(“

NOME DE USUARIO OU SENHA INVALIDOS MAS ACHOU DADOS NO BD

”);
}
else{
out.println(“

NOME DE USUARIO INVALIDO NAO ACHOU NADA NO BD

”);
}
out.println(nome);
out.println(senha);
while(rs.next()){
out.print(rs.getString(1));
out.println(" "+rs.getString(2));
}
}

imprimi na tela o usuario e a senha q o servlet recebe
imprimiu
null
senha

e disse que achou dados no bd

esse null nao era pra se null
vou procurar o erro aqui

S

Oi,

Possivelmente o nome do campo “nomeusu” e outro dentro do formulário JSP.

Quando estiver fucionando volte ao código antigo ou use PreparedStatement fica mais elegante.

String query = “SELECT nome,senha FROM usuario WHERE usuario = ?”;

PreparedStatement stmt = con.prepareStatement(query);

stmt.setString(1, “nomeusuario”);

ResultSet rs = stmt.executeQuery( );

[]s

L

entao… consegui acertar o problema do null

mas agora ele so ta funcionando com um usuario e senha pré adicionados quando eu gero as tabelas no mysql

neste site tem uma parte de cadastro
ele cadastra certinho

ai qdo eu tento logar com esse usuario e senha cadastrado
ele diz que eh invalido
uso o seguinte codigo pra inserir na tabela

boolean sera=false;
sera = st.execute(“INSERT INTO usuarios ( usuarioID , nome_usuario, senha , nome_compl , endereco , cep , cpf , estado , cidade ) VALUES (’’, '”+nome_usuario+"’,’"+senha+"’,’"+nome_completo+"’, ‘"+endereco+"’,’"+ce+"’,’"+cp+"’,’"+estado+"’ ,’"+cidade+"’)");

L

consegui resolver :smiley:
valeu pela ajuda pessoal

o problema era no if(rs.next())
tinha que por while … senao ele nao percorria todos os campos selecionados haha

M

luuu:
mudei o codigo
ta assim agora

String nome = request.getParameter(“nomeusu”);

String senha = request.getParameter(“senha”);

ResultSet rs=st.executeQuery(“SELECT nome_usuario,senha FROM usuarios”);

if(rs.next()){

String u = rs.getString(1);

String s = rs.getString(2);

if(s.equals(senha) && u.equals(nome)){

out.println(“

USUARIO LOGADO COM SUCESSO

”);
}
else
out.println(“

NOME DE USUARIO OU SENHA INVALIDOS MAS ACHOU DADOS NO BD

”);
}
else{
out.println(“

NOME DE USUARIO INVALIDO NAO ACHOU NADA NO BD

”);
}
out.println(nome);
out.println(senha);
while(rs.next()){
out.print(rs.getString(1));
out.println(" "+rs.getString(2));
}
}

imprimi na tela o usuario e a senha q o servlet recebe
imprimiu
null
senha

e disse que achou dados no bd

esse null nao era pra se null
vou procurar o erro aqui

Cara!
Como vc resolveu o problema do Null? Estou com o mesmo problema.
At.

Criado 9 de junho de 2006
Ultima resposta 6 de out. de 2006
Respostas 9
Participantes 5