[RESOLVIDO] como soma um retorno de uma Collection

Oi pessoal como faço pra soma uma return lista… sabendo que esta lista volta varios valores…

Código:

            try {
		sql.append("SELECT * FROM credito");
			rs = objConexao.executeQuery(sql.toString());
			while(rs.next()) {
				Credito cred  = new Credito();
				cred.setValor(rs.getString(3)); //valor de cada credito 
				listar.add(cred);
			
		} catch (SQLException e) {
			e.printStackTrace();
		
		}
		return listar;
           }

como faço pra mostra jsp usando jtls os valores somados de cada credito.

desde já agradeço.

Você quer somar o que?
O valor de cada crédito?

Dependendo de onde você for utilizar essa soma, ou soma logo aí nesse loop do resultado da query e vai acrescentando o valor de cada credito a uma variável, ou então onde for utilizar, terás que percorrer a lista e somar o valor de cada crédito…

Espero que eu tenha entendido direito sua pergunta.

[]´s

voce pode já fazer um sum no banco

ex: SELECT SUM(SEU_CAMPO) FROM credito

pode somar de uma variável

      try {  
  double soma = 0.0;
   sql.append("SELECT * FROM credito");  
     rs = objConexao.executeQuery(sql.toString());  
     while(rs.next()) {  
        Credito cred  = new Credito();  
         cred.setValor(rs.getString(3)); //valor de cada credito   
        soma += new Double(rs.getString(3)).doubleValue();
         listar.add(cred);  
       
 } catch (SQLException e) {  
     e.printStackTrace();  
   
 }  
 return listar;  
          }  

ou então faz um loop da sua collection, após o return e vai somando

Obrigado pela dica. mas com relação o que vocês postou eu também poderia fazer isto:


   Double  soma = null; 

   try {  
      sql.append("SELECT valor FROM credito");  
          rs = objConexao.executeQuery(sql.toString());  
              while(rs.next()) {  
                  soma += (rs.getString(3)); //valor de cada credito          
  } catch (SQLException e) {  
     e.printStackTrace();  
   
  }  
         return soma; //Tipo retorna Double "Resultado"
          }  

no caso você só pega 1 campo do resultset

sql.append("SELECT valor FROM credito"); 

ai teria que pegar a posição 1 do seu resultset e nao a 3

soma += (rs.getString(3)); //valor de cada credito    

para

soma += (rs.getString(1)); //valor de cada credito    

e você ainda está concatenando (dará erro somar um Double com String) os valores não somando, pois você retorna uma String e Double e afins

soma += (rs.getString(3)); //valor de cada credito    

para:

soma += ( new Double(rs.getString(3)).doubleValue(); //valor de cada credito    

ai sim você estará somando

Cara valeu mesmo… agora entendi como fazer a coisa funcionar posso continuar meu projeto pois passei ano de 2008 parado…

Feliz 2009…
Obrigado.

Bom já implemetei no meu metodo, mas estou ainda perdido, como é que faço pra mostra isto em jsp… estou usando jstl pra mostra no jsp os dados cadastrado no banco mais pra mostra o resultado de total como faço??? desculpa pela pergunta mais sou iniciante neste mundo java-programação.

code que mostra a um resultado de uma consulta e este:

	 <jsp:useBean id="cred" class="cadastra.credito.CreditoDTO"/>
<c:forEach var="i" items="${cred.consultaCredito}">
  <table width="414" border="0" cellpadding="3" cellspacing="-4" bordercolor="#000000">
    <tr>
      <td width="158" height="44" class="textoCorpo">${i.descricao}</td>
      <td width="96" class="textoCorpo">&nbsp;&nbsp;R$ ${i.valor}</td>
      <td width="126" class="textoCorpo">&nbsp;&nbsp;${i.dataPagamento}</td>
    </tr>
  </table>

Mas pra mostra um resulta de um método que retorna um resultado faço como?

Obrigado pela compreensão.

Não funcionou colega, usei esta linha de código pra soma:

   1. soma += ( new Double(rs.getString(3)).doubleValue(); //valor de cada credito      

meu código e este mas tambem não esta somando:

try {
		sql.append("SELECT valor FROM credito");
			rs = objConexao.executeQuery(sql.toString());
			while(rs.next()) {
				 total +=  rs.getString(1);
			} 
		} catch (SQLException e) {
			e.printStackTrace();

oi pessoal consegui resolve com esta forma:

sql.append("SELECT valor FROM credito");
			rs = objConexao.executeQuery(sql.toString());
			while(rs.next()) {
			   a += Double.parseDouble(rs.getString(1));
			} 
			Credito cred = new Credito();
			cred.setTotal(a);
			listar.add(cred);

sabendo que a dica do meu colega em cima "como fazer esta soma no banco também iria resolver o problema ", mas preferi usa o código java pra soma… obrigado pela dica…