Dúvida - Ordem Alfabética (Tabela) [RESOLVIDO]

2 respostas
pedroroxd

1- Eu tenho uma tabela, que lista as refeições (id, nome,valor,ingredientes,categoria).

Statement stmt = connection.createStatement();

 String sql2 = "Select * from refeições";
ResultSet rs = stmt.executeQuery(sql2);

    while(rs.next()) {
    String[] dados = new String[5];
    dados[0] = rs.getString("ID"); //id=nome da coluna
    dados[1] = rs.getString("Nome");
    dados[2] = rs.getString("Valor");
    dados[3] = rs.getString("Ingredientes");
    dados[4] = rs.getString("Categoria");

       modelo.addRow(dados); //adiciona uma nova linha na JTable;
    }
Até aí da certo. Eu agora eu quero que fica na ordem alfabética, pelo nome das refeições (ex.: Abacate, Bolacha, Café, Pizza Calabreza, Pizza Frango) Como que eu faço isso? Eu tentei isso:
Arrays.sort(dados[1], Collator.getInstance());
só que da erro =/ E agora?

2 Respostas

francislon

Você pode trazer sua consulta já ordenada pelo nome:

select * from refeições order by nome;

F

Fala Pedro!

Só uma dica… quando você estiver recuperando dados de um BD, se for possível, tente sempre trazê-los já ordenado, isso vai deixar a consulta mais eficiente e, portanto rápida… imagine se tivesse 99.998.856 registros nessa tabela (sempre é bom pensar em valores majorados), haveria o trabalho de recuperação dos dados do BD e a da ordenação… trazendo ordenado evitamos esse problema…

Então o que se faria seria trocar a query por:

String sql2 = "Select * from refeições order by Nome";

Só uma pergunta: a tabela chama-se “refeições” mesmo? Se for, sugiro que não coloque caracteres especiais em nomes de campos tabelas, variáveis, classes, etc… Só por convenção :wink:

Espero ter ajudado… Abraços!!!

Criado 5 de setembro de 2009
Ultima resposta 5 de set. de 2009
Respostas 2
Participantes 3