Tela de login

8 respostas
L

Não estou conseguindo fazer a tela de login para autenticar o usuario

[code]
public boolean autentica(Login login){

boolean valida = true;
try{
PreparedStatement stmt = conecta.con.prepareStatement(
"SELECT login, senha FROM usuario WHERE login = ? AND SENHA = ?");
stmt.setString(1, login.getLogin());
stmt.setString(2, login.getSenha());

ResultSet rs = stmt.executeQuery();

if (rs.next()){
return valida;
}else{
valida = false;
//return valida;
}

}catch(SQLException e){
JOptionPane.showMessageDialog(null, "Erro ao fazer login " + e.getMessage());
}

return valida;
}

}

ele so da a mensagem de usuario ou senha invalidos

8 Respostas

criador

Boa tarde parceiro.

  1. Na estrutura Login as informações estão preenchidas corretamente?

  2. O usuário e senha digitados por você estão corretos?

Dê um

System.out.println("Login: " + login.getLogin() + " / " + "Login: " + login.getSenha())

e veja o que retorna.

Abraço!

anderson_lr

Se puder também, poste a estrutura sua tabela, tipo isso:

CREATE TABLE `Usuario` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `ativo` bit(1) DEFAULT NULL,
  `login` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `nome` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `perfil_id` bigint(20) DEFAULT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK5B4D8B0E3BBFC887` (`perfil_id`),
  CONSTRAINT `FK5B4D8B0E3BBFC887` FOREIGN KEY (`perfil_id`) REFERENCES `PerfilDeUsuario` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
L
cretate table usuaio (
codigoUsuario int primary key,
nome varchar(40) not null,
login varchar(40) not null,
senha varchar(40) not null,
email varchar (40),
estatos varchar (40) not null,
perfil varchar(40) not null);
anderson_lr

Lucas,

A sua query o campo senha está maísculo: "SELECT login, senha FROM usuario WHERE login = ? AND [b]SENHA[/b] = ?", e na tabela, o campo senha está minúsculo. Tem que ser tudo minúsculo.
criador

anderson_lr

Trabalho com o Oracle e ele não tem “case sensitive” para comandos SQL.

O problema não está na sintaxe do comando dele.

Precisa identificar as informações que estão sendo incluídas no comando.

Por isso ressalto: Coloque um System.out.println() como eu havia mostrado no outro post.

Abraço!

L

coloquei o comando que vc mensionou e ele retorna o seguinte:

Login = lucas senha = [C@84cc09

o login ele ta retornando certo o problema ta sendo a senha

L

Galera consegui achar o erro não estava nessa classe tava na classe do formulario, eu não tinha colocado o getPassword para converter para string
valeu pela ajuda

abraço

marcospaulo.suporte

Exatamente amigo…
Se vc está usando o PreparedStatement (como vc postou) - Voce tem que usar o ’ .getPassword() ’

Se tiver usando o Statement vc tera que pegar pelo ’ .getText() ’ a senha.

o que nosso amigo ’ criador ’ disse tem razão.
Se tiver usando Oracle, Sql Server não são “case sensitive”.

Criado 14 de setembro de 2012
Ultima resposta 21 de set. de 2012
Respostas 8
Participantes 4