Estou com uma dúvida em MVC-DAO com duas tabelas relacionadas, Produto e Categoria.
Os campos são simples:
Produtos:
id_prod
nome_prod
id_categ
Categoria
id_categ
nome_categ
Minha duvida seria em montar o DAO. Como seria a Classe Modelo já que as duas entidades estão relacionadas?
Alguém teria um tutorial sobre isso ou pode me ajudar? Não é pra fazer o projeto é só me ajudar nessa dúvida. Montar essa classe.
Cria a classe dao com os atributos relacionados ao banco de dados, no caso ai seria duas classe DAO, uma classe ProdutoDAO e outra CategoriaDAO, e quando voce fosse fazer os metodos por exemplo de listagem dos dados, consulta, voce implementaria os sql correto pra trazer os dados…
F
fbrigatt
Então, eu não sei como faz pois tem relacionamentos. Como que seria isso. Sei que tem que fazer essas duas Classes, mas não sei como seria os get e set.
E nas classes DAO, também serão duas, conforme disse o @fbrigatt.
A CategoriaDAO vai ser simples, sem qualquer relacionamento e na ProdutoDAO você vai ter os SQLs de consulta que contenha um join entre produto e categoria, sendo assim será retornado um Produto com os dados da categoria.
F
fbrigatt
Qual seria o mais prático, colocar o atributo ou a classe inteira como o Diego_Melo fez? Agora embananou, rs. Como seria um exemplo de insert usando o modelo do Diego_Melo?
D
Diego_Melo1 like
voce vai ter 4 classes
as duas que mostrei e mais 2 DAO
essas classes DAO vão ficar da seguinte forma
publicclassProdutoDAO(){//metodo para obter todos os produtos do bancopublicList<Produto>getAll()throwsException{List<Produto>produtos=newArrayList<Produto>();Stringsql="select p.id as idProd, p.nome as nomeProd, p.categoria_id, c.id as idCat, c.nome as nomeCat from produto p join categoria c on p.id = c.id";PreparedStatementp=con.prepareStatement(sql);ResultSetrs=p.executeQuery();while(rs.next()){//seta os dados do produtoProdutoproduto=newProduto();produto.setId(rs.getInt("idProd"));produto.setNome(rs.getString("nomeProd"));//seta os dados da categoriaCategoriacategoria=newCategoria();categoria.setId(rs.getInt("idCat")).categoria.setNome(rs.getString("nomeCat")).//add a categoria ao produtoproduto.setCategoria(categoria);//add o produto na lista produtos.add(produto)}rs.close();p.close();returnprodutos;}
Da mesma forma você teria os outros métodos getById, update, delete, etc,
Já para a classe CategoriaDAO segue a mesma linha, porém nela não ha necessidade de join no select.
F
fbrigatt
Tem como fazer um exemplo disso ai? Pq tem que listar as Categorias para cadastrar, certo?