Mais jtable

16 respostas
J

Por favor…

Estou ha dias procurando nos tutoriais deste fórum e de outros, inclusive na documentação da SUN e não consigo entender como sincronizar a jtable com o banco (estou usando mysql). Alguém poderia me dizer onde posso conseguir essa informação?

Desculpem se essa pergunta é muito básica… :oops:

Julio

16 Respostas

doug

Olá

Tem uma artigo do nosso amigo ViniGodoy muito bom sobre isso, acho que pode de dar uma luz.

Caso tenha dificuldade, mostre o trecho de código que está dificil e temos o prazer em auxiliá-lo.

Precisando pode mandar e-mail

Espero ter ajudado
Flwsss

J

thiago.filadelfo:
Olá


Caso tenha dificuldade, mostre o trecho de código que está dificil e temos o prazer em auxiliá-lo.

Precisando pode mandar e-mail

Espero ter ajudado
Flwsss

Eu estou tentando aprender a usar o JTable e a minha dúvida é a seguinte:

Pra popular a JTable com os dados de um banco (MySQL, no meu caso), eu só tenho a opção de enviar uma query, captrurar o resoultSet em um arraylist e usar esse arraylist para popular a JTable?

Quero saber se não há um jeito de “navegar dentro da tabela do banco”, sem ter que copiar a tabela do banco inteira num list, ou seja que vá acessando as linhas da tabela (do banco) à medida que seja necessário, quer dizer, ter acesso direto aos dados gravados no MySQL.

Não sei se consegui me fazer entender…

Até agora, todos os exemplos e tutoriais que eu li, somente se referem à JTable. Não falam nada sobre o acesso ao banco de dados a não ser através de SELECT. Eu quero “entrar dentro do banco”.

Obrigado.

M

Uma correção: este artigo (assim como o ObjectTableModel) são do Mark_Ameba, e não do ViniGodoy (apesar de ele fazer propaganda também :slight_smile: ).

ViniGodoy

marcobiscaro2112:
thiago.filadelfo:

Tem uma artigo do nosso amigo ViniGodoy muito bom sobre isso, acho que pode de dar uma luz.


Uma correção: este artigo (assim como o ObjectTableModel) são do Mark_Ameba, e não do ViniGodoy (apesar de ele fazer propaganda também :slight_smile: ).

É, o meu modelo é o que está junto com a classe de Auto-Filtro:
http://www.guj.com.br/posts/list/100793.java

Se baseia num enum. Não é tão poderoso quanto o ObjectTableModel mas, por não depender de reflexão, é um pouco mais seguro.

J

Pois é.

Eu já li estes dois artigos, mas não consegui entender como o JTable pega os dados da tabela do banco.

Não sei se me faltam conhecimentos pré necessários ou se estou no paradigma errado.

Venho do CLIPPER e lá se tem acesso ao banco como a uma variável de memória, bastando fazer “NomeDoBanco->NomeDoCampo” e se tem o dado lá gravado.

No Java parece que não funciona assim.

Se alguém puder me dar uma luz… :roll:

Obrigado!

ViniGodoy

No java são processos separados:

a. Criar uma classe de negócio, que representa o dado que está no banco;
b. Carregar uma tabela, gerando uma lista de objetos dessa classe
c. Exibir essa lista num JTable.

Para ver como manipular banco de dados, procure sobre as classes ResultSet e PreparedStatement.
Para ver como criar classes, procure documentação sobre orientação à objetos;

J

ViniGodoy:
No java são processos separados:

a. Criar uma classe de negócio, que representa o dado que está no banco;
b. Carregar uma tabela, gerando uma lista de objetos dessa classe
c. Exibir essa lista num JTable.

Para ver como manipular banco de dados, procure sobre as classes ResultSet e PreparedStatement.
Para ver como criar classes, procure documentação sobre orientação à objetos;

Quanto a manipular o banco, se somente é possível através de querys, capturando-se o resultado no ResultSet, sem problemas. Criar classes, também entendi.

Vc. poderia me apontar um caminho para entender o ponto “a.” criar uma classe que representa do dado que está no banco. Pergunto se isso é feito somente atraves do ResultSet? quer dizer, tenho que copiar tudo que quero ver da tabela que está no banco atraves do ResultSet? é o único meio? E se por exemplo eu tenho um banco com 5000 registros e quero ter acesso a todos eles? O caminho seria um “SELECT * FROM”, capturar o ResultSet num <list> e exibi-lo num JTable?

É assim, só?

Obrigado.

ViniGodoy

Não. Não é feito a partir do ResultSet. O ResultSet não é uma classe que representa o dado.
Ele é uma classe para ler coisas do banco.

Se sua tabela contém informações de clientes, você provavelmente terá uma classe chamada Cliente. E usará o resultset apenas para carregar uma lista de Clientes.

J

ViniGodoy:
Não. Não é feito a partir do ResultSet. O ResultSet não é uma classe que representa o dado.
Ele é uma classe para ler coisas do banco.

Se sua tabela contém informações de clientes, você provavelmente terá uma classe chamada Cliente. E usará o resultset apenas para carregar uma lista de Clientes.

Carregar essa lista de clientes proveniente do ResultSet significa criar um arrayList<>, que é o que se apresenta através do JTable…?

De qualquer forma, para recuperar as informações do banco somente tenho a opção de uma query!?

J

Putz, cara!

Como tá difícil “realizar” isso!

ViniGodoy

No java puro, sim. Só com uma query.

Você pode baixar uma API que faça a query por você, como o Hibernate.

J

Não, estou usando eclipse para desenvolver.

Quer dizer que o que aparece no JTable não é o banco mas uma cópia dele…

ViniGodoy

Jjulio:
Não, estou usando eclipse para desenvolver.

Quer dizer que o que aparece no JTable não é o banco mas uma cópia dele…

Sim.

J

Pô, cara!

Como isso é difícil pra eu entender…!

Se, depois de alterar algum dado no JTable quiser atualizar o banco tenho que fazer um UPDATE…?

Se tenho um banco muito grade fico limitado à capacidade da máquina, rede, velocidade de comunicação, etc…?

que coisa…

ViniGodoy

Na verdade, isso não é muito diferente no clipper. A única diferença é que ele abstrai isso para você.
Mas, teria que fazer um update sim.

Marky.Vasconcelos

marcobiscaro2112:
thiago.filadelfo:

Tem uma artigo do nosso amigo ViniGodoy muito bom sobre isso, acho que pode de dar uma luz.


Uma correção: este artigo (assim como o ObjectTableModel) são do Mark_Ameba, e não do ViniGodoy (apesar de ele fazer propaganda também :slight_smile: ).

Mesmo assim… bastante do que aprendi foi com o ViniGodoy então ele merece alguns creditos também.

Criado 29 de dezembro de 2009
Ultima resposta 4 de jan. de 2010
Respostas 16
Participantes 5