to seguindo um tutorial de aplicação web de cadastro…to usando struts como controller da minha aplicacao, jsp como view e no modelo javabeans chamado Contato, um ContatoDAO e uma fabrica de conexao…ConnectionFactory…
agora quero usar o hibernate como modelo da aplicacao…o q fazer???
tenho meus action de inserçao, atualizacao, listagem, e os actionForm…como que fica???
como resolver isto???
obs: uso o netbeans 5.0 que ja vem com o struts integradoo…valeu
O Hibernate não atua como modelo. Ele é uma ferramenta de mapeamento OR. A mudança que você tem que fazer para utilizar o Hibernate é:
Refactorings nos DAOs para suportar o Hibernate, pois parece que você está utilizando JDBC.
Criar uma classe que faça o tramento da Session e Transaction. Geralmente um classe chamada HibernateUtil. Se quiser, tenho um exemplo aqui utilizando thread local.
Não sei se suas actions estão muito acopladas aos DAOs, mas os refactorings nelas são poucos.
Basicamente é isso. O outro passo é mapear o relacionamento entre as classes.
publicclassContato{privateLongid;privateStringnome;privateStringemail;privateStringendereco;// métodos get e set para id, nome, email e endereçopublicStringgetNome(){returnthis.nome;}publicvoidsetNome(Stringnovo){this.nome=novo;}publicStringgetEmail(){returnthis.email;}publicvoidsetEmail(Stringnovo){this.email=novo;}publicStringgetEndereco(){returnthis.endereco;}publicvoidsetEndereco(Stringnovo){this.endereco=novo;}publicLonggetId(){returnthis.id;}publicvoidsetId(Longnovo){this.id=novo;}}
e as action, colocarei somente uma action de adicionar contato
// série de imports aquipublicclassAdicionaContatoActionextendsAction{publicActionForwardexecute(ActionMappingmap,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{// logSystem.out.println("Tentando criar um novo contato...");// formulário de clienteContatoFormformulario=((ContatoForm)form);// acessa o beanContatocontato=formulario.getContato();// adiciona ao banco de dadosContatoDAOdao=newContatoDAO();dao.adiciona(contato);// ok.... visualizaçãoreturnmap.findForward("ok");}}
** ai ta mais ou menos as classes da minha aplicação…gostaria que vc
me exemplificasse como ficaria com a integração com o hibernate, pois
to meio perdidoo…
** outra dúvida, nestas classes que citei o que faz parte da minha
camada de negocios???
valeuuu
G
Guilherme_MelloPJ
O primeiro passo é criar uma classe que substitua essa classe ConnectionFactory. Pois ela retorna uma conexão JDBC.
Depois é preciso realizar alterações no DAO. Como você deve saber, os DAOs com hibernate são diferentes. Por exemplo, para consultas você pode utilizar HQL ou a Criteria API.
Você ainda terá que criar os XMLs de mapeamento para que o hibernate consiga enxergar as propriedades dos seu POJOs. Para gerar esses XMLs você pode usar engenharia reversa nas tabelas do seu banco de dados.
Outra coisa, você precisa realmente utilizar o Struts ? tem muitos frameworks melhores por aí… mas se você não tiver escolha…
Digo isso porque a integração do Struts com o Spring por exemplo, é meio chatinha. E essa integração poderia te trazer muita produtividade.