You are on page 1of 13

Engenharia da Computao

Programao de Aplicativos II

Framework de mapeamento Objeto-Relacional: HIBERNATE

Hibernate X JDBC

JDBC umas das maneiras mais diretas para desenvolver uma aplicao java que interaja com o banco de dados. Esta tecnologia atende a um percentual considervel das necessidades, porm conforme nossas aplicaes evoluem, sentimos necessidade de padronizar a arquitetura, codificao e as operaes realizadas. Dessa forma ferramentas como o Hibernate so uma tendncia natural para este tipo de situao.

Hibernate e o sql

Para utilizar ferramentas deste propsito temos que entender melhor o conceito da especificao JPA (Java Persistence API) Entender a linguagem SQL e o modelo relacional ajuda a desenvolver melhor com o Hibernate. Somados a estes conceitos temos tambm a DQL (Data Query Language). Tudo que o Hibernate faz traduzido par a linguagem sql e o modelo relacional.

ORM (Mapeamento Objeto-Relacional)

Podemos entender como a forma automatizada e transparente de persistir objetos que pertencem a uma aplicao nas respectivas tabelas em um banco de dados relacional O ORM trabalha para fazer a transformao de dados de uma maneira a outra de forma reversvel.

Pontos de uma soluo ORM

Uma API para realizar operaes CRUD bsicas em objetos de classes persistentes. Uma linguagem ou API para especificar consultas que se referem s classes ou s propriedades das classes Facilidade de especificar o metadado de mapeamento. Uma tcnica que permita trabalhar com objetos transacionais, com carregamento sob demanda e etc.
O hibernate possui as caractersticas listadas, o que o caracteriza como uma aplicao ORM

Hibernate e JPA

O hibernate uma das solues ORM encontradas hoje no mercado. Existem outras como: TopLink da Oracle e OpenJPA da Apache. Seja qual for a soluo adotada tende a seguir a especificao JPA, esta integrando uma especificao maior EJB, responsvel por padronizar todo o modelo de programao.

Hibernate (3 Frentes)

Hibernate Core: a base para todo o conjunto de solues para persistncia que esta tecnologia oferece. Linguagem prpria HQL e interface de pesquisa critria. Hibernate Annotations: substituio dos arquivos xml para mapeamento de classes por anotaes na prpria classe do modelo. Hibernate EntityManager: realiza as operaes de persistncia.

Instalao

http://www.hibernate.org/ Disponvel para Download no site. J esta integrado ao NetBeans. Quando criamos o projeto j podemos incluir a biblioteca. Depois apenas necessrio a configurao da conexo/banco de dados utilizado.

Arquivo Configurao

Hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory>

Configuraes diversas

</session-factory> </hibernate-configuration>

Banco de dados e Dialeto


<!-- Configurao da conexo com o banco MySQL e dialeto --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/agenda</property> <property name="connection.username">root</property> <property name="connection.password">root</property>

Configuraes de Debug

<!-- Configuraes de debug -->

<property name="show_sql">true</property> <property name="format_sql">true</property> <property name="generate_statistics">true</property> <property name="use_sql_comments">true</property>

Pool de conexes

<!-- Usando as configuraes do C3PO para pool de conexes --> <property name="c3po.min_size">5</property> <property name="c3po.max_size">20</property> <property name="c3po.timeout">300</property> <property name="c3po.max_statements">50</property> <property name="c3po.idle_test_period">3000</property>

Mapeamento XML ou Annotations


<!-- Mapeando classes --> <mapping resource="crudxml/Contato.hbm.xml"/> <mapping class="crudannotations.ContatoAnnotations"/>

You might also like