Top Banner
Introdução ao Hibernate Cássio Freire Rafael Duarte
21

Introdução ao Hibernate Cássio Freire Rafael Duarte.

Apr 19, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Introdução ao Hibernate

Cássio FreireRafael Duarte

Page 2: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Introdução

• Hibernate é um mecanismo simples que permite persistir objetos Java em banco de dados.------------------------------------------------------------------------

• Definição do mapeamento objeto relacional em XML• Linguagem de consulta OO (HQL - Hibernate Query Language)• Overhead mínimo em relação à JDBC

– overhead < 10% X benefícios (separação em camadas, baixo acopl.,etc)

Page 3: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Arquitetura base

Page 4: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Características

• Relacionamentos (many-to-one, many-to-many, one-to-one, etc)• Dialetos (MySQLDialect, OracleDialect, PostgreSQLDialect, etc)• Identificadores

– vm: gera identificadores 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 identificadores do tipo long, short,

ou int. – uuid.hex, native, etc …

Page 5: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Banco 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• Mckoi i SQL 0.93; Progress 9; Pointbase Embedded 4.3; SAP DB 7.3;

Informix; Ingres; FrontBase

Page 6: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Aplicação Hibernate

• Hibernate Properties File– arquivo (xml ou properties) contendo as propriedades de conexão ao

banco• Hibernate Mapping (XML) File

– arquivo xml que relaciona as propriedades do objeto aos campos da tabela

• Hibernate Java Library • HQL (Hibernate Query Language)• Java Class Files

– objeto cujo estado vai ser persistido• Database Schema

– tabela no banco de dados

Page 7: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Cenário de Teste

JSP Servlet

Hibernate BD

HQL SQL

Page 8: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Hibernate Properties File Server.xml

Properties

Page 9: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Database Schema

Page 10: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Java Class Files

Page 11: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Hibernate cfg.xml

Dialeto

Arquivo que mapeia o objeto a ser persistido

Page 12: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Hibernate Mapping (XML) File

Page 13: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Adicionando um Gato

// Obtém uma conexão JDBC e instancia uma nova sessãoSession session = sessionFactory.openSession();// Inicia uma nova transação (opcional)Transaction transaction = session.beginTransaction();Cat cat = new Cat();cat.setName("princess");cat.setSex('M');session.save(cat);transaction.commit();session.close();

SQL gerado MySQL:INSERT INTO cat (id, name, sex) VALUES (NULL, ‘princess', 'M')

Page 14: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Removendo um Gato

// Obtém uma conexão JDBC e instancia uma nova sessãoSession session = sessionFactory.openSession();// Inicia uma nova transação (opcional)Transaction transaction = session.beginTransaction();session.delete("FROM cat in class example.Cat WHERE cat.id

="+request.getParameter("id"))transaction.commit();session.close();

SQL gerado MySQL:DELETE FROM cat WHERE id = parametro

Page 15: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Herança - DomesticCat

Page 16: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Relacionamentos (Ex: One-to-Many, Many-to-One)

Page 17: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Exemplo – Execução

• http://172.17.104.53/quickstart

Page 18: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Tecnologia Complementares

• Hibernate + Struts• Hibernate + XDoclet + Ant• Hibernate + Design Patterns (DAO, VO, etc)Ex: Utilizar scripts do ANT com o Xdoclet para gerar os arquivos

“.hbm.xml” do hibernate

XDoclet – Ferramenta usada para geração automática de documentação e código. Combinada com o Ant, automatiza a criação de arquivos XML, aplicações Web, Java Beans, test cases para Junit, etc.

Ant – Permite automatizar todos os processos de construção, instalação, configuração, integração, deployment e depuração. Pode enviar e-mail, transferir arquivos via FTP, executar programas, transformar documentos usando XSLT, gerar PDF, etc.

Page 19: Introdução ao Hibernate Cássio Freire Rafael Duarte.

J2EE Patterns(DataAccessObject + ValueObject):. Estrutura

Encapsula todos os acessos à

origem de dados

Hibernate

Transportador de Dados

Page 20: Introdução ao Hibernate Cássio Freire Rafael Duarte.

J2EE Patterns(DataAccessObject + ValueObject):. Participantes e Responsabilidades

HIB

ER

NA

TE

Page 21: Introdução ao Hibernate Cássio Freire Rafael Duarte.

Referências

• Página Oficial– www.hibernate.org

• A Hitchhiker's Guide to Hibernate– http://files.blog-city.com/files/aa/1018/b/HibernateKickstart.html

• Hibernate in Action: Practical Object/Relational Mapping– http://www.theserverside.com/resources/HibernateReview.jsp

• Hibernate & Tomcat Quickstart– http://www.hibernate.org/hib_docs/examples/quickstart/html/

quickstart.html