Mostrar resultados que estao num Arraylist

5 respostas
F

Pessoal to com uma duvida que é a seguinte…

Eu tenho uma consulta SQl que executo diretamente e guardo o resultado num arraylist, só que tenho que mostrar esse resultado nos componentes na minha tela…

Eu tenho um método consultar que esta numa clasee de conexao de banco…

public ArrayList consultar(String sql) throws Exception {

Statement st = null; // comando de execucao no BD

ResultSet rs = null; // resulta da consulta no BD

ArrayList resultado = new ArrayList();

try {

st = conn.createStatement();

rs = st.executeQuery(sql);

ResultSetMetaData metadata = rs.getMetaData(); //

while (rs.next()) {

HashMap linha = new HashMap();

for (int i = 1; i <= metadata.getColumnCount(); i++) {

linha.put(metadata.getColumnName(i), rs.getObject(i));

}

resultado.add(linha);

}

} finally {

if (rs != null) rs.close();

if (st != null) st.close();

}

return resultado;

}

E agora o metodo que estou tentando pegar este resultado e atribuir nos campos…

public void btnBuscar_actionPerformed(ActionEvent e) {
    BancoDeDados bd = new BancoDeDados();
    bd.conectar();

    try {

        String regex = "[A-Z]{3}\\d{4}";
        if (edtPlaca.getText().toUpperCase().matches(regex)) {
            ArrayList listaResultado = bd.consultar(
                    "Select * from tb_proprietario where placa_veic = " +
                    "'" + edtPlaca.getText() + "'");

            if (listaResultado.size() == 0) {
                JOptionPane.showMessageDialog(null,
                                              "Placa não encontrada,digite novamente");
                edtPlaca.jTextField1.requestFocus();
            } else {
      //         aki tenho q atribuir os valores q estao no arraylist pra dentro dos campos.
      // onde eutenho jpanel com um combobox... e outros jpanel com o JTextFild.

            }

        } else {
            JOptionPane.showMessageDialog(null, "Placa inválida");
            edtPlaca.jTextField1.requestFocus();
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        bd.desconectar();
    }
}

}

Se alguem tiver alguma sugestão… Muito Obrigado.

5 Respostas

W

nao entendi direito a sua duvida…
:roll:

F

Uma sugestão… passa direto o resultset ao invez de um ArrayList! É perda de tempo tu percorrer todo o RS, gravar num ArrayList, depois percorrer o ArrayList e exibir as informações… É o que eu acho!

ou cria consultas diferenciadas.(pelo o que entendi tu tem uma consulta generica) e cria classes, do tipo placa por exemplo, e armazena uma classe para cada registro com as infomrações do registro, retornado pelo RS!

Abraços!

J
É perda de tempo tu percorrer todo o RS, gravar num ArrayList, depois percorrer o ArrayList e exibir as informações.. É o que eu acho!

Deus do céu! Falar um negocio desse aqui dá até briga!

Aprenda a diferenciar as coisas, persistencia é persistencia, manipulação dos dados é outra coisa...

E você não deve manter os dados em linhas e colunas como eles vem do banco não, isso é um atentado à orientação a objetos, crie classes para representar esses dados, ex.:

public class Veiculo&#123;
   public Proprietario proprietario;
   public String placa;
   public String modelo;
&#125;

while&#40;rs.next&#40;&#41;&#41;&#123;
   Veiculo v = new Veiculo&#40;&#41;;
   v.setPlaca&#40;rs.getString&#40;&quot;placa&quot;&#41;&#41;;
    //preenche o resto
    lista.add&#40;v&#41;;
&#125;
F

Pessoal,

Valeu pela ajuda até agora… mas a questao… que eu to meio confuso com todas estas repostas…
Calma galera… sou um pequeno aprendiz de java… num tem 3 meses que to estudando… e to quebrando a cabeça com mta coisa…

Afinal isso que eu fiz até agora ta errado?..

O meu probleminha é o seguinte… é um tipo controle de estacionamento… onde vai ter a entrada, e saída… (Toscamente)…
Tipo eu tenho a tabela de controle… onde eu gravo a entrada,
E leio os dados desta tabela de controle na tela de saida…
Onde gera a minha dúvida em apresentar os resultados… da consulta que eu faço apartir da placa do veiculo…

Acho que vai dar uma luz… agora…

Valeu Obrigado

J

Se você tem um controle de estacionamento, provavelmente terá veiculos, proprietarios, etc…

Então crie classes para representar essas entidades…

Criado 6 de junho de 2006
Ultima resposta 7 de jun. de 2006
Respostas 5
Participantes 4