Montar um array

4 respostas
cesar340

este meu codigo roda tranquilamente:

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");
            
            
            while (resultset.next()){
                
                String teste = resultset.getString("cod");
                
                System.out.println(teste);
                
                        
                      
            }
            
            
            
        }
        catch(ClassNotFoundException Driver){
            JOptionPane.showMessageDialog(null, "DRIVER NAO LOCALIZADO");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "erro na conexão com a fonte");
        }

mostra na tela todos os codigos do banco!
mas agora se eu quero colocar esses cadigos em um array?
tentei assim:

String[][] dados = null;
        
        
        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");
            
            int linha = 0;
            while (resultset.next()){
                
                dados[linha][0] = resultset.getString("cod");
                
                System.out.println(dados[0][0]);
                
                linha++;         
                      
            }
            
            
            
        }
        catch(ClassNotFoundException Driver){
            JOptionPane.showMessageDialog(null, "DRIVER NAO LOCALIZADO");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "erro na conexão com a fonte");
        }

mas ocorre o seguinte erro:

Exception in thread "main" java.lang.NullPointerException
	at guardardadosemarray.GuardarDadosEmArray.main(GuardarDadosEmArray.java:39)
Java Result: 1

certamente alguem deste forum sabe resolver este problema!
agradeço desde ja a ajuda :wink:

4 Respostas

E

Você não instanciou a matriz, setou como null no início do código e está tentando inserir dados em posições que não existem.

Define o tamanho da sua matriz:

String[][] dados = new String[10][10];

ironmarq

Cesar, vc está pensando certo porém, utilizando os recursos “errados”, dificilmente(nunca vi) colocar os resultados do resultSet num array comum de 2 dimensões, crie um ArrayList para armazenar seus dados retornados pela consulta por ex:

seuArrayList.add(new String(seuResultSet.getString()));
douglaskd

a maneira que eu acho correta de fazer isso:

  • criar uma classe Cliente, com os mesmos atributos do banco de dados
  • instanciar uma ArrayList clientes, antes do while
  • instanciar cliente no inicio do while
  • popular o objeto cliente com as informações do banco
  • dar um clientes.add(cliente) no final…

e seguir adiante :smiley:

marcoslogan

É verdade, eu nunca vi ninguém fazer assim. Agora se você quiser a titulo de praticar. ai sim. você pode até fazer. Eu acho melhor você usar um list ou um arraylist.

Criado 11 de janeiro de 2012
Ultima resposta 11 de jan. de 2012
Respostas 4
Participantes 5