Não consigo retornar a soma de uma query (Java)

5 respostas Resolvido
java
L

public List somarCaixa(){

Connection conn = Conexao.abrirConexao();
    RegistroCaixa r = new RegistroCaixa();
   
   List<RegistroCaixa> registros = new ArrayList<>();
   try {
       String sql = "select sum(valor) as valor_Total from fluxodecaixa";
       PreparedStatement pstm = conn.prepareStatement(sql);
       ResultSet rs = pstm.executeQuery(sql);
       
       while(rs.next()){ 
       
       r.setTotal(rs.getDouble("valor_Total"));  
       registros.add(r);
       }

   } catch (SQLException e) {
       JOptionPane.showMessageDialog(null, "Erro: "+e);
   }
   return registros;

}

Esse é o código. Existe algo de errado?

RegistroCaixa registrador = new RegistroCaixa();

TotalCaixa caixa = new TotalCaixa();

lblCaixa.setText(String.valueOf(registrador.getTotal()));

lblCaixa.setForeground(Color.green);

caixa.somarCaixa();

E esse é o código definido no construtor na parte principal do programa.

Simplesmente o retorno é 0.0 da soma na coluna da minha tabela onde indiquei! O que poderia ser?

5 Respostas

S

Essa linha precisa estar dentro do while

P
Solucao aceita

O teu problema não tem nada a ver com soma de uma query. É um problema básico de orientação a objectos. Estás a criar duas instâncias diferentes de RegistroCaixa, uma onde atribuis o valor da soma e outra que não atribuis nada, mas les o valor (que é zero, já que não foi atribuido)

P

Não precisa, é uma soma, a query só devolve um resultado. Nem sequer deveria devolver uma lista, mas sim um único objecto. Nem precisava de um while, apenas um if.

S

É verdade
Falta de atenção de minha parte
:grinning:

L

Obrigado! Realmente foi por falta de atenção, consegui resolver! Obrigado :slight_smile:

Criado 23 de julho de 2021
Ultima resposta 23 de jul. de 2021
Respostas 5
Participantes 3