Gambiarra no LOGIN

Oi gente, nunca fiz nenhuma classe que fosse necessário login, mas ontem precisei faser e como não sabia… parti para a gambiarra ahuahu… mas eu naum estou nem um pouco afim de deixar a gambiarra continuar… pq vai q dah um erro daquelees que vc nunca imagina a famosa LEI DE MURF (nun sei se escreve assim rs) …

seguinte, eu fiz um método na classe BdCliente que valida a senha
ai foi o seguinte… pra min validar a senha eu fiz … um result set que vai receber o resultado da seguinte linha SQL “select nm_login, nm_senha from tbCliente where nm_senha =’”+txtSenha.getText()+"’ and nm_login = ‘"+txtLogin.getText()+"’"

ai a minha intenção foi … se o resultSet estiver vazio … é pq a senha tah errada … e… pra min ver se o result set estava vazio … ai é q eu fiz pior

boolean senhaValida = true;
try{

resultSet.next();
JOptionPane.showMesageDialog (this,"olá " + resultSet.getString(2));

}
catch(SQLException e){
senhaValida = false;
}
return senhaValida;

ou seja … no primeiro momento a senha é valida TRUE na hora que eu faz o resultset.getString ai se o resultSet tiver vazio vai cair no catch e a senhaValida sera dada como false … no final … o metodo retorna a variavel senha valida.

Muito Obrigado … sepero que alguem tenha uma solução q use menos gambiarra ahuaua… VALEU !

[[]]ss

Entidades do banco devem ser representadas por classes, não se deve trabalhar com dados soltos assim na aplicação, pois isso é usado só em programação estruturada.

Então:

public class Cliente { private int id; private String nome; private String login; private String senha; //get e set para os atributos }

[code]PreparedStatement stmt = conexao.prepareStatement("SELECT * FROM tbCliente WHERE nm_login = ?");

stmt.setString(1, "jair");

ResultSet res = stmt.executeQuery();

Cliente cli = null;

if(res.next()){
cli = new Cliente();
cli.setId(res.getInt("id"));
cli.setNome(res.getString("nome"));
cli.setLogin(res.getString("nm_login"));
cli.setSenha(res.getString("nm_senha"));
}

if(cli!=null&&cli.getSenha().equals("senha_do_jair")){
//ok
}else{
//login incorreto
}[/code]

Recomenda-se que a parte de consulta ao banco esteja em um DAO (pesquise sobre DAO), e se não quiser usar JDBC pra mapear os dados do banco para a classe, então use um framework de mapeamento objeto-relacional, como o Hibernate.

valeu jairelton … vo testar …

ah … e os acessos à banco … e talsz … talbem tem classe definida … e tudo mais … é q eu botei o codigo ai … sem se preocupar en mostrar … VALEU !!