[RESOLVIDO] Alguém ai enxerga o erro neste DAO, UPDATE

[quote=psicoppardo]lá vai metodo getComprasUpdate


private Compra getComprasUpdate() {
        
        int row = ComprasGUI.tabelaCompras.getSelectedRow();
        Compra dtm = ComprasGUI.dtm.getLinha(row);
        
        compra.setIdCompra(dtm.getIdCompra());
        compra.setRelCliente(dtm.getRelCliente());
        compra.setDescricao(tfDescricao.getText().toUpperCase());
        compra.setQuant(Integer.valueOf( tfQuant.getText()));
        compra.setValor(Double.valueOf(tfValor.getText()));
        compra.setDate(tfData.getCalendar());
        
        return compra;
    }

erico_Kl

linha 138 do CompraDao.java stmt.setDate(4, new Date(compra.getDate().getTimeInMillis()));[/quote]

Cara… dentro desse método você tá setando atributos de um objeto compra e tá retornando ele. A questão é… onde tá a instanciação desse objeto ?? Se está fora do método, o que te garante que ele foi criado em memória e está pronto pra você usar ? Dá uma revisada nisso, colega!!

Bem provavelmente se vc fizesse isso:

logo depois dessa linha

acredito que já funcionaria…

Bom galera, vocês não vão acreditar na minha “falta de atenção”. Descobri o defeito:


public List<Compra> listarTodos(int id)throws SQLException{
        Connection conn = new ConexionFactory().getConn();
        Statement statement = null;
        List<Compra> lista = new ArrayList<Compra>();
        
        
        
        String sql = LISTAR_COMPRAS+id+"";
        
        try {
            statement = conn.createStatement();
            
            ResultSet rs = statement.executeQuery(sql);
            
            while(rs.next()){
            Compra compra = new Compra();
            
           [color=red][b] compra.setIdCompra(rs.getLong("id_compra")); //Eu simplesmente esqueci de incluir essa linha no CompraDao.java[/b][/color]
            compra.setRelCliente(rs.getLong("rel_cliente"));
            compra.setDescricao(rs.getString("descricao"));
            compra.setQuant(rs.getInt("quant"));
            compra.setValor(rs.getDouble("valor"));
            Calendar data = Calendar.getInstance();
            data.setTime(rs.getDate("date"));
            compra.setDate(data);
            
            lista.add(compra);
            
            }
        } catch (SQLException e)  {
            e.printStackTrace();
        }finally{
            conn.close();
            statement.close();
            
        }  

É de Matar, eu já tava para apagar e começar tudo de novo. SACANAGEM!!!

Galera o erro estava realmente no DAO, mais precisamente no metodo listarTodos

Eu simplesmente não digitei uma linha:

[color=red]compra.setIdCompra(rs.getLong(“id_compra”));[/color]

Eu quase tenho um treco quando vi, em passar que passei mais de três dias nessa indaga.

Obrigado a todos pelas contribuições.