Escolar Documentos
Profissional Documentos
Cultura Documentos
o em Software Livre
UNID 5
Assuntos
Mapeamento Objeto Relacional JPA Projeto com JPA
Mapeamento Objeto-Relacional
objetos.
Mecanismos de Persistncia
O mecanismo de programar diretamente em JDBC permite ter
de persistncia em objetos (CRUD), usando comandos SQL (insert, select, update e delete);
que simplicam a forma de tratar os objetos (dados), eliminando ou reduzindo o uso de SQL.
Java prope uma API de referncia chamada Java Persistence API
(JPA);
Existem vrias implementaes de JPA. Hibernate apenas uma implementao de JPA.
O JPA
O JPA oferece um modelo de persistncia
parte da especificao JSR 220, JPA pode ser utilizado em qualquer tipo de aplicao que no seja apenas em JEE (usando EJBs).
Utiliza anotaes para o mapeamento de
entidades.
Entidade na JPA
Entidade (Entity) o objeto a ser manipulado pelo
mecanismo de persistncia.
possuir um construtor sem argumentos atributos privados, mtodos pblicos de acesso aos atributos (gets e sets).
Entidade em JPA
Uma entidade JPA um POJO anotado
10
POJO um classe java com atributos privados, construtor vazio e mtodos de acesso gets e sets.
Mapeamento
- Configurao XML (no arquivo persistence.xml) - Anotaes (uso de cdigo anotado com @)
EntityManager Persistence
Unit define uma unidade de persistencia (do acesso a um banco de dados definido no persistence.xml)
11
informa ao JPA que a classe uma entidade e deve ser persistida entidade informa o nome da tabela que ir persistir a
@Table(name=...) @Id
marca uma propriedade da classe como chave primria identificador como gerar o id (chave primria) (name=...) informa o nome da coluna que ir persistir (tipo) Data, Hora e Data+Hora no persiste a coluna
@GeneratedValue @Column
o campo
@Temporal @Transient
12
Desenvolvimento de aplicaes JavaEE com EJB3 e JPA (usando web como cliente)
A arquitetura para aplicaes JEE baseadas na
13
Exemplo
14
Exemplo
15
16
17
18
Passos no Netbeans
1)Definir a conexo com o banco de dados 2)Criar o projeto da Aplicao 3)Gerar as entidades e o arquivo de configurao (persistence.xml) 4)Gerar os controladores (DAO) de persistncia
19
Modelo do Banco
Para o exemplo apresentado neste tutorial, deve ser
criado um banco de dados com as seguintes tabelas, representando uma aplicao para uma transportadora de cargas:
20
21
SQL a seguir.
CREATE TABLE CIDADE ( COD_CIDADE INTEGER PRIMARY KEY, NOME VARCHAR(40), VALOR_FRETE NUMERIC(10,2) ); CREATE TABLE DESPACHO ( NUMERO_CONTROLE INTEGER PRIMARY KEY, NOME_CLIENTE VARCHAR(80), PESO_CARGA NUMERIC(10,2), COD_CIDADE INTEGER REFERENCES CIDADE, VALOR_PAGAR NUMERIC(10,2), DATA_DESPACHO DATE );
22
23
comandos abaixo:
-- POPULAR A TABELA CIDADE INSERT INTO CIDADE VALUES (1,'RIO DE JANEIRO', 1500.0); INSERT INTO CIDADE VALUES (2,'SO PAULO', 1800.0); INSERT INTO CIDADE VALUES (3,'SO LUIZ', 600.0); INSERT INTO CIDADE VALUES (4,'RECIFE', 1200.0); INSERT INTO CIDADE VALUES (5,'SALVADOR', 2000.0);
Clique aqui para executar os comandos
24
Desconectando o banco
No final do processo, desconecte o banco para
25
26
Criando os projetos
O primeiro passo criar todos os mdulos do
(ExemploApp-ejb)
27
Escolhendo o projeto
Em Arquivo Novo Projeto, escolha Aplicativo Corporativo
na categoria JavaEE
28
Prximo.
29
marcadas as opes Criar mdulo EJB e Criar mdulo de aplicativo Web. Clique em Finalizar.
30
Estrutura do projeto
31
32
derby :/ / localhost: 1527/sample [app em APP]", como a conexo de banco de dados e clique em OK.
33
clique no boto Adicionar para que ele aparea na caixa Tabelas selecionadas (Note que a tabela relacionada, CIDADE tambm adicionado automaticamente) e clique em Prximo.
34
35
36
Criando o Bean de Sesso CidadeSession, para fornecer os mtodos CRUD de objetos de cidades Agora que temos as classes de entidade, o prximo
passo criar o componente Session (Stateless) que ir manipular e fornecer as funcionalidades CRUD sobre os objetos de cidades.
essas funes so as pginas JSF. Um dos benefcios de se fazer isso (ou seja, para fornecer as funcionalidades CRUD na camada EJB) a reutilizao porque as mesmas funes podem ser usadas por mais de uma pgina JSF. Outros benefcios incluem a escalabilidade, pois o container EJB pode ser facilmente ajustado e ampliado quando aumenta a carga de processamento no servidor.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
37
38
como "ejb", e manter o resto das opes como padro (Sem estado e Local). Clique em Finalizar.
39
Criando GErano Session Bean CidadeSession (2) "Utilizar No editor de cdigo, boto direito do mouse selecione
Gerenciador de Entidade..".
A anotao @PersistenceContext(unitName = "ExemploApp-ejbPU")
inserida automaticamente. Dessa forma, o EntityManager est pronto para ser usado.
40
41
42
parmetros..
Neste caso, estamos definindo o mtodo criar que corresponde a
43
criar que correponde ao comando para inserir os dados do objeto cidade no banco de dados:
em.persist(cidade);
44
45
46
47
cidade.
// receber os dados Cidade cidade = new Cidade(); cidade.setCodCidade(100); cidade.setNome("SANTARM"); cidade.setValorFrete(new BigDecimal(1400.00)); cidadeSession.criar(cidade); System.out.println("Cidade criada");
48
Referncias
BURKE, Bill and MONSON-HAEFEL, Richard.
http://docs.oracle.com/javaee/6/tutorial/doc/
49