A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Nilson de Souza Rego Jr.1 Persistência de Dados em.

Apresentações semelhantes


Apresentação em tema: "Nilson de Souza Rego Jr.1 Persistência de Dados em."— Transcrição da apresentação:

1 Nilson de Souza Rego Jr.1 Persistência de Dados em

2 2 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.

3 3 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.

4 4 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.

5 5 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.

6 6 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. “Como você vê as alternativas aos bancos de dados relacionais, como bancos de dados OO? “ “Nós não vemos” -Gavin King, criador do Hibernate.

7 7 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.

8 8 Mapeamento OR, como?  O mapeamento OR tem 3 componentes Modelo Orientado a objetos, que é o modelo o.o. 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.

9 9 Diagrama MODELO ORIENTADO A OBJETOS PERSITÊNCIA LÓGICA PERSITÊNCIA FÍSICA

10 10 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.

11 11 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 a 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.

12 12 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.

13 13 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

14 14 Persistência de Dados: Objetos Simples  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.

15 15 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.

16 16 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

17 17 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; } }

18 18 Persistência de Dados: Objetos Simples, exemplo  Arquivo de mapeamento da classe (CD.hbm.xml)

19 19 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.

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

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

22 22 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"

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

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


Carregar ppt "Nilson de Souza Rego Jr.1 Persistência de Dados em."

Apresentações semelhantes


Anúncios Google