Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy Java Magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Introdução à Persistência com Hibernate – Parte 1 - Easy Java Magazine 4
Conceitos de mapeamento objeto-relacional e arquitetura do framework Hibernate. Apresenta a implementação nativa e o suporte à JPA deste framework de ORM.
Easy Java Magazine 4
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 4
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 4
Introdução à Persistência com Hibernate – Parte 1
Introdução ao desenvolvimento em Java com Hibernate
Atualmente, a maioria das aplicações utiliza uma linguagem orientada a objetos na construção do software, e um banco de dados relacional para a persistência – armazenamento – dos dados. Mesmo que haja outras soluções, esta ainda é a mais utilizada e, infelizmente, ela precisa lidar com o que é comumente chamado diferença de impedância entre o modelo de objetos e o modelo relacional. Esta diferença existe porque o paradigma orientado a objetos baseia-se em princípios de engenharia de software, enquanto o paradigma relacional baseia-se em princípios matemáticos – a álgebra relacional. Para juntar os dois modelos em uma aplicação é necessário entendê-los e conhecer suas diferenças. E, principalmente, é fundamental entender o processo de mapear objetos para o modelo relacional e como implementar esse mapeamento. A técnica de mapear uma representação de dados de um modelo de objetos para um modelo relacional é chamada Mapeamento Objeto-Relacional (ORM), que será mais amplamente discutida na próxima seção. Em projetos de desenvolvimento atuais, cada vez mais complexos, isso pode se tornar uma tarefa pesada e exigir muito tempo do programador.
O padrão Enterprise JavaBeans (EJB) de Java 2 Enterprise Edition (J2EE) já apresentava mecanismos de persistência baseados em contêineres ou baseados em beans, nas classes chamadas entity beans. No entanto essa proposta ainda sofria em certo grau com o descompasso entre modelo relacional e o modelo orientado a objetos.
Como uma alternativa ao modelo proposto pelo EJB2, surgiu o Hibernate – um framework de Mapeamento Objeto-Relacional. Seu objetivo era oferecer uma capacidade de persistência melhor e mais simples do que o proposto pelo EJB2. Em razão de ser uma solução simples, prática e de código aberto, logo o Hibernate se popularizou, tornando-se “de fato” o padrão de persistência em Java.
Uma consequência do sucesso do Hibernate como solução em ORM foi a participação ativa de Gavin King – o criador da ferramenta – no comitê da Java Specification Requests (JSR) 220. A JSR 220 descreve uma padronização de ORM, chamada Java Persistence API (JPA), que foi incluída na versão 3 do EJB. A especificação da JPA passou a ser implementada no Hibernate a partir da versão 3 do framework.
Soluções que oferecem suporte à JPA são denominadas provedores de persistência. Além do Hibernate, TopLink (Oracle) e EclipseLink (Eclipse.org) são exemplos de provedores de persistência.
Este artigo está divido em duas partes. Na primeira estudaremos os conceitos relacionados ao Hibernate, sua arquitetura e uma introdução à configuração das opções disponíveis para o mapeamento objeto-relacional. A aplicação prática do que será apresentado aqui deixaremos para a segunda parte da matéria.
Mapeamento Objeto-Relacional
De uma maneira bem simples, pode-se afirmar que Mapeamento Objeto-Relacional é a persistência, ou seja, o armazenamento de objetos criados em uma aplicação, para tabelas em um banco de dados relacional, usando metadados que descrevem tal mapeamento. Metadados são dados que descrevem outros dados, e serão estudados com mais detalhes em uma próxima seção. Essencialmente, o ORM trabalha convertendo dados que estão representados como objetos na aplicação, para a representação de tabelas em bancos de dados relacionais, e vice-versa. Ou seja, além de persistir os objetos na forma de tabelas, ele também recupera os dados convertendo-os em objetos. Uma solução de persistência deve ser automática e transparente. Transparente no sentido de que as classes persistentes não devem saber da existência e nem depender do mecanismo de persistência. Automática porque a solução de persistência deve liberar o desenvolvedor de ter que lidar com detalhes tais como, escrever comandos SQL e trabalhar com a API JDBC.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Introdução ao desenvolvimento em Java com Hibernate
Atualmente, a maioria das aplicações utiliza uma linguagem orientada a objetos na construção do software, e um banco de dados relacional para a persistência – armazenamento – dos dados. Mesmo que haja outras soluções, esta ainda é a mais utilizada e, infelizmente, ela precisa lidar com o que é comumente chamado diferença de impedância entre o modelo de objetos e o modelo relacional. Esta diferença existe porque o paradigma orientado a objetos baseia-se em princípios de engenharia de software, enquanto o paradigma relacional baseia-se em princípios matemáticos – a álgebra relacional. Para juntar os dois modelos em uma aplicação é necessário entendê-los e conhecer suas diferenças. E, principalmente, é fundamental entender o processo de mapear objetos para o modelo relacional e como implementar esse mapeamento. A técnica de mapear uma representação de dados de um modelo de objetos para um modelo relacional é chamada Mapeamento Objeto-Relacional (ORM), que será mais amplamente discutida na próxima seção. Em projetos de desenvolvimento atuais, cada vez mais complexos, isso pode se tornar uma tarefa pesada e exigir muito tempo do programador.
O padrão Enterprise JavaBeans (EJB) de Java 2 Enterprise Edition (J2EE) já apresentava mecanismos de persistência baseados em contêineres ou baseados em beans, nas classes chamadas entity beans. No entanto essa proposta ainda sofria em certo grau com o descompasso entre modelo relacional e o modelo orientado a objetos.
Como uma alternativa ao modelo proposto pelo EJB2, surgiu o Hibernate – um framework de Mapeamento Objeto-Relacional. Seu objetivo era oferecer uma capacidade de persistência melhor e mais simples do que o proposto pelo EJB2. Em razão de ser uma solução simples, prática e de código aberto, logo o Hibernate se popularizou, tornando-se “de fato” o padrão de persistência em Java.
Uma consequência do sucesso do Hibernate como solução em ORM foi a participação ativa de Gavin King – o criador da ferramenta – no comitê da Java Specification Requests (JSR) 220. A JSR 220 descreve uma padronização de ORM, chamada Java Persistence API (JPA), que foi incluída na versão 3 do EJB. A especificação da JPA passou a ser implementada no Hibernate a partir da versão 3 do framework.
Soluções que oferecem suporte à JPA são denominadas provedores de persistência. Além do Hibernate, TopLink (Oracle) e EclipseLink (Eclipse.org) são exemplos de provedores de persistência.
Este artigo está divido em duas partes. Na primeira estudaremos os conceitos relacionados ao Hibernate, sua arquitetura e uma introdução à configuração das opções disponíveis para o mapeamento objeto-relacional. A aplicação prática do que será apresentado aqui deixaremos para a segunda parte da matéria.
Mapeamento Objeto-Relacional
De uma maneira bem simples, pode-se afirmar que Mapeamento Objeto-Relacional é a persistência, ou seja, o armazenamento de objetos criados em uma aplicação, para tabelas em um banco de dados relacional, usando metadados que descrevem tal mapeamento. Metadados são dados que descrevem outros dados, e serão estudados com mais detalhes em uma próxima seção. Essencialmente, o ORM trabalha convertendo dados que estão representados como objetos na aplicação, para a representação de tabelas em bancos de dados relacionais, e vice-versa. Ou seja, além de persistir os objetos na forma de tabelas, ele também recupera os dados convertendo-os em objetos. Uma solução de persistência deve ser automática e transparente. Transparente no sentido de que as classes persistentes não devem saber da existência e nem depender do mecanismo de persistência. Automática porque a solução de persistência deve liberar o desenvolvedor de ter que lidar com detalhes tais como, escrever comandos SQL e trabalhar com a API JDBC.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy Java Magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

4 COMENTÁRIOS
Antonio Carlos Romualdo Da Silva
existe a parte 2 ? se sim como chego até ela ?
[há +1 ano] -
Responder
Devmedia - Equipe De Moderação
Haverá segunda parte na Easy Java Magazine 5, que será publicada no próximo mês.
[há +1 ano] -
Responder

Flavio Andrade Machado
O vídeo em flash está com o som muito baixo (mesmo aumentando o volume no componente de volume do próprio vídeo). Outra coisa é que existe a possibilidade de deixar o vídeo em tela cheia, mas a qualidade da imagem fica horrível quando usa-se está opção.
[há +1 mês] -
Responder
Você está em:
canal Java
Publicidade
Carlos Araújo
Space do autor
É professor do curso de Sistemas de Informação no Centro Universitário Luterano de Santarém – Pará. Leciona Estruturas de Dados e Linguagem de Programação Orientada a Objetos usando Java, desenvolve sistemas há 20 anos e é certificado SCJP. Mantém o blog http://professorcarlos.blogspot.com.
Space do autor


0
0
