quarta-feira, 29 de junho de 2011

Como Funciona o Hibernate???



Fala galera... Percebo eu que, para muitos, Hibernate é como se fosse Absinto....Muito escuta-se falar, pouco se sabe e quem ja usou diz que é MUITO bom!!! Então, hoje, vamos dar uma visão técnica da coisa...

Let´s Go!


Como o Hibernate funciona?

Hibernate é impulsionado por XML arquivos de configuração para configurar a conectividade de dados e classes mapa para tabelas de banco de dados com os quais precisa interagir. Esses arquivos XML contêm dados específicos de conexão, detalhes pool de conexão, as configurações de fábrica de transação, bem como referências a outros arquivos XML que descrevem as tabelas do banco de dados.


Quando desenvolvedor escreve o código para chamar API, a API chamada executa necessárias SQL em tempo de execução. Ao invés de uso de código de byte-processamento ou geração de código , o Hibernate usa reflexão em tempo de execução para resolver as propriedades persistentes de uma classe. Os objetos persistentes são definidos em um mapeamento documento, que descreve os campos persistentes e associações, bem como subclasses ou proxies do objeto persistente. Os documentos de mapeamento são compiladas no momento da aplicação de inicialização e fornecer a estrutura  as informações necessárias para uma classe.



No tempo de compilação de documentos de mapeamento, uma SessionFactory também é criado que fornece o mecanismo para o gerenciamento de classes persistentes, ea interface Session. A classe Session fornece a interface entre o persistente dados armazenados e os aplicação. A interface Session envolve uma conexão JDBC, que pode ser usuário de gestão ou controlado pelo Hibernate. Esta interface destina-se apenas utilizado por um único threadapplication. Isso significa que após a conclusão do sessão, aplicativo for fechado e descartado.


Hibernate Arquitetura

Ao contrário de outras tecnologias , o Hibernate fornece persistência como um serviço, e não como um quadro. Ele se integra perfeitamente com diversas arquiteturas de aplicativos .
Há dois comum (recomendado) arquiteturas podem ser vistos, incluindo o Hibernate como uma camada de persistência.

O diagrama a seguir descreve o Web Arquitetura (twotiered) de Hibernar Hibernate Arquitetura O diagrama acima mostra que o Hibernate está usando mapeamento XML para configurar a conectividade de dados para tabelas de banco de dados, e classes de mapa para a prestação de serviços de persistência (e objetos persistentes) para o aplicativo.

Para usar o Hibernate, é necessário para criar classes Java que representam a tabela no banco de dados e mapear a variável de instância na classe com as colunas no banco de dados. Uma vez que o mapeamento é completa, diversas operações como selecionar, inserir, atualizar e excluir os registros podem ser realizados pelo Hibernate na tabela de banco de dados. Hibernate cria automaticamente a consulta para executar essas operações. Também pode ser usado para persistir JavaBeans utilizados por servlets / JSPs na arquitetura Model View Controller (MVC).

Agora, o diagrama a seguir descreve a Empresa (três camadas) de Arquitetura Hibernate: O diagrama acima mostra que o Hibernate está usando o banco de dados e dados de configuração para fornecer serviços de persistência (e objetos persistentes) para o aplicativo .

Para usar o Hibernate, é necessário para criar classes Java que representa a tabela no banco de dados e então mapear a variável de instância na classe com as colunas no banco de dados. Em seguida, Hibernate pode ser usado para executar operações no banco de dados como select, insert, atualizar e excluir os registros na tabela. Hibernate cria automaticamente a consulta para executar essas operações.
Hibernate arquitetura tem três componentes principais:
  • Gerenciamento de conexão 
    Hibernate Connection oferecem serviços de gestão uma gestão eficiente das conexões de banco de dados. Conexão com o banco é a parte mais cara de interagir com o banco de dados, pois requer uma grande quantidade de recursos de abrir e fechar o banco de dados de conexão. 

  • Gerenciamento de transações: 
    Serviço de gerenciamento de transações oferecem a possibilidade de o usuário executar mais de um banco de dados de declarações de cada vez. 

  • Mapeamento objeto relacional: 
    Mapeamento objeto relacional é uma técnica de mapeamento a representação de dados a partir de um modelo de objeto para um modelo de dados relacional. Esta parte do hibernate é usado para selecionar, inserir, atualizar e excluir os registros formam a tabela subjacente. Quando passamos um objeto para um método Session.save (), Hibernate lê o estado das variáveis ​​desse objeto e executa a consulta necessária.
Hibernate é uma ferramenta muito boa, na medida do mapeamento objeto relacional é preocupação, mas em termos de gerenciamento de conexão e gerenciamento de transações, é falta de desempenho e capacidades.Por isso, normalmente hibernate está sendo usado com gerenciamento de conexão e transação outras ferramentas de gestão . Por exemplo apache DBCP é usado para o pool de conexão com o Hibernate.

Hibernate fornece uma grande flexibilidade no uso. É chamado de "Lite" arquitetura quando utiliza apenas o componente de mapeamento objeto relacional. Enquanto em "Full Cream" arquitetura todos os três componentes de mapeamento relacional de objeto, de gerenciamento de conexão e gerenciamento de transações) são utilizados.

Nenhum comentário:

Postar um comentário

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.