Professional Documents
Culture Documents
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Persistncia
Capacidade de gravarmos dados em memrias no volteis: hard-disk, tape-backup, CD, DVD, etc. Necessidade bsica, 99% dos softwares corporativos necessitam; Quanto mais culpados queremos encontrar, mais dados armazenamos; Linguagens como Dbase, Clipper, Visual Object, Paradox, FoxPro eram orientadas a dados persistentes;
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Tecnologias Populares
Homens quando eram homens, escreviam seu prprio cdigo SQL especialista em SQL embriagado, lembrando quando
ganhava R$ 80,00 por hora para escrever procedures
JDBC com cdigo SQL e Data Access Object Pattern; RDO, ADO e DAO na plataforma Microsoft; PL/SQL com Oracle Forms; Computadores quando no eram computadores, rodavam cdigo SQL escrito por homens autor deste slide embriagado,
tentando fazer uma gracinha para o pblico
JDBC
API do Java para acesso a banco de dados; Trabalha com esquema de Driver; 4 Tipos de Driver:
1 JDBC / ODBC Bridge para comunicao com Drivers Windows 2 Nativo Cdigo de acesso ao DB escrito em C / C++; 3 Middleware Driver DB acessado via middleware especializado 4 Puro Java Acesso de baixo nvel ao DB totalmente escrito em Java. Driver desejado e utilizado na maior parte.
Com o Driver obtemos conexes; Com conexes enviamos comandos; Comandos podem gerar resultados (select)
DEMO JDBC
Mundo novo
No mundo novo...
Entity Beans 1.x (padro Java EE) Entity Beans 2.0 e 2.1 (padro Java EE) Hibernate Oracle TopLink Java Data Objects Prevailer
Alternativas..
Em algumas implementaes, o XML ficou excessivo (Entity 2.x); Alternativas para o padro Entity Bean: Spring; Pico Container; OJB; Hibernate stand-alone; Hiberante com EJBs Session; Outro framework com Web ou EJB;
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Porque utilizar?
Custo: opensource LGPL; Benefcio: uma soluo poderosa, madura e portvel compatvel com diversos bancos de dados relacionais e servidores de aplicao JEE; Curva de aprendizado: rpida comparada com as outras solues; Documentao: livros publicados e diversos tutoriais e artigos disponveis na internet;
Porque utilizar?
Suporte: pode ser contratado comercialmente ou pode se recorrer a uma comunidade extremamente ativa nos fruns de discusso; Padro De Facto : amplamente adotado pelo mercado superando as especificaes EJB 2.x e JDO; Os conceitos do projeto Hibernate foram adotados para os entity beans segundo a especificao EJB 3; Nmero de profissionais;
Exemplo
Um JavaBean Cliente, contendo os atributos: codigo, nome, endereco, telefones Uma tabela no RDBMS: codigo (auto-increment) int nome (varchar 255) endereco (varchar 255) telefones (varchar 255)
XMLs
Um hibernate-config.xml configurando o JDBC e dialeto:
XMLs
Um xml para cada definio de entidade, neste caso chamamos o arquivo abaixo de Cliente.hbm.xml:
Salvar e Remover
Relacionamentos
Podemos definir as associaes / composies dos nossos objetos. Vejamos um exemplo para a classe Pedido:
Relacionamentos
Neste caso estamos definindo que um Pedido contm uma coleo de itens (um-para-muitos):
A classe Pedido:
O fenmeno Xdoclet
Diversas tecnologias passaram a utilizar documentos XML como parte da implementao e configurao de um framework Exemplos: Struts, Hibernate, EJBs, Java Web Components, Log4J, Tiles, etc. Resultado: um emaranhado de XMLs para gerenciar; Soluo = usar comentrios formato JavaDoc para inserir meta-dados e configuraes no cdigo Java.
O fenmeno Xdoclet
O Xdoclet estende o JavaDoc, criando anotaes no estilo @XPTO para gerar arquivos XML para os frameworks.
O fenmeno Xdoclet
Xdoclet foi amplamente utilizado para EJBs Entity e Session, uma vez que seu primeiro objetivo foi simplificar tais tecnologias; Xdoclet influnciou muito no desenvolvimento Java Enterprise; Trabalha integrado ao Ant;
O fenmeno Xdoclet
No Java 1.5 a anotaes so nativas, ou seja, no precisamos colocar em comentrios. Ex.:
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Persistence API
Parte resultante da especificao de EJB 3.0, alguns dos objetivos do EJB 3.0, relevantes para persistncia:
Definio de meta-dados (annotations do Java 5) Definio de valores defaults programticos e de meta-dados a fim de reduzir a necessidade de o desenvolvedor declarar comportamentos comuns e esperados. Simplificao para persistncia via entity beans. Suporte para modelos de domnio leves, com herana e polimorfismo. Eliminao completa das interfaces para entidades persistentes Especificao de meta-dados e elementos de deployment descriptor para mapeamento objeto relacional
Persistence API
Padronizao do mecanismo de persistncia mais adotado no mercado; Hibernate uma implementao JPA; TopLink uma implementao JPA; Podemos utilizar o JPA sem a necessidade de um container de EJBs (ligthweigth container); Entidades podem ser injetadas em EJBs ao invs de lookups JNDI; As capacidades podem ser ampliadas atravs de anotaes especficas;
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Hibernate e JPA
Downloads: Hibernate 3.2 Core Hibernate 3.2 Persistence Manager Configurar uma biblioteca com os Jars do lib de ambos diretrios; O NetBeans 5.5 oferece suporte para JPA e vem prconfigurado com Oracle TopLink; Pode-se utilizar com Swing, Web Applications e EJBs;
Agenda
1. Histrico sobre persistncia 2. Tecnologias populares 3. Hibernate clssico 4. Java Persistence API 5. Hibernate & JPA 6. Demo: Desenvolvimento Swing com Hibernate / JPA 7. Demo: Desenvolvimento Web com Hibernate e Faces 8. Concluses
Concluses
O que j era bom (Hibernate 3), ficou ainda melhor! (3.2 com Persistence API); O foco das especificaes na facilidade de uso (ex. EJB, Faces, Java 5) comea a fazer diferena no mercado. Voc ainda escreve cdigo SQL???