Persistência de Objetos em Java
-
Upload
armenio-cardoso -
Category
Technology
-
view
2.462 -
download
0
description
Transcript of Persistência de Objetos em Java
Persistência de Objetos
Formas de Persistência de Objetos em Java Desafios do Mapeamento Objeto-Relacional
Armênio Cardoso
Consultor, Arquiteto de Sistemas e Professor
Agenda
• Fundamentos;• Razões;• Java Database
Connectivity - JDBC;• Java Data Object - JDO;• Hibernate;• Enterprise Java Beans -
CMP;• Elementos de
Comparação;• Conclusões.
Fundamentos
• O Que é Persistência de Objetos?– Objetos Transientes.– Objetos Persistentes.
Fundamentos
• O Que é Persistência de Objetos?– Serialização.– Bancos de Dados.– Fontes de Dados.
Razões
• Aplicações Corporativas
Indústrias
Serviços
Comércio
Agricultura
Razões
• Requisitos Não Funcionais e Escala
DesktopDesktop GrupoGrupo Equipe deEquipe deProjetoProjeto DivisãoDivisão EmpresaEmpresa InternetInternet
101011 100100 1.0001.000 10.00010.000 100.000100.000
Confiabilidade e IntegridadeConfiabilidade e IntegridadeExtensibilidadeExtensibilidade
Segurança e AuditoriaSegurança e AuditoriaCapacidadeCapacidade
DesempenhoDesempenhoDisponibilidadeDisponibilidade
GerenciabilidadeGerenciabilidadeEscalabilidadeEscalabilidade
Razões
• Arquiteturas de Aplicações
IntegraçãoIntegração RecursosRecursosNegócioNegócioApresentaçãoApresentaçãoClienteCliente
Plataforma InferiorPlataforma Inferior
Plataforma SuperiorPlataforma Superior
Plataforma VirtualPlataforma Virtual
AplicaçãoAplicação
Java Database Conectivity
• Seleção de Driver para acesso ao Banco de Dados;
• SQL ANSI ou Proprietário embutido no código;
• Pool de Conexões externo;
• Statement, PreparedStatement, CallableStatement;
• ResultSet;
Java Data Object
• Especificado por comitê;• Os objetos têm que ser
JavaBean (serializ..);• Pode-se escolher como e
onde será feita a persistência - db, dboo, xml;
• Linguagem JDOQL;• Implementações de terceiros:
Kodo JDO, TJDO etc.• Não tem as funções de
agragação (sum, avg).
Hibernate
• Os objetos têm que ser JavaBean (serializ..);
• Persistência de objetos declarativa;
• Pool de Conexões interno;• Uso somente com bancos de
dados relacionais;• Facilidade de integração com
sistemas legados;• Requer reflexão em runtime
Enterprise Java Beans CMP
• Container Managed Persistence;
• Definido por comitê, mas dispõe de “extensões”;
• Sua implementação pode variar conforme o servidor de aplicação;
• Persistência de objetos declarativa;
• Aplicações genuinamente distribuídas;
• Linguagem EJBQL;
Elementos de Comparação
• Free sem código-fonte• Free com código-fonte• Contém ferramenta de mapeamento visual• Persiste classes arbitrárias sem obrigar herança• Requer construção de SQL de forma manual• Suporte a que Bancos de Dados• Suporte a Enterprise Java Beans• O mapeamento suporta agrupamento
http://c2.com/cgi/wiki?ObjectRelationalToolComparison
Elementos de Comparação
• Mapeamento suporta funções de agregação• Mantém identificações únicas para objetos• Resolve identificação circular• Gera o mapeamento ou as classes• Suporte a chaves primárias compostas• Optimistic Locking• Transações tratadas nos objetos
http://c2.com/cgi/wiki?ObjectRelationalToolComparison
Elementos de Comparação
• Clustering• Requer geração de código• Cache de queries• Suporte a associações ternárias• Mapeamento de uma classe em várias tabelas• Mapeamento de várias classes em uma tabela
http://c2.com/cgi/wiki?ObjectRelationalToolComparison
Elementos de Comparação
• Reflexão em runtimeIdentifica a Classe do Objeto em Questão
Monta um array com as propriedades
da classe
Conclusões
• As aplicações têm requisitos diferentes.
• As soluções que se apresentam têm aplicações diferentes.
• Produtividade, desempenho e integração como requisitos de seleção.
Obrigado!
Perguntas?