Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Qual classe deve possuir o Método de popular o Banco de Dados?

Estou Fazendo o curso de Java e JPA na formação Java e me surgiu uma dúvida: se eu possuo classes e estas possuem tabelas no banco de dados, por exemplo, a classe Cliente possui uma tabela "cliente" no meu banco de dados MySQL. No meu código, quem deve ser responsável por chamar os métodos do EntityManager (persist, find, etc), a classe cliente ou uma classe banco de dados, que por sua vez seria responsável por executar todos os comandos que envolvem o banco de dados?

4 respostas
solução!

Raphael,

Por padrões de doas praticas a lógica envolvendo acesso a banco de dados deve ficar em um única classe que não é a model.

Seguindo o SOLID uma classe deve possuir uma única responsabilidade, e para atender isso não podemos incluir regras de acesso ao banco de dados, tanto para model quando para a view.

É interessante você estudar um pouco mais sobre MVC (Model, View, Controller), que vai ajudar na abordagem desse tipo de arquitetura de classes.

https://pt.wikipedia.org/wiki/SOLID

https://pt.wikipedia.org/wiki/MVC

As coisas que vi sobre MVC foram no curso de Servlet II. Na aplicação que estou desenvolvendo coloquei tudo que se refere a banco de dados na classe banco que fica no pacote de modelo.

Perfeito, mas não fica na classe model, correto?

Pois dessa forma cada classe tem seu objetivo bem definido sem realizar duas ações distintas, por mais que se complementem no final.

Então acabei tomando a decisão correta. Muito obrigado!