Erro em minha classe

7 respostas Resolvido
java
rodriguesabner

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");
    }
    }

7 Respostas

S

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.

rodriguesabner
Solucao aceita

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!

pmlm

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

rodriguesabner

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

pmlm

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

rodriguesabner

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

rodriguesabner


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

Criado 28 de fevereiro de 2018
Ultima resposta 28 de fev. de 2018
Respostas 7
Participantes 3