• Nenhum resultado encontrado

Mc26 Java Jdbc Hibernate Jpa

N/A
N/A
Protected

Academic year: 2021

Share "Mc26 Java Jdbc Hibernate Jpa"

Copied!
47
0
0

Texto

(1)

Java e Banco de

Java e Banco de Dados: JDBC,

Dados: JDBC,

H

(2)

Objetivos

Objetivos

•• Ap

Apre

rese

sent

ntar

ar de

de fo

form

rma

a pr

prog

ogre

ress

ssiv

iva

a as

as

diversas alternativas de persistência de

diversas alternativas de persistência de

dados que foram evoluindo na tecnologia

dados que foram evoluindo na tecnologia

Java, desde o JDBC, passando pelo

Java, desde o JDBC, passando pelo

Hib

(3)

Objetivos

Objetivos

•• Ap

Apre

rese

sent

ntar

ar de

de fo

form

rma

a pr

prog

ogre

ress

ssiv

iva

a as

as

diversas alternativas de persistência de

diversas alternativas de persistência de

dados que foram evoluindo na tecnologia

dados que foram evoluindo na tecnologia

Java, desde o JDBC, passando pelo

Java, desde o JDBC, passando pelo

Hib

(4)

Palestrante

Palestrante

Henrique Eduardo M. Oliveira (henrique@voffice.com.br)

Henrique Eduardo M. Oliveira (henrique@voffice.com.br)

••

Trabalha:

Trabalha:

Arquiteto JEE / Instrutor Java

Arquiteto JEE / Instrutor Java

••

Formação:

Formação:

Ciências da Computação pela UFSC

Ciências da Computação pela UFSC

••

Experiência:

Experiência:

+7 anos com desenvolvimento de sistemas

+7 anos com desenvolvimento de sistemas

em Java, especialmente para WEB

em Java, especialmente para WEB

••

Certificações:

Certificações:

SCJA, SCJP 5, SCWCD 1.4, SCEA 5

SCJA, SCJP 5, SCWCD 1.4, SCEA 5

(5)

Agenda

Agenda

••

His

Histór

tórico

ico sob

sobre

re per

persist

sistênc

ência

ia

••

Tecnologias populares

Tecnologias populares

••

H

Hib

iber

erna

nate

te cl

clás

ássi

sico

co

••

Ja

Java

va Pe

Pers

rsis

isten

tence

ce AP

APII

••

H

Hib

iber

ern

nat

ate

e & J

& JP

PA

A

(6)

Agenda

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

(7)

Persistência

• Capacidade de gravarmos dados em memórias não

voláteis

 – hard-disk, tape-backup, CD, DVD, etc.

• Necessidade básica, 99% dos softwares corporativos

necessitam;

• “Quanto mais culpados queremos encontrar, mais dados

armazenamos”;

• Linguagens como Dbase, Clipper, Visual Object,

(8)

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

Demo

(9)

Tecnologias populares

• JDBC com código SQL e Data Access

Object Pattern;

• RDO, ADO e DAO na plataforma

Microsoft;

(10)

JDBC

• API do Java para acesso a banco de dados;

• Trabalha com esquema de Driver (4 tipos):

 – JDBC / ODBC

• Bridge para comunicação com Drivers Windows  – Nativo

• Código de acesso ao DB é escrito em C / C++;  – Middleware Driver

• DB é acessado via middleware especializado  – Puro Java

• Acesso de baixo nível ao DB é totalmente escrito em Java. Driver desejado e utilizado na maior parte.

• Com o Driver obtemos conexões;

• Com conexões enviamos comandos;

(11)
(12)

Mundo novo

• No mundo novo...

 – Entity Beans 1.x (padrão Java EE)

 – Entity Beans 2.0 e 2.1 (padrão Java EE)

 – Hibernate

 – Oracle TopLink

 – Java Data Objects

 – Prevailer

• Grande parte das abordagens trocam SQL

por XML meta-dado;

(13)

Alternativas

• Em algumas implementações, o XML ficou

excessivo (Entity 2.x);

• Alternativas para o padrão Entity Bean:

 – Spring;

 – Pico Container;

 – OJB;

 – Hibernate stand-alone;

 – Hibernate com EJBs Session;

(14)

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

Demo

(15)

Porque utilizar?

Custo

 – é opensource LGPL;

Benefício

 – é uma solução poderosa, madura e portável compatível com diversos bancos de dados relacionais e servidores de aplicação JEE;

Curva de aprendizado

 – é rápida comparada com as outras soluções;

Documentação

 – livros publicados e diversos tutoriais e artigos disponíveis na internet;

(16)

Porque utilizar?

Suporte

 – pode ser contratado comercialmente ou pode se recorrer a uma comunidade extremamente ativa nos fóruns de discussão;

Padrão “De Facto”

 – amplamente adotado pelo mercado superando as especificações EJB 2.x e JDO;

Conceitos do projeto Hibernate

 – foram adotados para os entity beans segundo a especificação EJB 3;

(17)

Exemplo

• Um JavaBean Cliente, contendo os

atributos:

 – id, nome, cpf, telefone, email

• Uma tabela no RDBMS:

 – idCliente (auto-increment) int

 – nome (varchar 45)

 – cpf (varchar 45)

 – telefone (varchar 45)

 – email (varchar 45)

(18)

XML´s

• Um hibernate-config.xml configurando o JDBC

e dialeto:

(19)

XML´s

• Um xml para cada definição de entidade,

neste caso chamamos o arquivo abaixo

de Cliente.hbm.xml:

(20)
(21)
(22)
(23)

Relacionamentos

• Podemos definir as associações / composições dos

nossos objetos. Vejamos um exemplo para a classe

Cliente que se relaciona com a classe Endereco:

(24)

• Totalmente simples, com atributos encapsulados

por getters e setters!

(25)

Demo Hibernate Clássico

(26)

Resumo Hibernate Clássico

• Conquistou uma grande comunidade devido à

sua simplicidade e competência;

• Tem capacidades para gerenciamento de

estratégias de recuperação de objetos

compostos;

• Aumenta a produtividade;

• Em muitos casos, o código SQL gerado pelo

Hibernate é superior ao código humano;

(27)

O fenômeno XDoclet

• Diversas tecnologias passaram a utilizar

documentos XML como parte da implementação

e configuração de um framework:

 – Struts, Hibernate, EJBs, Java Web Components,

Log4J, Tiles, etc.

• Resultado

 – um emaranhado de XMLs para gerenciar;

• Solução

 – usar comentários no formato JavaDoc para inserir

meta-dados e configurações no código Java.

(28)

O Xdoclet estende o

JavaDoc, criando

anotações no estilo

@XPTO para gerar

arquivos XML para

os frameworks.

(29)

Annotations

• No Java 1.5 a anotações são nativas, ou seja,

não precisamos colocar em comentários:

(30)

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

Demo

(31)

Java Persistence API

Primeira especificação (padrão) de mapeamento de

objetos Java para base de dados relacional

 – Integração com outros frameworks

• Hibernate é uma implementação de JPA

• TopLink Essencials é uma implementação de JPA

POJO (

Plain Old Java Objects 

)

=

Entidades

 – Mapeamento via metadados (annotation Java 5)

Pode ser utilizado fora de containers EJBs

(

ligthweigth container 

)

Uso de injeção de dependência ao invés de lookups

JNDI

(32)
(33)
(34)

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

Demo

(35)

Hibernate e JPA

• Downloads:

 – Hibernate 3.3.x Core

 – Hibernate 3.4.x EntityManager

• Configurar uma biblioteca com os JARS do lib

de ambos diretórios;

• O NetBeans 5.x/6.x oferece suporte para JPA e

vem pré-configurado com Oracle TopLink;

(36)

Histórico sobre persistência

Tecnologias populares

Hibernate clássico

Java Persistence API

Hibernate & JPA

Demo

(37)
(38)

1. Crie um novo projeto Web

2. Digite o nome do projeto e desabilite o código 1.4

(39)

3. Escolha o framework JSF

4. Em File -> New File, escolha Persistence - > Entity from DB

(40)

5. Escolha uma conexão JDBC que você tenha configurado na  janela Runtime, ou escolha a

conexão pré-configurada para o Java DB do NetBeans.

6. Selecione a(s) tabela(s) que deseja reverter em classes Entity.

(41)

7. Coloque o nome do pacote das classes e em seguida clique em “Create Persistence Unit”

8. Para trabalhar com Hibernate clique em New Persistence

Library.

(42)

9. Digite Hibernate no nome da biblioteca e adicione todos os seguintes Jars:

-hibernate3.jar

-jars do hibernate/lib

-hibernate-entitymanager.jar

-jars do hibernate-entitymanager/lib

Clicando em OK e finish o NetBeans vai gerar as entidades / entity classes. Basta agora nos próximos passos, gerar as páginas JSF.

(43)

10. Clique em File -> New File e escolha “JSF Pages from Entity”

11. Escolha as entidades que deseja gerar as páginas de CRUD.

(44)

12. Agora clique em Finish para gerar automaticamente páginas JSF e controladores de páginas.

Opcionalmente você poderá escolhar um sub-diretório Web para o NetBeans gravar as páginas e o package dos controladores / managed beans.

(45)

13. O penúltimo passo é adicionar a biblioteca “Java DB Driver” ou o driver JDBC do seu banco de dados.

(46)

14. Clique em Run e você verá o resultado, um menu com a entidades

geradas que permitem o acesso a listagem de dados para edição, adição ou exclusão dos dados.

(47)

Conclusões

• O que já era bom (Hibernate 3), ficou

ainda melhor! (3.x com Persistence API);

• O foco das especificações na facilidade de

uso (ex. EJB, Faces, Java 5) começa a

fazer diferença no mercado.

Referências

Documentos relacionados

A hipótese nula (Ho) testada neste estudo é de que o efeito clareador após técnica de clareamento caseiro utilizando peróxido de carbamida 10% por 2 horas

Para tornar mais concreto esse processo abstrato, do amor, na narrativa, Mário de Andrade personifica o desejo no personagem Fräulein, porque ela, empregando várias

A partir das analises conclui-se que na comunidade que possui o fumo de galpão o ID é maior do que a comunidade que produz o fumo de estufa, além disso, ela possui

It is pointed out from the results of our study that the social functioning values measured by the SF-36 in elderly after hip fracture are not significantly influenced by the type

do valor da inscrição, após conclusão do preenchimento do Formulário de Inscrição via Internet, em qualquer banco do sistema de compensação bancária. 5.2 O pagamento

À DGP-1 para remeter o processo à Câmara de Política de Pessoal (CPP) e Arquivar cópia do mesmo documento nos assentamentos do Militar requerente... 3º Sargento

13 Ainda, reconhecendo-se que o disgorgement seria a maneira mais adequada para calcular o valor a ser indenizado pela parte prejudicada com a quebra

The aim of the present work is an investigation of the clas- sical properties of the 4D theory obtained from the 5D (A)dS Chern–Simons theory by a Kaluza–Klein compactification,