Olá a todos, estou iniciando no mundo J2EE de forma profissional mas ainda como um tiro no escuro, optei por struts com framework MVC (nada contra aos demais e sem nenhuma ideologia).
Quero saber como o Struts oferece suporte à camada de persistência (Model). Estou usando JSP com servlets, logo a camada de Visão e de Controle já sei por onde ir mas não sei nada da camada de modelo. O devo fazer?
Bem vindo.
O Struts não oferece nenhum suporte específico à camada de negócios/modelo.
O que geralmente é feito, é que na Action do struts, se faz o acesso às classes de negócios, com ou sem camadas intermediárias.
Mas não existe nada específico no struts para essa comunicação.
Isto na vesão 1.2. Não sei como está a versão 2.
Abraço.
J
jwcunha
luis.soares:
Bem vindo.
O Struts não oferece nenhum suporte específico à camada de negócios/modelo.
O que geralmente é feito, é que na Action do struts, se faz o acesso às classes de negócios, com ou sem camadas intermediárias.
Mas não existe nada específico no struts para essa comunicação.
Isto na vesão 1.2. Não sei como está a versão 2.
Abraço.
Caro Luís, então preciso usar algo como Hibernate para fazer acesso a camada de negócios de forma mais eficiente ao invés do uso de sql puro?
Obrigado.
luis.soares
Exato, meu caro.
O Hibernate é um ótimo frameWork de persistência.
Não é complicado de usar, e é bem robusto.
É o mais utilizado no mercado, sem dúvida.
Struts como Controlador, e Hibernate para a camada de negócios.
Para ficar ainda melhor, pesquise sobre DAOs genéricos. Na verdade são Daos que se utilizam dos benefícios trazidos pelo Generics (Java 5).
Abraço !
deniswsrosa
Sobre a parte do sql puro… ainda é vantagem fazer a persistencia da forma tradicional, pois por mais que o hibernate seja um ótimo framework, uma persistencia via jdbc ainda tem uma melhor desempenho. Se desempenho nao for algo critico na sua aplicacao hibernate eh uma ótima escolha.
Dieval_Guizelini
Eu não acho que camada de persistência faça parte da “camada de negócio”, ela é apenas um “ser” necessário até que os sgbd sejam OO…
Agora, normalmente é a camada de negócio que “depende” e “usa” a camada de persistência.
luis.soares
JWCunha, no caso comentado sobre performance do Hibernate, o que se usa comumente é deixar as operações triviais e consultas simples a cargo do hibernate. As consultas mais complexas ou mesmo alterações de dados que envolvam maior complexidade, utilize SQL puro. O hibernate dá suporte a isso. Voce pode escrever instruções sql puras. Com isso, você pode utilizar melhor índices e otimizações no bancos de dados, que são específicas de suas aplicações.
J
jwcunha
Obrigado pela dica, já até andei conversando com um amigo bastante fluente em Java para web e ele me disse que existem profissionais que fazem somente otimização de consultas HBM (Hibernate). Para minha aplicação que tenho 85% de inserções tradicionais (CRUD), vou optar pelo uso do hibernate mesmo, espero ter sucesso!
J
jwcunha
luis.soares:
Exato, meu caro.
O Hibernate é um ótimo frameWork de persistência.
Não é complicado de usar, e é bem robusto.
É o mais utilizado no mercado, sem dúvida.
Struts como Controlador, e Hibernate para a camada de negócios.
Para ficar ainda melhor, pesquise sobre DAOs genéricos. Na verdade são Daos que se utilizam dos benefícios trazidos pelo Generics (Java 5).
Abraço !
Luis, que o Hibernate é bastante robusto tudo bem, mas o que é feito normalmente quando se tem todo um modelo relacional, ou seja, toda parte de Elaboração do RUP já foi feita utilizando Entidade-Relacionamento e no momento da construção opta-se por utilizar o Hibernate que é tipicamente OO? Existe alguma facilidade para esta migração ou tenho que fazer todos os mapeamentos novamente só que seguinte a orientação por objetos?
Outra coisa, estou para fazer o pedido de compra dos Livros: Struts e Hibernate em Ação da Editora Moderna, você tem alguma crítica a eles ou é realmente um bom investimento?
Mais uma vez muitíssimo obrigado e confesso que estou impressionado com o apoio obtido neste fórum.
[]'s, JWCunha
luis.soares
JWCunha, pela conhecimento que tenho do Hibernate, você vai conseguir utilizar o hibernate sem problemas, mesmo com a estrutura relacional que você já tem. Eu aconselharia uma mudança para o modelo OO, desde que o impacto no seu projeto seja viável.
Agora não sei qual o ganho com o hibernate em uma abordagem relacional.
Acredito que o ideal seja criar um novo Post aqui no GUJ, para discutir este assunto, que é interessante, sobre migrar um projeto para OO para usar o Hibernate, e qual o comportamento do hibernate nessa abordagem. Existem pessoas com mais experiência no fórum que poderão dar uma visão mais completa sobre ele.
Com relação ao livro de Strus e Hibernate, já ouvi muitos bons comentários sobre ele. Acredito que seja bom, embora eu não os tenha.
A comunidade Java e aqui do GUJ em particular, é bem prestativa e colaborativa. Faça o mesmo ! Auxilie aqueles que estão chegando agora. Isto gera sinergia !!
Abraço !
J
jwcunha
Dieval Guizelini:
Eu não acho que camada de persistência faça parte da “camada de negócio”, ela é apenas um “ser” necessário até que os sgbd sejam OO…
Agora, normalmente é a camada de negócio que “depende” e “usa” a camada de persistência.
8)
Bem, esta aí uma dúvida que em algumas discussões vêm a tona. Em que compreende realmente a camada M do paradigma MVC senão o mapeamento das entidades persistíveis (armazenadas em dispositivos secundários) dentro da aplicação. Talvez vc possa trazer uma luz a esta discussão.
[]'s, JWCunha
J
jwcunha
luis.soares:
JWCunha, pela conhecimento que tenho do Hibernate, você vai conseguir utilizar o hibernate sem problemas, mesmo com a estrutura relacional que você já tem. Eu aconselharia uma mudança para o modelo OO, desde que o impacto no seu projeto seja viável.
Agora não sei qual o ganho com o hibernate em uma abordagem relacional.
Acredito que o ideal seja criar um novo Post aqui no GUJ, para discutir este assunto, que é interessante, sobre migrar um projeto para OO para usar o Hibernate, e qual o comportamento do hibernate nessa abordagem. Existem pessoas com mais experiência no fórum que poderão dar uma visão mais completa sobre ele.
Com relação ao livro de Strus e Hibernate, já ouvi muitos bons comentários sobre ele. Acredito que seja bom, embora eu não os tenha.
A comunidade Java e aqui do GUJ em particular, é bem prestativa e colaborativa. Faça o mesmo ! Auxilie aqueles que estão chegando agora. Isto gera sinergia !!
Abraço !
Luis, estarei criando um novo tópico sobre o assunto, até mesmo para poder avaliar o impacto no projeto que, para variar, já está ficando com o prazo estrangulado.
PS.: irei estar de forma bastante efetiva neste fórum visto a qualidade das contribuições.
[]'s,JWCunha
Dieval_Guizelini
jwcunha:
Dieval Guizelini:
Eu não acho que camada de persistência faça parte da “camada de negócio”, ela é apenas um “ser” necessário até que os sgbd sejam OO…
Agora, normalmente é a camada de negócio que “depende” e “usa” a camada de persistência.
8)
Bem, esta aí uma dúvida que em algumas discussões vêm a tona. Em que compreende realmente a camada M do paradigma MVC senão o mapeamento das entidades persistíveis (armazenadas em dispositivos secundários) dentro da aplicação. Talvez vc possa trazer uma luz a esta discussão.
[]'s, JWCunha
Cunha,
para mim, tudo que não é necessário a “lógica do negócio” não faz parte do modelo…
Aplicando esta regra, fica mais fácil você classificar a visão e o controlador… no meu entender a camada modelo deveria ser implementado como um conjunto de regras de negócios, independente da camada de interface e da camada de persistência.