View
25
Download
0
Category
Preview:
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Introdução ao Hibernate
Cássio FreireRafael 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)
Arquitetura base
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 …
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
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
Cenário de Teste
JSP Servlet
Hibernate BD
HQL SQL
Hibernate Properties File Server.xml
Properties
Database Schema
Java Class Files
Hibernate cfg.xml
Dialeto
Arquivo que mapeia o objeto a ser persistido
Hibernate Mapping (XML) File
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')
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
Herança - DomesticCat
Relacionamentos (Ex: One-to-Many, Many-to-One)
Exemplo – Execução
• http://172.17.104.53/quickstart
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.
J2EE Patterns(DataAccessObject + ValueObject):. Estrutura
Encapsula todos os acessos à
origem de dados
Hibernate
Transportador de Dados
J2EE Patterns(DataAccessObject + ValueObject):. Participantes e Responsabilidades
HIB
ER
NA
TE
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
Recommended