Persistência de dados!

3 respostas
felipexavier

para um sistema de login a melhor coisa é usar persistência?

meu código não está seguro:
if (tflogin.getText().equals("") || pfsenha.getText().equals("")) {
            JOptionPane.showMessageDialog(null,"Os campos login e senha não podem ser vazios");  
            return; //Vamos usar o return para cair fora de uma vez, assim não precisamos do els
        }
        bd.conectaDB();
        if (bd.estaConectada())
            System.out.println("BD abriu");
            String login=tflogin.getText();
            String senha=pfsenha.getText();
                       
            ResultSet dados=bd.buscaRegistros("select * from usuarios where nome ="+"'"+login+"' and senha="+"'"+senha+"'");
            try
        {
            while(dados.next())
            {
                String a=dados.getString("nome");
                String b=dados.getString("senha"); 
                
           if (login.equals(a) && senha.equals(b)){
                    JOptionPane.showMessageDialog(null,"Seu login foi feito com sucesso");
                    principal.setVisible(true);    
                   break;      
                    
                }
           
            }
        } catch (SQLException erro)
        {
            System.out.println(">>> Erro  - Classe não encontrada = " + erro.getMessage());
            System.exit(0);
        }
        
        dispose();//JOptionPane.showMessageDialog(null,"Seu Usuário ou Senha está incorreto");
        tflogin.setText(null);
        pfsenha.setText(null);     
        bd.desconectaDB();
        
        // TODO add your handling code here:
    }

e se for, alguém pode me mandar algumas coisas para eu estudar?ouço falar de DAO e mais alguns coisas, mas não sei o que é!

3 Respostas

mauricioadl

gravar os dados de login no banco é uma exelente pratica, porem é aconselhavel validar os dados atraves de function do banco de dados, impedindo assim o ataque de sql injection.

o modo que vc esta validando é muito simples de burlar.

[]'s

starkiller

Encripta tua senha, assim fica mais seguro guardar essa informações no banco!

ViniGodoy
  1. Use PreparedStatement. Isso impede que alguém digite de senha:
'; DELETE * FROM usuarios WHERE nome LIKE '%

E cause uma enorme dor de cabeça no seu programa.

  1. Matenha a senha sempre criptografada no banco de dados;

  2. O login é por aí mesmo. Mas seria bom separar a lógica de negócio, da do banco de dados, da interface gráfica. Geralmente cada um tem sua própria classe.

Criado 5 de julho de 2011
Ultima resposta 5 de jul. de 2011
Respostas 3
Participantes 4