Mostrar os Dados de um Consulta

9 respostas
progJava

Estou fazendo uma consulta para me trazer todos os dados desde que a marca seja Ex: ‘Nike’;
A consulta é realizada mas não sei como mostrar os dados, como faço isso ? EX: chamar e mostrar em um jtable

Código:

(select * from produtoss where marca = 'Nike';)

9 Respostas

viniciusalvess
select * from produtos where marca like '%NIKE%'
Vinny

Vc tem que pegar o valor da coluna através de um ResultSet que vai receber sua consulta feita
pelo o Statement

//o Statement deve receber sua conexão do banco
Statement st = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs =  st.executQuery("select * from produtoss where marca = 'Nike'");

//cria um modelo da sua JTable para que vc possa adiconar os produtos encontrados
DefaultTableModel modelo = (DefaultTableModel) JTable1.getModel();
modelo.setRowCount(0);

//Vc deve criar um array com a qtde de colunas que tem a sua JTable e depois fazer as colunas receber os seus respectivos valores 
String[] linha = new String[2];
while (rs.next()) 
{
  //O rs.getString("") ; retorna o valor que esta no seu banco de dados deve-se passa como parametro o nome da COLUNA que esta no seu 
  banco de dados

  linha[0] = rs.getString("NOME");
  linha[1] = rs.getString("PRECO");

  // o addRow adiciona uma nova linha na sua JTable com os valores que foram pegos na sua consulta
  modelo.addRow(linha);
}

Bom é isso espero que isto te ajude

Depois posta aqui dizendo se deu certo
flw

hodrigohamalho

Acho que você deveria pesquisar um pouco sobre JDBC.

http://www.guj.com.br/article.show.logic?id=7

esse foi o primeiro que achei, mas concerteza tem vários mais completos.

progJava
Tentei assim só que ele da o erro resultser não esta posicionado corretamente o que será?
[code]public void chama()
       {
    
       try {   
    Class.forName("org.postgresql.Driver").newInstance();   
    Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost/estoque:","postgres","1212");   
  
    
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);   
ResultSet rs = stmt.executeQuery("select * from produtoss where marca = 'Nike'");   
  
//cria um modelo da sua JTable para que vc possa adiconar os produtos encontrados  
jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(15);
jTable1.getColumnModel().getColumn(4).setPreferredWidth(25);
jTable1.getColumnModel().getColumn(5).setPreferredWidth(25);
jTable1.getColumnModel().getColumn(6).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(7).setPreferredWidth(25);
jTable1.getColumnModel().getColumn(8).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(9).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(10).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(11).setPreferredWidth(50);
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();   
modelo.setRowCount(0);   
  
//Vc deve criar um array com a qtde de colunas que tem a sua JTable e depois fazer as colunas receber os seus respectivos valores   
String[] linha = new String[2];   
while (rs.next()) 
{
      modelo.addRow(new Object[]{carac.resultset.getString("codigo"),carac.resultset.getString("codp"),carac.resultset.getString("marca"),carac.resultset.getString("modelo"),carac.resultset.getString("numero"),carac.resultset.getString("cor"),carac.resultset.getString("hora"),carac.resultset.getString("dat"),carac.resultset.getString("quant"),carac.resultset.getString("precors"),carac.resultset.getString("custcompra"),carac.resultset.getString("lucro")});
                  rs.next();
         }  
         
  //O rs.getString("") ; retorna o valor que esta no seu banco de dados deve-se passa como parametro o nome da COLUNA que esta no seu   
    
  
  linha[0] = rs.getString("codigo");   
  linha[1] = rs.getString("marca"); 
  linha[2] = rs.getString("modelo");
  linha[3] = rs.getString("numero");
  linha[4] = rs.getString("cor");
  linha[5] = rs.getString("dat");
  linha[6] = rs.getString("locall");
  linha[7] = rs.getString("quant");
  linha[8] = rs.getString("precors");
  linha[9] = rs.getString("codp");
  linha[10] = rs.getString("descri");
  linha[11] = rs.getString("fornec");
  
  // o addRow adiciona uma nova linha na sua JTable com os valores que foram pegos na sua consulta   
  modelo.addRow(linha);   
  

       }
       catch(Exception erro)
       {
           JOptionPane.showMessageDialog(null,"Erro"+erro);
       }
     }  
}

Vinny

Bom um erro que eu vi aqui foi esse

String[] linha = new String[2];

Vc deve instaciar com 12 pelo que eu vi
vc quer pegar o valor das 12 colunas do seu banco de dados

e eu acredito que isso aqui tb não possa ser feito inclusive dentro do while!

modelo.addRow(new Object[]{carac.resultset.getString("codigo"),carac.resultset.getString("codp"),carac.resultset.getString("marca"),carac.resultset.getString("modelo"),carac.resultset.getString("numero"),carac.resultset.getString("cor"),carac.resultset.getString("hora"),carac.resultset.getString("dat"),carac.resultset.getString("quant"),carac.resultset.getString("precors"),carac.resultset.getString("custcompra"),carac.resultset.getString("lucro")});  
                   rs.next();  
          }

Oque deve ficar dentro do while é somente isso:

linha[0] = rs.getString("codigo");     
   linha[1] = rs.getString("marca");   
   linha[2] = rs.getString("modelo");  
   linha[3] = rs.getString("numero");  
   linha[4] = rs.getString("cor");  
   linha[5] = rs.getString("dat");  
   linha[6] = rs.getString("locall");  
   linha[7] = rs.getString("quant");  
   linha[8] = rs.getString("precors");  
   linha[9] = rs.getString("codp");  
   linha[10] = rs.getString("descri");  
   linha[11] = rs.getString("fornec");
progJava

É isso ai Deu Certo Só ocorreu um pequeno problema (eu tenho 2 cadastro Nike ele esconde o promeiro e mostra
só um o que faço?)

Vinny

Verifica se seu While esta dessa maneira:

while (rs.next())   
 {  
   linha[0] = rs.getString("codigo");     
   linha[1] = rs.getString("marca");   
   linha[2] = rs.getString("modelo");  
   linha[3] = rs.getString("numero");  
   linha[4] = rs.getString("cor");  
   linha[5] = rs.getString("dat");  
   linha[6] = rs.getString("locall");  
   linha[7] = rs.getString("quant");  
   linha[8] = rs.getString("precors");  
   linha[9] = rs.getString("codp");  
   linha[10] = rs.getString("descri");  
   linha[11] = rs.getString("fornec");
   modelo.addRow(linha); 
 }

Vc tem que atribuir os valores dentro do WHILE
se tiver fora ele so vai pegar 1 valor mesmo
se tiver dentro do while ele vai pega tudo que foi encontrado para a consulta

E caso mesmo assim não esteja voltando tudo verifica a sua consulta
o banco de dados é case sensitive tem que se tratar isto
por exemplo se tiver gravado Nike e vc procurar por nike
ele nao vai achar
da uma olhada nisto!

progJava

Acontece que ele chama todos os dados , só que ele esconde um ou seja o primeiro .Ex: Ele Chama 5 linhas e mostra as quatro últmas linhas. (a linha 1 ele esconde) e mostra a linhas 2,3,4,5

Vinny

Posta seu codigo atual!

Criado 31 de julho de 2009
Ultima resposta 31 de jul. de 2009
Respostas 9
Participantes 4