Erro

1 resposta
T

Ei pessoal sou novo aki.. espero q vs me ajudem ... tenho uma classe que pega os dados do BD e coloca em uma JTable
,mas nao consigo fazer uma parte do código funcionar vou colocar o código aqui .

O negocio é o seguinte, sabe o case Types.FLOAT:currentRow.addElement(new Float(rs.getFloat(i))); ali em baixo toda vez ele vai pro DEFAULT

sendo q ta tdo certo o tipo de dado no banco de dados ...alguém me entendeu ...(tentei ser o mais claro possível)

[
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd)   
throws SQLException   
{   
Vector currentRow = new Vector();   
for (int i = 1; i <= rsmd.getColumnCount(); ++i)   
switch(rsmd.getColumnType(i)) {   
case Types.VARCHAR: currentRow.addElement(rs.getString(i));   
break;   
case Types.FLOAT:currentRow.addElement(new Float(rs.getFloat(i)));   
break;  
case Types.DATE:currentRow.addElement(new Long(rs.getLong(i)));   
break;
/*case Types.LONGCHAR:currentRow.addElement(rs.getString(i));  
break;*/   
default: System.out.println("Tipo dos Dados: " + rsmd.getColumnTypeName(i));   
}   
return currentRow;   

}
]

1 Resposta

ViniGodoy

Olá.

O que o código imprime no console quando vai para o default?

Seu código tem uma grande série de problemas:

  1. Você usa Vector e ainda está declarando ele sem deixar explícito qual é o tipo dos dados que ele tem internamente. O Vector não é recomendado desde o Java 1.2. No lugar, use ArrayList;
  2. Você está usando o DefaultTableModel. Não faça isso, implemente seu próprio model. Não só esse if se tornará obsoleto, como você também ganhará muito mais clareza de código;
  3. Seu código aparentemente mistura lógica de banco e tela. Isso é uma péssima prática de programação.
Criado 1 de outubro de 2011
Ultima resposta 2 de out. de 2011
Respostas 1
Participantes 2