Persistência com Struts

12 respostas
J

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?

[]'s, JWCunha

12 Respostas

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.

J

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

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

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

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

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.

não sei se ajudou?

Criado 5 de dezembro de 2006
Ultima resposta 5 de dez. de 2006
Respostas 12
Participantes 4