Dúvida com JTable + TreeMap

3 respostas
E
Boa tarde pessoal, estou com dúvidas na implementação do seguinte código:
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());
			  
		  }
}
lembrando que anoAnterior é minha TreeMap declarada como global!
SortedMap<String, String> anoAnterior = new TreeMap<String, String>();
quando tento inserir na jtable da nullpointer
while (rs.next()) {  
        	  float inventarioAnoAnterior ;
        	  double inventarioAnoAtual = 0;
        	  
        	  		System.out.println(anoAnterior);
        		  inventarioAnoAnterior = Float.parseFloat(anoAnterior.get(rs.getString("codprod").trim()));
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?

3 Respostas

B

usa hibernate amigo

E

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).

E

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).


Obrigado pela dica amigo!!!

Criado 9 de outubro de 2012
Ultima resposta 9 de out. de 2012
Respostas 3
Participantes 3