Melhor forma de adicionar um ResultSet em um array

3 respostas
A

Olá amigos… criei um método que recebe uma String que é o comando em SQL, por exemplo:

SELECT * FROM tabDvds

E deveria armazenar esse resultado em um array bidimensional para ser exibido em uma tabela. Alguém sabe a melhor maneira de fazer isso?? Segue o código do método:

public void executaComando( String comando ) { String cmd = comando; try{ resultSet = stm.executeQuery( cmd ); while( resultSet.next() ){ // aqui entraria a adição resultado = resultSet. ); } } // fim de try catch( SQLException ex ){ ex.printStackTrace(); } // fim do try/catch
Abraços

3 Respostas

F

por algum motivo seu, existe a necessidade de ser um array bidimensional?

nao é a melhor maneira de constuir uma table…

da uma olhada aqui no forum tem varios exemplos de como popular uma table com dados oriundos de um rs…

C

Acho que a melhor maneira de se fazer isso é não utilizar um array bidimensional, mas sim um array unidimensional de objetos, de uma classe que represente seus dados. Por exemplo, se sua tabela possui informações sobre DVDs cadastrados, nada mais lógico do que vc criar uma classe Dvd e fazer algo do tipo:

public ArrayList<Dvd> executaComando( String comando )
   ArrayList<Dvd> dvds = new ArrayList<Dvd>();
   Dvd dvdObj = null;
   try{
      resultSet = stm.executeQuery( comando );
      while(resultSet.next()){
         dvdObj = new Dvd();
         /*
            Repetir linhas similares a linha abaixo para cada coluna da tabela, mapeada para cada atributo do seu objeto...
         */
         dvdObj.setTitulo(resultSet.getString("titulo"); 
         dvds.add(dvdObj);
      }
      return dvds;
   }
   catch(SQLException e){
      e.printStackTrace();
      return null;
   }
F

cassio:
Acho que a melhor maneira de se fazer isso é não utilizar um array bidimensional, mas sim um array unidimensional de objetos, de uma classe que represente seus dados. Por exemplo, se sua tabela possui informações sobre DVDs cadastrados, nada mais lógico do que vc criar uma classe Dvd e fazer algo do tipo:

public ArrayList<Dvd> executaComando( String comando ) ArrayList<Dvd> dvds = new ArrayList<Dvd>(); Dvd dvdObj = null; try{ resultSet = stm.executeQuery( comando ); while(resultSet.next()){ dvdObj = new Dvd(); /* Repetir linhas similares a linha abaixo para cada coluna da tabela, mapeada para cada atributo do seu objeto... */ dvdObj.setTitulo(resultSet.getString("titulo"); dvds.add(dvdObj); } return dvds; } catch(SQLException e){ e.printStackTrace(); return null; }

perfeito…

depois tu itera nesa List e vai adicionadno no Model da tua JTable…

obs: com esse exemplo q o Cassio deu, vc ja tem seus objetos no model… e pode manipula-los tranquilo… com arrays, vc talvez teria dores de cabeça como por exemplo ter q fazer uma nova consulta ao banco caso fosse manipular esses dados…

Criado 22 de janeiro de 2007
Ultima resposta 22 de jan. de 2007
Respostas 3
Participantes 3