Projetos Java (Desktop/Swing) + Banco de dados. Como modelar?

2 respostas
R

Pessoal,

Permaneço um iniciante no java pois está complicado arrumar um tempinho para estudar. Acredito que agora conseguirei retormar os estudos.

Sempre que escuto falar de Java, ressaltam a orientação a objetos que é muito importante. Eu venho de uma linguagem onde eu programava utilizando RAD. Apesar da tentação de programar orientado a eventos sempre fiz o máximo para manter o projeto em POO.

Mas justamente por vir de RAD, onde poucas coisas que se vê na internet estão em POO, eu tenho algumas dificuldades de imaginar algumas coisas em Java.

Por exemplo, imaginem um simples programa para cadastro de clientes em Java (desktop/swing).

É facil imaginar que posso criar uma classe para fazer a interface com o banco de dados e executar comandos sql na base. Já que estamos falando de um cadastro de clientes, também é fácil visualizar a classe Cliente.

Agora, nessa modelagem, onde entra a tela onde os dados são inputados? Falando de VB/Delphi, existem dois tipos básicos de tela de cadastro.

A primeira é aquela com um navegador no topo do formulário com vários edits para entrada de dados. O navegador fornece os botões para avançar registros, gravar o registro atual, etc.

A segunda é aquela em que os dados de uma tabela são alterados diretamente em um grid.

Justamente esses dois tipos de tela são os tipos de tela que eu não consigo visualizar em Java. Como posicionar logicamente os formulário em relação às demais classes do projeto.

Quer dizer, se eu vou fazer apenas um cadastro de clientes e quero apenas gravar e exibir os dados de uma tabela, ainda vou ter uma classe Cliente? Como fica o relacionamento dessa classe com o banco já que na verdade os edits estariam exibindo o registro atual de uma tabela?

Sei que talvez eu não esteja explicando muito bem o problema. Talvez se alguém aqui veio de um longo tempo de VB/Delphi vá entender melhor o que estou falando.

Por esse motivo, gostaria de saber se alguém conhece algum projeto OpenSource em java com acesso a banco de dados usando swing para que eu possa estudá-lo. Gostaria de entender melhor esse tipo de aplicação no Java.

Agradeço pela colaboração.

2 Respostas

castiel

Cara dá um lida nessa apostila da caellum,


os primeiros capítulos vão te deixar mais claro a interação do BD com a OO, tem exemplos práticos bem interessantes.
Espero que ajude.

Andre_Brito

Você já deve ter ouvido falar de MVC. Se não ouviu, corra atrás disso que acho que pode dar uma boa visão de um projeto pra você.

Depende bastante. Se eu estivesse em seu lugar, eu faria a classe Cliente sim. Na verdade, essa classe Cliente seria a entidade. Você não precisaria criar a tabela com comandos SQL nem nada. Dá uma procurada em JPA que agiliza muito a a construção da aplicação.

Não sei se entendi bem o que você tentou dizer. De qualquer forma, acho que a resposta pra isso é depende. Depende do banco que você tá usando e da forma como você acessa os dados (se você usa um DAO ou um Repository; se você usa JPA ou faz a conexão com o banco na unha; se você usa um banco de objetos).
Se fosse comigo, Cliente seria a entidade e eu usaria Data Access Objects (DAO). Dá uma procurada sobre isso que, na minha opinião, é bem válido.

Se você usa uma arquitetura MVC, entra na View (no V). Acho que é usual fazer isso em pacotes. Por exemplo, as classes que possuem o código da interface gráfica ficariam no pacote sistema.mvc.view. Acho que isso depende bastante também.

Você também pode, depois, dar uma estudada em Java pra web que, na minha opinião, é o forte do Java.

Criado 2 de agosto de 2009
Ultima resposta 2 de ago. de 2009
Respostas 2
Participantes 3