Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Artigo Java Magazine 28 - Persistência com Hibernate

Artigo da Revista Java Magazine Edição 28.

BRK##: 27 - 31

Esse artigo faz parte da revista Java Magazine edição 28. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML.

Java Livre

Persistência com Hibernate

Conhecendo o Mais Popular Framework O/R

Aprenda a escrever aplicações eficientes baseadas no Hibernate: conceitos, mapeamentos comuns, HQL e técnicas para agilizar o acesso a dados

 

O Hibernate está se tornando o framework de persistência objeto-relacional preferido do desenvolvedor Java. Em sua terceira geração (o que para um projeto open source significa um nível de evolução e maturidade que poucos softwares, mesmo proprietários, conseguem atingir) ele é talvez o framework de persistência mais flexível e poderoso d mercado – e seus recursos serviriam de inspiração para as novas especificações EJB 3.0 e JDO 2.0 do JCP. Este artigo apresenta os primeiros passos na construção de aplicações com o Hibernate.

 

Elementos

Antes de falar do Hibernate em si, vale a pena conhecer alguns conceitos e alternativas á persistência objeto-relacional – veja o quadro “Persistência de objetos e bancos relacionados”.

Todo framework de persistência de objetos tem três componentes principais:

• Uma descrição do mapeamento entre o modelo de objetos em memória e seu correspondente em disco (no caso, tabelas de um banco relacional).

• Uma API para armazenamento e recuperação de objetos persistentes.

• Uma linguagem de consultas que permite determinar o subconjunto dos objetos persistentes que devem ser trazidos para a memória.

 

Daqui para frente apresentaremos como estes três componentes funcionam no Hibernate, e depois como compilar e executar uma aplicação baseada nesse framework.

Para manter o foco no framework, todos os exemplos serão aplicações de linha de comando, sem interfaces gráficas sofisticadas. É importante também destacar que a maioria das operações e configurações no Hibernate pode ser feita de ersas formas diferentes, o que permite que o framework seja utilizado na maior variedade possível de situações e seja adaptável aos ambientes mais ersos. Aqui não vamos explorar todas as variações possíveis, mas sim fornecer uma base segura para o leitor iniciar o seu aprendizado e obter resultados rápidos com o framework.

 

Começando o mapeamento O/R

Iniciamos com um modelo de objetos simples, apresentado na Figura 1. Este modelo seria parte de uma aplicação de cadastro de clientes numa empresa de comércio. Os clientes são agrupados em categorias para, por exemplo, receberam tratamento diferenciado em termos de promoções, parcelamento de compras e descontos sobre compras em volume.

 

Figura 1. Modelo de objetos das aplicações de exemplo

 

Observe que normalmente não seria representada a associação de composição entre Cliente e Endereço, pois conceitualmente um Endereço é apenas uma informação sobre um cliente, como nome ou sexo. Mas aqui essa composição foi deixada explícita, para fins de demonstração. Note também que há na classe Cliente um atributo telefones, que é uma coleção, pois cada cliente pode ter vários telefones cadastrados.

O modelo apresentado foi escolhido como exemplo porque expõe duas limitações do modelo relacional: a incapacidade de expressar atributos complexos (objetos com seus próprios atributos, em vez de valores simples) e atributos multivalorados. A representação natural deste modelo de objetos em Java é apresentado na Listagem 1, onde são definidas as classes Cliente, Categoria e Endereço.

Embora não seja obrigatório, recomenda-se seguir o padrão de JavaBeans na definição dos objetos persistentes (ou seja, usar métodos de acesso get/set para os atributos, definir um construtor sem argumentos e tornar todas as classes serializáveis).

A classe Endereço em si não é persistente, pois nunca serão armazenados endereços “soltos”; mas os dados dos endereços o serão, em decorrência do seu vínculo com Cliente. Num modelo relacional, nosso atributo endereço tem que ser “aberto” ou “achatado” (flattened), colocando-se seus atributos na própria tabela de clientes. E o atributo telefone teria que ser transformado ou em uma outra tabela, ou em vários campos no estilo “telefonei”, “telefone2” etc. Optamos pela primeira alternativa. O modelo relacional adotado para o exemplo é apresentado na



ATENÇÃO! A exibição deste artigo foi interrompida.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Fernando Lozano

é consultor independente, ativista do software livre e professor da Faculdade Metodista Bennett, além de autor do livro “Java em GNU/Linux” (Editora Alta Books). É detentor de certificações da Sun, IBM, Microsoft e Red Hat, sendo uma espécie de “agente duplo” nas várias tribos.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,47
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03