Como usar corretamente o ResultSet? - Resolvido

Estou desevolvendo um pequeno programa p um amigo e estou tendo algumas dificuldades! Sei que a maior parte dele, e pela minha falta de experiencia em java e BD,por isso pesso desculpas adiantas!

O problema é o seguinte:
Preciso somar os dados de uma tabela e inseri-los em outra tabela p depois poder tirar uma porcentagem desse valor e gerar um relatorio!
Criei duas tabelas -> Cliente - com id
nome
valorNotaBruto
valorNotaLiquido
Notas - com id
data_cadastro
hora_cadastro
valor_nota
FK_idCliente —chave estrangeira
Tentei gerar uma soma das notas com um comando sql e envia-lo ao valorNotaBruto, mas n consegui!
Segue o codigo do que eu ja fiz!

public List<Cliente> getLista() throws SQLException {
        String sql = "select cliente_idCliente, sum(valorNota) from nota  where cliente_idCliente = ? ";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
    
        ResultSet rs = stmt.executeQuery();
        
        List<Cliente> minhaLista = new ArrayList<Cliente>();

        while (rs.next()) {
            Cambista cliente = new Cliente();
            cliente.setIdCliente(rs.getInt("cliente_idCliente"));
            cliente.setValorBruto(rs.getRow());
            minhaLista.add(cliente);
        }

        rs.close();
        stmt.close();
        return minhaLista;
    }

Passei muito tempo pesquisando e n achei um tutorial nem um forum que me ajuda-se!
Sei que o banco tbm n esta sendo muito bem aproveitado, mas n entendo muito das linguagens como eu disse acima!
Nunca tive tempo de treinar!
Desculpe pela falta de sapiencia e agradeço a ajuda!
Vlw!

OBs: Tive a ideia de colocar o valor da consulta em uma variavel, assim eu poderia fazer os calculos via java msm, usando metodos!
N sei se a ideia é boa, mas infelizmente n consegui implementar!

A grande vantagem de vc usar o banco para fazer os cálculos é a performance que você acaba ganhando, no entanto no futuro você pode ter um pouco de dor de cabeça na hora de manutenção caso esse calculo fique mais complexo.
Sempre pondere essas duas variáveis manutenção X perfomance.

Sobre sql você acha tutoriais fáceis no google.

Amigo, passei a noite em claro pesquisando e n achei um tutorial que ensine a salvar um resultset em uma variavel!
N me vem a cabeça outro jeito de fazer isso se n dessa maneira!
Somar via sql eu consigo na boa, mas essa n é a unica operação que eu preciso fazer!
Vc n sabe me indicar qual metodo de resultset eu devo usar p poder fazer o que eu disse acima?

[quote]Passei muito tempo pesquisando e n achei um tutorial nem um forum que me ajuda-se!
[/quote]

Bom acho que no seu caso o ideal é retornar do banco mesmo, porém em seu RS você deve inserir a clausula GROUP BY em seu select , pois assim você estará elaborando um agrupamento de cliente.
Você também pode , usar um método para fazer isto … bastando que o seu select seja ordenado no banco pelo id_cliente por exemplo, enquando for o mesmo cliente você vai somando o valor em uma viariavel, quando for diferente …

Boa Sorte …

Aleksandro, a sua ideia casa perfeitamente com o que eu gostaria de fazer!
O Unico problema, e que apesar de ter estudado java a uns anos atraz, eu nunca programei de verdade!
Por isso n sei como pegar um dado do BD e inseri-lo na variavel!
Quanto aos codigos em sql eu consegui achar alguns que me ajudam, tipo esse que vou enviar:


select (valorNota and cliente_idCliente), sum(valorNota * 85 / 100) as Porcento from nota where cliente_idcliente = 1;

Isso faz mais ou menos o que eu quero, mas ainda assim eu gostaria de poder contar com o auxilio de uma variavel java, pois assim posso fazer a logica no meu programa, em vez de recorrer ao sql puro!
Por acaso vc n sabe me dizer como copiar o resultado de uma consulta(select) sql p uma variavel?
Só falta esse detalhe p eu poder fechar o programa!
Vlw pela ajuda!

No Seu caso Você pode fazer o Seguinte
sua Select seria a seguinte

String sql = “Select cliente.idCliente , sum(valorSoma) as valor from cliente”;

para pegar o valor total do “Sum” eu coloquei apelido valor

no
while (rs.next()){
double total = rs.getDouble(“valor”);
// aqui você adiciona o valor seja ele em um BEAN ou em um variavel
//a regra é somente passar o nome do campo ou o apelido que foi dado para o campo
}

Obrigado Vrodrigues2!
Funcionou!
Eu tentei fazer algo parecido das outras vezes, mas fora do while, e n tão simples como vc fez(eu sabia que as soluções mirabolantes n iriam adiantar, afinal OO veio pra simplificar! RS)!
Muito obrigado pela sua ajuda!
Agradeço aos outros 2 tbm, mas pra pessoas sem pratica como eu, só falar o que tem que fazer n adianta, agente precisa de um exemplo pra entender!
Novamente valeu!!!