[resolvido] exibir um array

16 respostas
A

joguei os dados do meu banco de dados sentro de um array, assim:

int linha = 0;
            while (resultset.next()){
                
                dados[linha][0] = resultset.getString("cod");
                dados[linha][1] = resultset.getString("nome");
                dados[linha][2] = resultset.getString("endereco");
                dados[linha][3] = resultset.getString("email");
                dados[linha][4] = resultset.getString("telefone");
                dados[linha][5] = resultset.getString("estado");
                dados[linha][6] = resultset.getString("sexo");
                dados[linha][7] = resultset.getString("interesses");
                dados[linha][8] = resultset.getString("biografia");
                dados[linha][9] = resultset.getString("dat");
                
                linha++;         
            }

agora para visualizar o conteudo do array foi o seguinte:

int x=0;
            int i=0;
            while(i<2){
                while(x<9){
                System.out.println("dados["+i+"]["+x+"]" + dados[i][x]);
                x++;
                }
                
                i++;
            }

vejam o resultado:

dados[0][0]11
dados[0][1]Cesar Fagundes
dados[0][2]Buenos Aires 402
dados[0][3][email removido]
dados[0][4]97319686
dados[0][5]MT
dados[0][6]Masculino
dados[0][7] Musica Cinema
dados[0][8]blablabla

falta mostar o dados[1][0] - dados[1][1] - dados[1][2] … ateh 8, e tb
dados[2][0] - dados[2][1] - dados[2][2] … ateh 8

se alguem achar o erro eu agradeço :wink:

16 Respostas

mauricioadl

vc nao pode criar um javabean em vez de usar array??

A

desculpa mas so novo em programação (deve ter percebido pela minha duvida hehe), nem sei o que eh javabean ;/

mauricioadl

vamos lah, pelo q entendi vc esta gravando um cliente ou algo parecido no banco. oq vc precisa eh uma classe que represente esse cliente, tipo assim:

class Cliente { private String nome; private String telefone; // todos os dados // todos os getters e setters }

qndo vc for consultar vc vai criar uma lista de clientes e nao um array. assim fica muito mais facil de fazer.

A

entendi, cada cliente seria um objeto e em cada objeto os atributos (atributos esses que são os campos que tenho no banco)
correto??

beleza, mas estou fazendo isso para depois fazer uma pesquisa no banco
e ao inves de ter que criar uma conexão com o banco pra pesquisar, ele pesquise no array(que estao os dados do banco)

consigo fazer isso tb com classe e nao array?

Valeu a dica, vou tentar fazer deste jeito :wink:

mauricioadl

augusto340:
entendi, cada cliente seria um objeto e em cada objeto os atributos (atributos esses que são os campos que tenho no banco)
correto??
CORRETO

beleza, mas estou fazendo isso para depois fazer uma pesquisa no banco
e ao inves de ter que criar uma conexão com o banco pra pesquisar, ele pesquise no array(que estao os dados do banco)

consigo fazer isso tb com classe e nao array?
Tem, em vez de criar um array dos atributos crie um array de objetos de cliente, dae basta um for() pra vc percorrer todos eles.
Aconselharia vc usar a classe ArrayList em vez de array basico.

Valeu a dica, vou tentar fazer deste jeito :wink:
Boa sorte, qlqer coisa estamos ae.

A

entendi! vou tentar fazer isto! :wink:
agora nao querendo abusar e ja abusando,
com o for eu percorro os objetos!
agora um dos atributos desse objeto da classe cliente é NOME.

caso eu queria fazer uma pesquisa pelo nome
por exemplo:
no textfield quando a pessoa digitar C
automaticamente ja busca os nomes que comecem com a letra C
depois de colocar ce, pesquisar os nomes que começam com CE
entendeu?
como fazer isso com objetos?
valeu

yhhik

de onde estão saindo esses Objetos?
do banco de dados? de um list?

se estiverem vindo do BD vc pode usar a clausula LIKE.
Select *  from tabela  where  coluna  Like '%c';

se tiverem num lista..
vc pode precorrer a lista e verificar a existência assim:.

for(Objeto o:ListaObjeto){

if("CE".equals(o.getNome.Substring(0,1))
System.out.prinln(o.getNome);

}

não sei se funciona.não testei*

A

esses objetos estao saindo da classe clientes!
tipo, tenho um banco com uma tabela clientes, com os campos nome, endereço,etc…

quero guardar esses dados no objeto x da classe cliente!

beleza fiz uma classe cliente com os atributos nome, endereço, etc…

mas agora com o resultset como gravar no objeto esses dados, nao sei nem por onde começa!

segue abaixo como esta meu codigo:

public void atualizarArray(){
        try{
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB","SYSDBA","masterkey");
            statement = conexao.createStatement();
            resultset = statement.executeQuery("select * from tb_clientes");
            
            System.out.println(resultset);
            
            while(resultset.next()){
               Cliente cliente = new Cliente();                
            }
            
            
              
        }
        catch(ClassNotFoundException Driver){
            JOptionPane.showMessageDialog(null, "DRIVER NAO LOCALIZADO");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "erro na conexão com a fonte");
        }
    }

porem agora dentro do while nao sei como fazer isso!
pq a cada linha do result set eu teria que criar um objeto diferente, pois é um novo registro…
como fazer isso? Oo

yhhik

da uma olhada aqui cara.

esse codigo ae é pra fazer select e nao insert.

flw.

A

mas eu quero um select mesmo cara, fazer um select para pegar os dados do banco e jogar no objeto da classe cliente.

yhhik

beleza fiz uma classe cliente com os atributos nome, endereço, etc…
mas agora com o resultset como gravar no objeto esses dados, nao sei nem por onde começa!

interpretei mau essa parte…

primeiro seu método deve retornar um list e nao void…
vc deve criar uma lista de Cliente:

List<Cliente>listaCliente=new ArrayList<Cliente>();

no while vc vai setar o cliente e adiciona-lo a lista

while(resultset.next()){ Cliente cliente = new Cliente(); cliente.setNome( resultset.getString("Nome da que vc colocou na coluna no BD") ; listaCliente.add(cliente); } return listaCliente;

A

bah pode cre! agora sim consegui faze certinho, soh nao consigo visualizr essas informações?
me da uma luz? hehehe
[]'s

A

e outra, como vou conseguir chamar um cliente especifico se todos sao com o nome cliente? OO

desculpa minha duvidas ridiculas, mas estou começando a trabalhar com java agora (com programação tb)
e ja estou tendo que criar uma aplicação!!!

mas valeu as dicas cara… sem palavras!

yhhik

não sei onde vc quer mostrar isso…mas assim funciona:

for(Cliente c:ListaCliente) System.out.println(c.getNome);

pra isso vc deveria ter criado uma chave primaria.

A

queria mostrar soh por cuiosidade, estou estudando a linguegem java :wink:
fiz assim:

for(int x = 0; x<listaCliente.size();x++){
                System.out.println(listaCliente.get(x).getCod() + " ---- " + listaCliente.get(x).getNome());
            }

correto tb nao? ;D

A

Finalmente conclui!
fiz um classe cliente com os atributos e dps fiz um metodo para atualizar os dados (pegar todos os dados do banco e jogar na lista)
segue o codigo como ficou:

public void atualizarArray(){
        try{
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB","SYSDBA","masterkey");
            statement = conexao.createStatement();
            resultset = statement.executeQuery("select * from tb_clientes");
            
            
            //verificando quando registros ha no banco!
            int i=0;
            while(resultset.next()){
                i++;             
            }
            System.out.println("numero de registros no banco: " + i);
            
            //zerando o resultset
            resultset = statement.executeQuery("select * from tb_clientes");
            
            //colocando nos objetos
            List<Cliente> listaCliente = new ArrayList<Cliente>();
            while (resultset.next()){
                Cliente cliente = new Cliente();
                cliente = new Cliente();
                cliente.setCod(resultset.getString("cod"));
                cliente.setNome(resultset.getString("nome"));
                cliente.setEndereco(resultset.getString("endereco"));
                cliente.setEmail(resultset.getString("email"));
                cliente.setTelefone(resultset.getString("telefone"));
                cliente.setEstado(resultset.getString("estado"));
                cliente.setSexo(resultset.getString("sexo"));
                cliente.setInteresses(resultset.getString("interesses"));
                cliente.setBiografia(resultset.getString("biografia"));
                cliente.setDat(resultset.getString("dat"));
                listaCliente.add(cliente);
            }
            
            //exibindo clientes
            
            for(int x = 0; x<listaCliente.size();x++){
                System.out.println(listaCliente.get(x).getCod() + " ---- " + listaCliente.get(x).getNome() + " ---- " + listaCliente.get(x).getEndereco() + " ---- " + listaCliente.get(x).getEmail() + " ---- " + listaCliente.get(x).getTelefone() + " ---- " + listaCliente.get(x).getEstado() + " ---- " + listaCliente.get(x).getSexo() + " ---- " + listaCliente.get(x).getInteresses() + " ---- " + listaCliente.get(x).getBiografia() + " ---- " + listaCliente.get(x).getDat());
            }
            
              
        }
        catch(ClassNotFoundException Driver){
            JOptionPane.showMessageDialog(null, "DRIVER NAO LOCALIZADO");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "erro na conexão com a fonte");
        }
    }

:wink:

Criado 12 de janeiro de 2012
Ultima resposta 12 de jan. de 2012
Respostas 16
Participantes 3