Vous êtes sur la page 1sur 26

Introduo ao Hibernate ca

Prof. Rafael Fernandes Lopes


Departamento Acadmico de Informtica e a Centro Federal de Educaao Tecnolgica do Maranho - CEFET-MA c o a

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

1 / 26

Introduo ca
Hibernate um mecanismo simples que permite persistir objetos Java e em bancos de dados; Fornece um arcabouo atravs do qual poss efetuar c e e vel mapeamentos objeto/relacionais, transformando dados tabulares de um BD em um modelo de objetos Java denido pelo desenvolvedor da aplicao; ca Utiliza XML para denir seus mapeamentos; Linguagem de consulta OO (HQL Hibernate Query Language); Sobrecarga m nima em relao ` JDBC: < 10% X benef ca a cios (separao de camadas, baixo acoplamento, etc). ca
Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca 2 / 26

Por que utilizar o Hibernate?


Com o Hibernate poss ter persistncia de dados de suas e vel e aplicaes sem, no entanto, perder as vantagens da orientao a co ca objetos; O desenvolvedor ganha tempo, uma vez que no h necessidade de a a reescrever cdigo DAO/JDBC; o SQL no precisa ser necessariamente utilizada (embora possa ser); a Mecanismo robusto de mapeamento objeto relacional; Caching e lazy loading melhoram o desempenho de consultas; Etc...
Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca 3 / 26

Quando usar?

Quando usar:

Sistemas em que a lgica de negcio voltada para o modelo de o o e objetos;

Quando NAO usar:

Sistemas em que a lgica de negcio muito concentrada no banco de o o e dados (stored procedures e triggers).

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

4 / 26

Arquitetura

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

5 / 26

Caracter sticas
Relacionamentos (many-to-one, many-to-many, one-to-one) Dialetos (MySQLDialect, OracleDialect, PostgreSQLDialect, etc); Identicadores:

vm: gera identicadores de tipo long, short, int; sequence: utiliza a sequencia das bases de dados DB2, PostgreSQL, Oracle, SAP DB, podendo ser long, shor ou int; hilo: utiliza um algoritimo para gerar identicadores do tipo long, short, ou int; uuid.hex, native, etc...

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

6 / 26

Bancos de dados suportados


DB2 7.1, 7.2; MySQL M3.23; PostgreSQL 7.1.2, 7.2, 7.3; Oracle 8i, 9i; Sybase 12.5; Interbase 6.0.1 (Open Source) with Firebird; HypersonicSQL 1.61, 1.7.0; Microsoft SQL Server 2000; Outros...
Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca 7 / 26

Aplicao Hibernate ca
Hibernate Properties File:

Arquivo (XML ou properties) contendo as propriedades de conexo ao a banco;

Hibernate Mapping (XML) File:

Arquivo XML que relaciona as propriedades do objeto aos campos da tabela;

Biblioteca Hibernate Java; HQL (Hibernate Query Language); Java Class Files:

Objetos cujo estado vai ser persistido;

Esquema do banco de dados:

tabela no banco de dados.


8 / 26

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

Primeiro exemplo

Bibliotecas necessrias: a

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

9 / 26

Primeiro exemplo

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

10 / 26

Primeiro exemplo

Estrutura de diretrio: o

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

11 / 26

Primeiro exemplo

Corpo genrico do arquivo de mapeamento: e

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

12 / 26

Primeiro exemplo

Arquivo de mapeamento:

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

13 / 26

Primeiro exemplo

Arquivo de mapeamento:

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

14 / 26

Primeiro exemplo
Arquivo de mapeamento:

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

15 / 26

Primeiro exemplo

Estrutura de diretrio: o

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

16 / 26

Primeiro exemplo

O arquivo de congurao do Hibernate pode ser congurado de trs ca e formas diferentes:

Programaticamente, atravs de um objeto do tipo e org.hibernate.cfg.Configurator; Atravs de um arquivo hibernate.properties, onde a localizao e ca dos mapeamentos informada atravs do cdigo da aplicao; e e o ca Atravs do arquivo hibernate.cfg.xml (abordagem mais comumente e utilizada).

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

17 / 26

Primeiro exemplo

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

18 / 26

Primeiro exemplo
Classe HibernateUtil:

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

19 / 26

Primeiro exemplo

Estrutura de diretrio: o

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

20 / 26

Primeiro exemplo

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

21 / 26

Primeiro exemplo

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

22 / 26

Primeiro exemplo

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

23 / 26

Associaes co

Alguns exemplos de aplicaoes c Hibernate...

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

24 / 26

Fechamento
Esta aula apresentou uma viso introdutria a respeito da arcabouo a o c Hibernate, que permite que aplicaes Java tenham seus objetos co persistidos em um banco de dados relacional; Atravs do uso do Hibernate o desenvolvedor ganha uma srie de e e vantagens discutidas nesta aula, a um custo relativamente baixo. Foi visto tambm como o Hibernate mapeia as informaes do BD com e co os atributos dos objetos Java das aplicaes; co Vamos aplicar o Hibernate em nossos estudos de caso, como parte da avaliao dos projetos. E aconselhvel que sejam baixados plugins ca a para a IDE Eclipse que facilitem a gerao dos arquivos de ca mapeamento e congurao. ca

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

25 / 26

Dvidas u

Dvidas? u

Prof. Rafael Fernandes Lopes (DAI / CEFET-MA) Linguagem de Programao III ca

26 / 26

Vous aimerez peut-être aussi