Duvida bobinha no Banco de dados

Bom dia amigos,

Já fiz querys usando a cláusula WHERE várias vezes mas agora to tendo problema em buscar os dados do usuario na hora do login, estou usando esse código:

[code]public Usuario loginUsuario(String login){
Usuario usuario = new Usuario();
try{
this.conect();
st = con.createStatement();
String sql = "SELECT * FROM usuario WHERE login LIKE " + login;
rs = st.executeQuery(sql);
System.out.println("Login: " + sql);
while(rs.next()){
usuario.setNome(rs.getString(2));
usuario.setLogin(rs.getString(3));
usuario.setSenha(rs.getString(4));
usuario.setStatus(rs.getString(5));
}
}catch(SQLException e){
JOptionPane.showMessageDialog(null, "Erro na busca do usuario " + e);
}

    return usuario;
}[/code]

e ele me retorna a seguinte exception "java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Parâmetros insuficientes. Eram esperados 1.

se retiro o WHERE funciona direito, alguém pode me dar uma idéia do que está errado?

[]'s

Logan

tenta fazer sua sql assim:

String sql = “SELECT * FROM usuario WHERE login LIKE '%” + login + “%’”;

cara vc tem certeza que quer usar like ali?

String sql = "SELECT * FROM usuario WHERE login = '" + login + "'";

Testa ae… :idea:

é Galera valeu mais uma vez eu estava esquecendo de colocar a variável login ente aspas simples.

[]´s

Logan

Amigo, se você usar o Like no caso do Login, ele não vai ficar seguro, pois imagine que tenha um usuário joaquim e o cara digite “joao” no login. El evai passar, na verdade não deveria, concorda ? O Login deve ser exatamente o mesmo…

Abraço !

é… isso que eu queria dizer quando perguntei se era o like que realmente ele queria usar… :wink:

:idea:

Realmente vcs me atentaram para um fato que me passou despercebido, no caso de login e senha o LIKE não é uma boa opção, valeu pela dica!!!

Abçs

Logan