persisten cia hibernate

Upload: henrique-schivo

Post on 08-Jan-2016

263 views

Category:

Documents


0 download

DESCRIPTION

Realizando persistência de dados com Hibernate, creditos no arquivo.

TRANSCRIPT

  • Persistncia de Dados em

    Nilson de Souza Rego Jr.

  • TpicosConceitos 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 DadosBancos 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.

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

  • O.O. + B.D. , quadro atualProblema: 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.

  • Mapeamento OR, a soluo.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.

  • Mapeamento OR, como?O mapeamento OR tem 3 componentes

    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.

  • DiagramaMODELO ORIENTADOA OBJETOSPERSITNCIALGICAPERSITNCIAFSICA

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

  • Mapeamento OR em HibernateO 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 JavaAo 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.

  • Mapeamento OR em HibernateNo 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.

  • Persistncia de Dados em HibernatePodemos dividir a persitncia de dados do Hibernate em dois tipos:

    Persistncia de objetos simples

    Persistncia de colees

  • Persistncia de Dados:Objetos SimplesTodo 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.

  • Persistncia de Dados:Objetos SimplesObjetos que podem ser persistidos:Todos os tipos primitivos de java

    Os objetos gerados pelas classes do pacote java.lang (equivalncia a tipos primitivos do B.D.)

    As classes: java.util.Calendar, java.util.Date, java.sql.Date, java.sql.Time, java.sql.Timestamp.

  • Persistncia 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 sero iguais uma chave estrangeira em um B.D. relacional

  • Persistncia de Dados:Objetos Simples, exemploClasse

    publicclassCD{privateStringnome;privateStringartista;privatejava.util.Datelancamento; publicCD(){} publicStringgetNome(){ returnID; } publicvoidsetNome(int nome){ this.nome=nome; } // Sets e Gets publicjava.util.DategetNascimento(){ returnnascimento;} publicvoidsetNascimento(java.util.Datelancamento) { this.lancamento=lancamento; }}

  • Persistncia de Dados:Objetos Simples, exemploArquivo de mapeamento da classe (CD.hbm.xml)

  • Persistncia de Dados:Colees

    Apesar de mapear colees, cada coleo mapeada de maneira diferente. Vamos ver como persistir um array e um map.

  • Persistncia de Dados:Colees: Array

  • Persistncia de Dados:Colees: Map

  • HQL Hibernate Query LanguagePara fazer consultas ao banco o Hibernate usa HQL, que apesar do nome, inteiramente orientado a objetos, entendendo noes como herana e polimorfismo.Ex: select nome from eg.CD as cd join cd.nome as "Ventura"

  • Persistncia de HeranasExistem 3 estratgias para mapeamento de heranas:

    Por Hierarquia

    Por Subclasse

    Por Classe Concreta

  • RefernciasHome Page do Hibernate:http://www.hibernate.orgTutorialhttp://www.roseindia.net/hibernate/index.shtmlMapeamento ORhttp://en.wikipedia.org/wiki/Object-relational_mapping