Pessoal tenho um ClientesDao nele tenho o CRUD básico, dentro do meu projeto vou ter vários locais no meu sistema onde precisarei selecionar dados no banco exemplo: (relatórios, rotinas, etc…). Minha pergunta é estes diversos SELECT que terei devem ser incluídos dentro deste ClientesDao, ou devo criar classes especificas para cada relatório? Pergunto porque hoje estou incluindo todos dentro do Dao, mas conforme o sistema vai aumentando parece errado ter tanta informação na mesma classe. Seguindo os padrões MVC como devo proceder neste caso?
Cara, ai depende do que você precisa realmente de cada um, digamos que você tenha uma empresa, na empresa tem funcionários, tem Produtos e tem clientes, o correto seria você criar uma tabela para funcionarios, uma pra produtos e uma para clientes, e não tudo em 1 só tabela chamada “empresa”, basta você analisar o seu caso e dar uma olhada certinho no que é melhor para seu programa
E quanto aos select, caso você tenha várias tabelas, faça um DAO para cada uma, e seus respectivos SELECTS dentro dessas classes, depois faça uma classe controle, exemplo: controla clientes, e dentro dela eu preciso ver os dados do produto que o cliente comprou, aí você chama o DAOProduto e faz os “getListProduto” por exemplo,
RESUMO: cada select em seu DAO e 1 DAO para cada tabela do bd
Coloque suas query em um properties e tente ser o mais coeso possível, por exemplo um dao de alunos, crie um properties alunos.properties e crie a chave para a(s) query(ies) a mais clara possível;
Thomas seguinte, minha dúvida se refere a uma tabela unica como expliquei acima. Tabela clientes e ClientesDao. No caso tenho a página que recebe os dados(visão), o servlet que vai fazer o meio de campo(controle) e o Dao responsável pelos dados, entretanto para uma tabela tenho uns 20 relatórios diferentes. 6 consultas fora as inclusões. Ai vem minha dúvida quando vou no Dao desta tabela possui muitos métodos pois os filtros passados são diversificados e os resultados esperados também. Devidos a isso me parece fica muito grande esta classe digo em codificação, posso estar até falando bobagem, mas uma classe muito grande pode perder performance? Lembre-se me refiro a apenas uma tabela e um Dao. Não seria bom dividir esta codificação em outras classes dentro do próprio pacode Dao. Exemplo clientesRel1Dao etc… Isso fere os princípios básicos do MVC?
Cara, sempre usei classes DAO para CRUD básico. No meu pré projeto ano passado, criei classes exclusivas para relatório. um gerador de relatórios e um DAO do mesmo, justamente por acreditar que encher essas classes com métodos de relatórios não fazia sentido.