Popular dados do BD em uma GRID

Olá colegas,

Sou iniciante em java(apenas 1 mês) e preciso fazer com que os dados que estão no meu BD fossem populados para uma grid(JTable) que coloquei no meu programa(formulário). Que ao abrir o programa caisse ali todos os dados. Gostaria de faze só o cod_cad e nome_cad para aprender como se faz.
Só não tenho idéia de como faz isso. Já tenho a conexão com meu BD mysql, mas isto eu não sei.

Fiz bastantes buscas e não encontrei muita coisa que conseguisse intender.

Alguem realmente poderia me ajudar?

Grato pela atenção.

Nada melhor do que isso:

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

Olá, não sou muito experiente também, mas acho que posso ajudar

Faço da seguinte forma:

1 - Crie um modelo de tabela: public DefaultTableModel modeloTabela;

2 - Crie um vetor e vá adicionando as “linhas” ao modelo que voce criou até adicionar todos os registros que devem ser exibidos:

String[] dados = new String[2]; dados[0] = rs.getString("codCliente"); dados[1] = rs.getString("nomeCliente"); modeloTabela.addRow(dados);
Obs.: rs.getString() pq o valor está vindo de um ResultSet com os resultados de uma consulta SQL.

3 - Defina esse modelo ao objeto JTable que está usando (supondo que o modelo tenha sido criado no JFrame que voce está usando):

jTable1.setModel(modeloTabela());

Espero ter ajudado… pelo menos um pouco… :slight_smile:

Abraços…

rod.attack,

é verdade, mas não me do bem com inglês, pelo menos agora. :?

lksJF, me desculpe mas não intendi muito bem esse seu código, tu tem algum exemplo parecido com esse já pronto para eu me basear?

Grato.

cipolatto,

Olá, tenho sim… mas só para eu entender direito a situação:

  • Voce já fez a consulta SQL e quer trazer os resultados na jtable ou ainda não fez a consulta?
  • Voce já implementou uma classe de conexão com o BD?
  • Desculpe, não entendi o que quis dizer com cod_cad e nome_cad.

Aguardo…

Eu fiz a conexão com o BD para enviar os dados do meus Jtextfield, agora quero trazer os dados que estão lá para meu JTable(grid).

Aguardo.

esse cod_cad e nome_cad, é o nome de minhas tabelas no BD. Que no caso é nessas tabelas que estão o Código de cadastro do usuário e o Nome da pessoa. Fiz como exemplo.

Bom, agora entendi melhor o que deseja fazer:

No meu exemplo vou imaginar uma table chamada tbcliente, que contem os campos codigo, nome e cpf

1- Cria-se um modelo de tabela:

tabelaCliente = new DefaultTableModel(null, new String[]{"Código","Nome","Cpf"}){ @Override public boolean isCellEditable(int row, int column) { return false; } };

2- Cria-se um Statement e um ResultSet. Cria-se uma variável String que armazena o comando SQL. Execute esse comando “guardando” o resultado no ResultSet criado.

Statement stmt = con.createStatement(); String sql = "SELECT * FROM tbcliente"; ResultSet rs = stmt.executeQuery(sql);

3- Preencha um vetor com os dados que estão agora no ResultSet, sempre adicionando essa “linha” ao modelo da tabela:

while (rs.next()) { String[] dados = new String[3]; dados[0] = rs.getString("codigo"); dados[1] = rs.getString("nome"); dados[2] = rs.getString("cpf"); tabelaCliente.addRow(dados); }

4-Por fim, defina esse modelo ao objeto jtable que está usando.

jTable1.setModel(tabelaCliente());

Espero ter ajudado…
Escrevi essas linhas agora… do nada… rsrsrs :lol: … por isso pode ter algum errinho…
Assim que sair do trabalho e chegar em casa, vou conferir tudo e se precisar de “algo a mais” (rsrsrsrs) posto novamente…

Aguardo sua resposta!!!

Abraços…

certo, mas esses códigos eu coloco eles dentro da onde?
faço uma classe, como funciona?

Coloque na classe que me enviou: Cipolatto.java

No evento que desejar, por exemplo, quando clicar em um botão…