Como fazer consulta com arraylist

5 respostas
G

Tipo galera eu tou usando um consulta para listar todos os registros cadastrados na base com o codigo abaixo, e está funcionando perfeitamente.

Porem me pediram para fazer outro tipo de consulta usando arraylist, que não sei e não entendi como é alguem pode me dizer como que faz isso ?

Eu tenho que fazer uam opção para listar todos os automóveis que pertencem à marca FIAT (usando um arraylist)

alguem abre minha mente ae ?

private void JB_ConsultarActionPerformed(java.awt.event.ActionEvent evt) {                                             

                try {
			/* Instanciando a classe do driver através do seu nome */
			Class.forName( drv );
			System.out.println( "Driver JDBC carregado" );
		} catch ( ClassNotFoundException cnfe ) {
			System.out.println( "Driver JDBC não encontrado : " +
							   cnfe.getMessage() );
		}

		/* Criando conexão com o banco de dados */
		try {
			/* Obtendo a conexão com o banco de dados */
			con = DriverManager.getConnection(url, usuario, senha);
			System.out.println( "Conexão com o banco de dados estabelecida." );
		} catch ( SQLException sqle ) {
			System.out.println( "Erro na conexão ao Bando de Dados : " +
							            sqle.getMessage() );
		}
		
          try{

       
    String sql = " SELECT *  FROM CAD_AUTOMOVEL order by nome ASC" ;
    PreparedStatement ps = con.prepareStatement(sql);
        
    ResultSet rs = ps.executeQuery();

    int contador =0;
    int i=0;
    String codaux ="";
    String marcaaux="";
    String nomeaux="";
    String autonomiaaux="";
    String kmrodadoaux="";
    while (rs.next()) {
    	codaux = rs.getString("codigo");
    	marcaaux = rs.getString("marca");
        nomeaux = rs.getString("nome");
        autonomiaaux = rs.getString("autonomia");
        kmrodadoaux = rs.getString("kmrodado");
    	JT_TextArea.insert(" "+codaux + "   " +marcaaux + "   " +nomeaux + "   " +autonomiaaux + "   " + kmrodadoaux+"\n",i);
    	i++;
    	System.out.println(codaux+" "  + marcaaux+" "+ nomeaux+" " + autonomiaaux+" " + kmrodadoaux);
    }                                            

    } catch ( SQLException sqle ) {
			System.out.println( "Erro na conexão ao Bando de Dados : " +
							            sqle.getMessage() );
		}	
	


	/* fechando a conexão com o SGBD */
		try {
			con.close();
			JOptionPane.showMessageDialog(null, "Consulta Realizada com Sucesso");
			
			
			//System.out.println( "Conexão com o banco de dados fechada" );
		} catch ( SQLException sqle ) {
			System.out.println( "Erro no fechamento da conexão : " );
                }

5 Respostas

B

Opa!

Cara, é tranquilo…
O que vc deve fazer, é que no resultado da tua query no BD, ali onde vc preenche tuas variaveis auxiliares,
tu deve criar um arraylist e adicionar neste arrayList todas as linhas do resultado obtido no BD. Depois disso crie uma funcao que pesquise dentro do ArrayList de acordo com o que foi digitado.
Se precisar de ajuda com a codificacao é só avisar ae! mas a ideia é essa

preencher um arraylist com o resultado do BD e depois fazer uma pesquisa dentro do ArrayList

Abração.
\o

G

tem algum exemplo ae com codigo + ou - parecido para eu me basear

B

import java.util.ArrayList;

ArrayList busca = new ArrayList();

//Aqui voce adiciona no arraylist o resultado da consulta no banco
//cada linha do arraylist será equivalente a uma linha do resultado da consulta com os campos separados por “;”

while (rs.next()) {

busca.add(codaux +";"+ marcaaux +";"+ nomeaux +";"+ autonomiaaux +";"+ kmrodadoaux);

}

//Cria uma funcao de busca que receba uma string para comparacao e retorne o resultado

public Stringbusca(String chave){

for(x = 0; x < busca.size();x++){

String[] linhaResul = busca.get(x).split(’;’);

if (linharesul[x].equals(chave)){

return busca.get(x);

}
}
}

é mais ou menos assim, fiz meio correndo. Ve o que tu consegue entender, qualquer coisa da um grito!

Abração ae!
\o

G

Tipo eu fiz assim, minha duvida é como exibir estes dados da consulta de um array na tela ??

Tem como mostrar dentro de um textarea ?

private void JB_ConsultarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        
        try {
			/* Instanciando a classe do driver através do seu nome */
			Class.forName( drv );
			System.out.println( "Driver JDBC carregado" );
		} catch ( ClassNotFoundException cnfe ) {
			System.out.println( "Driver JDBC não encontrado : " +
							   cnfe.getMessage() );
		}

		/* Criando conexão com o banco de dados */
		try {
			/* Obtendo a conexão com o banco de dados */
			con = DriverManager.getConnection(url, usuario, senha);
			System.out.println( "Conexão com o banco de dados estabelecida." );
		} catch ( SQLException sqle ) {
			System.out.println( "Erro na conexão ao Bando de Dados : " +
							            sqle.getMessage() );
		}
		
          try{

     System.out.println("Consultando Dados.");
  	  String select = "SELECT * FROM CAD_AUTOMOVEL ORDER BY Nome";
	  ResultSet rs = stmt.executeQuery(select);
	  /* Navegando pelo resultado */
                ArrayList ar = new ArrayList();
		while ( rs.next() ) {
        		int codigo = rs.getInt( "codigo" );
        		String marca = rs.getString("marca");
                        String nome = rs.getString("nome");
                        String autonomia = rs.getString("autonomia");
                        String kmrodado = rs.getString("kmrodado");
                        TelaFiat pt1 = new TelaFiat (codigo,marca,nome,autonomia,kmrodado);
                        ar.add(pt1);
                        
                        
                        
                        
                        
                        
                        
                        
                        System.out.println(codigo + " - " + nome);
		}
		}
		catch(SQLException sqle)
		{
			System.out.println( "Erro executando consulta : " +
								sqle.getMessage() );
		}
			
			
			
	  /* fechando a conexão com o SGBD */
	  try {
			con.close();
                        
                        
                        
                        
                        
                        
                        
                        
			System.out.println( "Conexão com o banco de dados fechada" );
		} catch ( SQLException sqle ) {
			System.out.println( "Erro no fechamento da conexão : " );
		}
gertmuller

[i]Tem como sim. É só usar o método toString() do ArrayList.

Se você quiser mostrar apenas alguns objetos dentro do ArrayList, vc faz a pesquisa e usa o toString() do objeto. Se o objeto tiver sido criado por você, usa os getters!

:lol: [/i]

Criado 29 de setembro de 2008
Ultima resposta 29 de set. de 2008
Respostas 5
Participantes 3