Professional Documents
Culture Documents
Tpicos
Conceitos bsicos: banco de dados(b.d), orientao a objetos(o.o.) ... Persistncia de dados e persistncia de objetos e mapeamento O/R. O que o Hibenate? Exemplo do Hibernate. Persistncia de dados em Hibernate.
Banco de Dados
Bancos de dados (ou bases de dados) so arquivos ou sistemas com uma estrutura regular que organizam informaes. Um Banco de Dados Relacional um sistema de armazenamento de dados baseado nos relacionamentos entre elementos de dados buscando uma normalizao (sem redundncias) dos dados.
3
Persistncia de Dados
A Persistncia de Dados consiste no armazenamento confivel e coerente das informaes em um sistema de armazenamento de dados.
Persistncia de Objetos
A Persistncia de Objetos o armazenamento consistente de objetos de uma aplicao o.o. para que estes objetos existam em diferentes execues de diferentes aplicaes.
Problema: Temos um aplicativo o.o. que precisa interagir com um banco de dados. O que fazer? Os bancos de dados o.o. ainda tm grandes desvantagens em relao aos relacionais. O padro vigente nas empresas o banco de dados relacional, e sem uma perspectivas de mudana.
Como voc v as alternativas aos bancos de dados relacionais, como bancos de dados OO? Ns no vemos -Gavin King, criador do Hibernate.
O Mapeamento Objeto-Relacional (OR) a soluo para o problema. O Mapeamento OR uma tcnica de desenvolvimento que consiste em representar o objeto de maneira relacional na gravao do banco de dados, e consegue fazer o caminho inverso sem perder informao.
7
Modelo Orientado a objetos, que o modelo o.o. em que os dados esto representados na aplicao, Persistncia Fsica, o modelo relacional em que os dados sero armazenados. Persistncia Lgica, que traduz o modelo o.o. para a maneira que eles sero armazenados na persistncia fsica, e vice-versa.
8
Diagrama
PERSITNCIA LGICA
PERSITNCIA FSICA
Hibernate
O Hibernate uma das solues mais difundidas para Mapeamento OR em Java. (Outras tambm famosas so OJB, JDO e o Toplink). Ele est sob a LGPL, ou seja, ele pode ser um usado em cdigo aberto e projetos comerciais. Usam o Hibernate em seus projetos: Sony, AT&T, PwC, Cisco... entre outras empresas.
10
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 no a chamadas SQL misturadas ao cdigo Java Ao contrrio de outros modelos de mapeamento OR, o hibernate no intrusivo. Ou seja, ele no obriga o programado a estender uma classe dele no seu aplicativo.
11
Mapeamento OR em Hibernate
No Hibernate temos que criar um arquivo de mapeamento que serve como o modelo da persistncia lgica. 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 padres de escrita e consulta.
12
13
Todo objeto a ser persistido pelo Hibernate precisa ter um campo ID, ou chave primria.
Apesar de desnecessrio no aplicativo, este campo ID ir dar a unicidade do objeto no banco de dados, e ir garantir a sua persistncia.
14
...
16
Classe
CD { String nome; String artista; java.util.Date lancamento;
}
public CD() {
<?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>
18
Apesar de mapear colees, cada coleo mapeada de maneira diferente. Vamos ver como persistir um array e um map.
19
22
Persistncia de Heranas
23
Referncias
http://www.hibernate.org
http://www.roseindia.net/hibernate/index.sht ml http://en.wikipedia.org/wiki/Objectrelational_mapping
Tutorial
Mapeamento OR
24