Dúvida com JTable + TreeMap

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?

usa hibernate amigo

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!!!