Erro em minha classe

Galera, alguém sabe me dizer o que está errado?

public class UsuarioDAO {
    
    private ConectaBanco conecta;
   
    
    public  UsuarioDAO(ConectaBanco conecta){
         this.conecta = conecta;
    }
    
        public ArrayList<Login> readAll(){        
        try {
            PreparedStatement pst = conecta.conn.prepareStatement("select * cartaocredito order by id");
            ResultSet rs = pst.executeQuery();
            
            ArrayList<CartaoCredito> lista = new ArrayList<CartaoCredito>();
            
            while (conecta.rs.next()){
                CartaoCredito cco = new CartaoCredito();
                cco.setId(rs.getInt("id"));
                cco.setNumeroCartao(rs.getString("numero"));
                cco.setValidade(rs.getString("validade"));
                lista.add(cco);
            }
            return null;
        }
        catch (SQLException ex) {
            System.err.println("Erro no banco de dados" +ex.getMessage());         
        }
        catch (Exception ex) {
            System.err.println("Erro geral" +ex);         
        }
        return null;
        
    }
    
}

Tá dando erro geral quando eu inicio…

    //meu botao de iniciar a classe
    ConectaBanco conecta = new ConectaBanco();
    UsuarioDAO usu = new UsuarioDAO(conecta);       
    ArrayList<Login> lista = usu.readAll();
    if (lista !=null){
    for (Login c: lista){
    jTextArea1.setText(jTextArea1.getText() + c + "\n");
    }
    }

Você cria um método ArrayList< Login>, mas ele não retorna nada. Depois cria uma ArrayList< CartaoCredito>, que você preenche ela, mas não faz nada.

1 curtida

Cara, eu fiz de outro jeito, deu certo…

mostraTudo(“select * from cartaocredito where dono like’%”+nomeusuario.getText()+"%’");

public void mostraTudo(String SQL){
    conecta.executaSQL(SQL);
try {
    
    conecta.rs.first();
do{
    campocartao.setText(conecta.rs.getString("numerocartao"));
    campobandeira.setText(conecta.rs.getString("bandeira"));
    campolimite.setText(conecta.rs.getString("limite"));
    campovalidade.setText(conecta.rs.getString("validade"));
    
}while(conecta.rs.next ());

} catch (SQLException ex) {

}

}

Mas obrigado pela resposta!

O que acontece se o teu campo nomeusuario tiver o texto ’;delete from cartaocredito;–

1 curtida

Mas aí seria falta de atenção né? Aliás, não entendi hahahah. No caso se eu quisesse deletar eu ia abrir o formulário de deletar usuários, aí faria o esquema

Não és tu… é algum utilizador da tua aplicação.
isto.

1 curtida

Nossa, interessante isso, não fazia ideia dessa vulnerabilidade, eu só não entendi uma coisa, isso também serve pra desktop?


Olha, fiz esse teste que você disse, de colocar o “delete from…” e testei alguns deles, mas todos deram usuario ou senha inválidos, e lá no banco não teve alterações também.

Mas valeu, é uma forma a mais de ter atenção