Boa tarde pessoal, estou com dúvidas na implementação do seguinte código:
[code]
public void registroAnterior() throws SQLException{
sent = conexao.prepareStatement("SELECT codigoMercadoriaServico, quantidade FROM registro74 WHERE idEmpresa=? AND dataInventario LIKE ?");
sent.setObject(1, 1);
// int dataAnterior = Integer.parseInt(data.getText())-1;
sent.setObject(2, 2009+"%");
ResultSet rs = sent.executeQuery();
while(rs.next()){
anoAnterior.put(rs.getString("codigoMercadoriaServico").trim(), rs.getString("quantidade").trim());
}
}[/code] lembrando que anoAnterior é minha TreeMap declarada como global!SortedMap<String, String> anoAnterior = new TreeMap<String, String>();
quando tento inserir na jtable da nullpointer
[code]
while (rs.next()) {
float inventarioAnoAnterior ;
double inventarioAnoAtual = 0;
System.out.println(anoAnterior);
inventarioAnoAnterior = Float.parseFloat(anoAnterior.get(rs.getString("codprod").trim()));
[/code] o println mostra os valores, mas a linha abaixo da nullpointer
converti para float para fazer umas contas necessárias. na coluna da tabela mostra tudo zero!!! o que pode ser? alguém ja passou por isso? e pode me ajudar?
Você não imaginou que pode ser que você não ache o resultado de rs.getString (“codprod”) no SortedMap, ou então que rs.getString (“codprod”) seja null?
É melhor fazer alguns ifs.
Nunca achei que escrever uma linha gigante, encadeando uma chamada de função na outra, fosse uma boa coisa em Java.
Se isso ocorrer,
inventarioAnoAnterior = Float.parseFloat(anoAnterior.get(rs.getString("codprod").trim()));
vai gerar um NullPointerException no “trim” ou no parseFloat, e então você vai ter o resultado de ter a coluna em branco, já que o processamento das outras linhas vai ser pulado e ele não vai conseguir preencher o resto da tabela.
Outra coisinha - não é bom usar float ou Float em programas (exceto em casos especiais). Se precisar mexer com números, use double, int ou long (dependendo do número, é claro).
[quote=entanglement]Você não imaginou que pode ser que você não ache o resultado de rs.getString (“codprod”) no SortedMap, ou então que rs.getString (“codprod”) seja null?
É melhor fazer alguns ifs.
Nunca achei que escrever uma linha gigante, encadeando uma chamada de função na outra, fosse uma boa coisa em Java.
Se isso ocorrer,
inventarioAnoAnterior = Float.parseFloat(anoAnterior.get(rs.getString("codprod").trim()));
vai gerar um NullPointerException no “trim” ou no parseFloat, e então você vai ter o resultado de ter a coluna em branco, já que o processamento das outras linhas vai ser pulado e ele não vai conseguir preencher o resto da tabela.
Outra coisinha - não é bom usar float ou Float em programas (exceto em casos especiais). Se precisar mexer com números, use double, int ou long (dependendo do número, é claro).
[/quote]
Obrigado pela dica amigo!!!