Hibernate Apresentação

Slides:



Advertisements
Apresentações semelhantes
Java Avançado Luiz Carlos d´Oleron SJCP Hibernate II.
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Introdução a Programação Orientada a Objetos
Modelo de Objetos ODMG.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
SISTEMAS DE INFORMAÇÃO
Maurício Edgar Stivanello
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
Mapeamento Objeto Relacional
Iniciação ao Java – Márcio F. Campos
Módulo III Camada de Persistência
Caio Nakashima Hibernate Associação Caio Nakashima
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
1 Aula 7 Herança. 2003/2004 Programação Orientada para Objectos 2 Conceitos fundamentais: Herança Polimorfismo Ligação dinâmica.
Mapeamento de Objetos para Tabelas Relacionais
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
JAVA Orientação a Objetos
Hibernate Mapeamento O/R.
Linguagens Orientadas a Objeto
Integração com Banco de Dados
Hibernate: Consultas Francisco do Nascimento
Programação I Aula 2 (Métodos)
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados de Objetos
Introdução ao Hibernate
Hibernate Java avançado – PCC Jobson Ronan
Hibernate Java avançado – PCC Jobson Ronan
1.
Prof. Alexandre Monteiro Recife
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
A abordagem de banco de dados para gerenciamento de dados
PostGres: Um Banco de Dados Orientado a Objetos
Implementação Orientada a Objetos – Aula 03
Programação Orientada à Objetos
Universidade Católica de Angola Prática de laboratório Fundamentos de Programação II Frei Joaquim José Hangalo.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Ricardo Ferreira Schiavo
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Ferramentas de Mapeamento OO para ER Aluno Eduardo Mazza Professora Valeria Times
Hibernate: Relacionamentos e Herança
LINQ e Entity Framework
Hibernate Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação (2004/2005) Objetos Distribuídos Prof. Dr. Cláudio.
Nilson de Souza Rego Jr.1 Persistência de Dados em.
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Abr-17 Projetar Base de Dados Projetar base de dados.
Camada de Persistência
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
UCSal – Bacharelado em Informática
Módulo II Capítulo 1: Orientação a Objetos
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
Persistência em Software Orientado a Objetos:
Acesso a Banco de Dados com JDBC e DAO
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Hibernate – componentes, herança, e associações Jobson Ronan
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Persistência de dados e padrão DAO
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

Hibernate Apresentação Sidney Vilaça

Tópicos Conceitos básicos: banco de dados(b.d), orientação a objetos(o.o.) ... Persistência de dados e persistência de objetos e mapeamento O/R. O que é o Hibenate? Exemplo do Hibernate. Persistência de dados em Hibernate.

Banco de Dados Bancos de dados (ou bases de dados) são arquivos ou sistemas com uma estrutura regular que organizam informações. Um Banco de Dados Relacional é um sistema de armazenamento de dados baseado nos relacionamentos entre elementos de dados buscando uma normalização (sem redundâncias) dos dados.

Persistência de Dados A Persistência de Dados consiste no armazenamento confiável e coerente das informações em um sistema de armazenamento de dados.

Persistência de Objetos A Persistência de Objetos é o armazenamento consistente de objetos de uma aplicação o.o. para que estes objetos existam em diferentes execuções de diferentes aplicações.

O.O. + B.D. , quadro atual Problema: Temos um aplicativo o.o. que precisa interagir com um banco de dados. O que fazer? Os bancos de dados o.o. ainda têm grandes desvantagens em relação aos relacionais. O padrão vigente nas empresas é o banco de dados relacional, e sem uma perspectivas de mudança.

Mapeamento OR, a solução O Mapeamento Objeto-Relacional (OR) é a solução para o problema. O Mapeamento OR é uma técnica de desenvolvimento que consiste em representar o objeto de maneira relacional na gravação do banco de dados, e consegue fazer o caminho inverso sem perder informação.

Mapeamento OR, como? O mapeamento OR tem 3 componentes Modelo Orientado a objetos, que é o modelo em que os dados estão representados na aplicação, Persistência Física, o modelo relacional em que os dados serão armazenados. Persistência Lógica, que traduz o modelo o.o. para a maneira que eles serão armazenados na persistência física, e vice-versa.

Hibernate O Hibernate é uma das soluções mais difundidas para Mapeamento OR em Java. (Outras também famosas são OJB, JDO e o Toplink). Ele está sob a LGPL, ou seja, ele pode ser um usado em código aberto e projetos comerciais. Usam o Hibernate em seus projetos: Sony, AT&T, PwC, Cisco... entre outras empresas.

Mapeamento OR em Hibernate O hibernate isola o aplicativo de contato direto com o banco de dados, servindo como ponte entre os dois sistemas. E a melhor parte é que não possui chamadas SQL misturadas ao código Java Ao contrário de outros modelos de mapeamento OR, o hibernate não é intrusivo. Ou seja, ele não obriga o programado a estender uma classe dele no seu aplicativo.

Mapeamento OR em Hibernate No Hibernate temos que criar um arquivo de mapeamento que serve como o modelo da persistência lógica. Nele a classe o.o. é descrita de maneira pré-determinada pelo Hibernate, e assim ele monta um b.d. relacional consistente para aquela estrutura o.o. E o arquivo de mapeamento é utilizado para os padrões de escrita e consulta.

Persistência de Dados em Hibernate Podemos dividir a persitência de dados do Hibernate em dois tipos: Persistência de objetos simples Persistência de coleções

Vantagens Todo objeto a ser persistido pelo Hibernate precisa ter um campo ID, ou chave primária. Apesar de desnecessário no aplicativo, este campo ID irá dar a unicidade do objeto no banco de dados, e irá garantir a sua persistência.

Persistência de Dados: Objetos Simples Objetos que podem ser persistidos: Todos os tipos primitivos de java Os objetos gerados pelas classes do pacote java.lang (equivalência a tipos primitivos do B.D.) As classes: java.util.Calendar, java.util.Date, java.sql.Date, java.sql.Time, java.sql.Timestamp.

Persistência de Dados: Objetos Simples ... As classes: java.util.Calendar, java.util.Date, java.sql.Date, java.sql.Time, java.sql.Timestamp. E todas as classes declaradas como persistentes, elas serão iguais á uma chave estrangeira em um B.D. relacional

Persistência de Dados: Objetos Simples, exemplo Classe public class CD {      private String nome;      private String artista;      private java.util.Date lancamento;      public CD() {  }    public String getNome(){     return ID; }       public void setNome(int nome){     this.nome = nome; }     //  Sets e Gets    public java.util.Date getNascimento(){     return nascimento; }     public void setNascimento(java.util.Date lancamento) {     this.lancamento = lancamento; } }

Persistência de Dados: Objetos Simples, exemplo Arquivo de mapeamento da classe (CD.hbm.xml) <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd"> <hibernate-mapping>     <class name="Amigo" table="amigo">         <id name="nome" column="nome" type="string">             <generator class="assigned"/>         </id>         <property name="artista" type="string"/>         <property name="lancamento" type="date"/>     </class> </hibernate-mapping>

Persistência de Dados: Coleções Apesar de mapear coleções, cada coleção é mapeada de maneira diferente. Vamos ver como persistir um array e um map.

Persistência de Dados: Coleções: Array <array name="teste" table="Teste" cascade="all"> <key column="teste_ID"/> <index column="I"/> <many-to-many column="teste_ID" class="org.hibernate.Foo"/> </array>

Persistência de Dados: Coleções: Map <map name="holidays" table="holidays" schema="dbo" order-by="hol_name asc"> <key column="id"/> <index column="hol_name" type="string"/> <element column="hol_date" type="date"/> </map>

HQL Hibernate Query Language Para fazer consultas ao banco o Hibernate usa HQL, que apesar do nome, é inteiramente orientado a objetos, entendendo noções como herança e polimorfismo. Ex: select nome from eg.CD as cd join cd.nome as "Ventura"

Persistência de Heranças Existem 3 estratégias para mapeamento de heranças: Por Hierarquia Por Subclasse Por Classe Concreta

Referências Home Page do Hibernate: http://www.hibernate.org Tutorial http://www.roseindia.net/hibernate/index.shtml Mapeamento OR http://en.wikipedia.org/wiki/Object-relational_mapping

FIM