23
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA ENTERPRISE EDITION: PERSISTÊNCIA DE BANCO DE DADOS FOZ DO IGUAÇU 2013

COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

Embed Size (px)

Citation preview

Page 1: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

COLÉGIO ESTADUAL ULYSSES GUIMARÃES

CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA

ERINALDO SANCHES NASCIMENTO

JAVA ENTERPRISE EDITION:

PERSISTÊNCIA DE BANCO DE DADOS

FOZ DO IGUAÇU

2013

Page 2: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

SUMÁRIO

1. PERSISTÊNCIA DE BANCO DE DADOS ............................................................. 1

1.1 ENTENDENDO JAVA EE ............................................................................................ 1

1.1.1 Padrões .............................................................................................................. 2

1.1.2 Arquitetura .......................................................................................................... 2

1.1.3 Componentes ..................................................................................................... 2

1.1.4 Containers .......................................................................................................... 3

1.1.5 Serviços .............................................................................................................. 4

1.2 CONFIGURANDO UMA FONTE DE DADOS ...................................................................... 4

1.3 SERVIDOR DE APLICAÇÃO JAVA EE: GLASSFISH .......................................................... 6

1.3.1 Baixar e Instalar o GlassFish .............................................................................. 6

1.3.2 Configurar o GlassFish no IDE Eclipse .............................................................. 9

1.3.3 Testar o Servidor GlassFish ............................................................................. 15

1.4 CRIAR UM PROJETO EJB ........................................................................................ 16

1.5 ADICIONAR ASPECTOS JPA ...................................................................................... 18

1.6 REFERÊNCIA BIBLIOGRÁFICA ................................................................................... 21

Page 3: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

1

1. PERSISTÊNCIA DE BANCO DE DADOS

As empresas hoje vivem em um mundo global competitivo. Elas precisam de

aplicações que satisfaçam suas necessidades de negócios, que estão ficando mais

e mais complexa. As empresas estão distribuídas por continentes, fazem negócio

através da Internet, em diferentes países e os seus sistemas têm de ser

internacionalizado e pronto para lidar com diferentes moedas e fusos horários. Tudo

isso ao mesmo tempo reduzir custos, reduzir os tempos de resposta dos seus

serviços, o armazenamento de dados de negócios em armazenamento confiável e

seguro, oferecendo várias interfaces gráficas para seus clientes, funcionários e

fornecedores.

A maioria das empresas tem que combinar esses desafios inovadores com

seus sistemas de informação (SI) existentes, enquanto ao mesmo tempo o

desenvolvimento de aplicativos de negócios para se comunicar com os parceiros.

Também não é raro para uma empresa ter que coordenar dados armazenados em

diferentes locais, transformados por várias linguagens de programação, e

encaminhado através de protocolos diferentes. E, claro, tem que fazer isso sem

perder dinheiro, o que significa evitar falhas no sistema e estar altamente disponível,

escalonável e seguro.

1.1 ENTENDENDO JAVA EE

As aplicações empresariais têm de enfrentar a mudança e complexidade, e

ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado.

Se o desenvolvedor precisa de uma aplicação transacional, segura,

interoperável e distribuída, usa o Enterprise Edition do Java. O Java EE fornece um

modo padrão de lidar com transações com o Java Transaction API (JTA),

mensagens com o Java Message Service (JMS), ou persistência com Java

Persistence API (JPA ). O Java EE é um conjunto de especificações destinadas para

aplicações empresariais, visto como uma extensão do Java SE, facilita o

Page 4: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

2

desenvolvimento de aplicações distribuídas, é robusto, potente e altamente

disponível.

1.1.1 Padrões

O Java EE é baseado em padrões. O Java EE fornece padrões que são

implementados por várias fontes comerciais (WebLogic, Websphere, MQSeries, etc)

ou frameworks open source (GlassFish, JBoss, Hibernate, Open JPA, Jersey, etc)

para manipulação de transações, segurança, persistência de objeto, e assim por

diante.

1.1.2 Arquitetura

Java EE é um conjunto de especificações implementadas por diferentes

containers. Containers são ambientes de tempo de execução Java EE que fornecem

determinados serviços para os componentes que abrigam, tais como gestão do ciclo

de vida, de injeção de dependência, e assim por diante. Estes componentes usam

contratos bem definidos para comunicar-se com a infraestrutura do Java EE e outros

componentes. Eles precisam ser empacotados em uma forma padrão antes de ser

implantado.

1.1.3 Componentes

O ambiente de execução Java EE define quatro tipos de componentes que

uma aplicação deve suportar:

Applets: aplicações GUI executadas em um navegador da web. Usam a API

Swing para fornecer poderosas interfaces de usuário.

Page 5: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

3

Aplicativos: programas executados em um cliente. São tipicamente GUIs ou

programas de processamento em lote que têm acesso a todas as facilidades da

camada intermediária do Java EE.

Aplicações web (feito de servlets, filtros servlet, listeners de eventos web,

páginas JSP, e JSF): executadas em um container web e responder às

solicitações HTTP de clientes web.

Aplicações empresariais (feitas de Enterprise Java Beans, Java Message

Service, Java Transaction API, etc.): executadas em um container EJB. EJBs são

componentes gerenciados por container para processamento de lógica de

negócios transacional. Eles podem ser acessados localmente e remotamente.

1.1.4 Containers

A infraestrutura Java EE é dividida em domínios lógicos chamados

containers. Cada container tem uma função específica, suporta um conjunto de

APIs, e oferece serviços aos componentes (segurança, acesso de banco de dados,

manipulação de transações, nomeando diretório, injeção de recursos). Containers de

ocultam a complexidade técnica e aumentam a portabilidade.

O container da aplicação cliente (ACC) inclui um conjunto de classes Java,

bibliotecas e outros arquivos necessários para trazer injeção, gerenciamento,

segurança e nomear serviço para aplicativos Java SE (Swing, processamento em

lote, ou apenas uma classe com um método main()). O ACC comunica-se com o

container EJB usando RMI-IIOP e o container Web com HTTP.

O container Web é usado para alimentar páginas web para navegadores

cliente. O container EJB é responsável por gerenciar a execução enterprise beans

contendo a camada lógica de negócios da aplicação Java EE.

Page 6: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

4

1.1.5 Serviços

Containers fornecem serviços básicos aos componentes implantados.

Assim, o desenvolvedor pode se concentrar na implementação da lógica de negócio

ao invés de resolver os problemas técnicos enfrentados em aplicações empresariais.

O Java EE oferece os seguintes serviços:

Java Transaction API (JTA): oferece uma API de demarcação de transação

usada pelo container e aplicação. Também fornece uma interface entre o

gerenciador de transações e um gerenciador de recursos no nível do Service

Provider Interface (SPI).

Java Persistence API (JPA): API padrão para mapeamento objeto-relacional

(ORM). Com a Java Persistence Query Language (JPQL), é possível consultar os

objetos armazenados no banco de dados.

Muitos outros serviços são implementados no Java EE.

1.2 CONFIGURANDO UMA FONTE DE DADOS

Precisamos criar uma fonte de dados para que quando implantar e executar

o aplicativo no servidor, o aplicativo tem acesso ao banco de dados.

1. Inicie o MySQL Workbench.

Page 7: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

5

2. Na parte central da janela escolha Create New EER Model. Crie o diagrama

conforme apresentado na figura abaixo.

3. Feito isso, clique em File, Export, Forward Engineer SQL Create Script.

4. Abrirá uma caixa de diálogo, dê o nome Escola para o script. Clique em Next.

5. Selecione a primeira opção, Export MySQL Table Objects. Clique em Next.

6. Na última tela clique em Finish para concluir.

7. Volte a janela principal do MySQLWorkbench, e crie uma nova conexão,

chamada Escola, clicando em New Connection.

Page 8: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

6

8. Clique em Open Connection to Start Querying, ou escolha Escola na lista abaixo.

9. Clique em File, Open SQL Script, e selecione o arquivo Escola.sql.

10. Clique no botão Execute SQL Script.

1.3 SERVIDOR DE APLICAÇÃO JAVA EE: GLASSFISH

GlassFish é um servidor de aplicação Java EE compatível, open source,

pronto para produção.

GlassFish fornece a aplicação de recursos completos do Java EE. A

plataforma Java EE apresenta o perfil da Web para aplicações centradas na Web, e

inclui tecnologias, tais como tais como JAX-RS 1.1, JavaServer Faces (JSF) 2.0,

Enterprise JavaBeans (EJB) 3.1 , Java Persistence (JPA) 2.0, Context and

Dependency Injection (CDI) 1.0 e muito mais.

1.3.1 Baixar e Instalar o GlassFish

Baixe a última versão estável do servidor de aplicação GlassFish.

Inicie o arquivo executável para a instalação.

Clique em próximo.

Page 9: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

7

Mantenha a opção de instalação típica selecionada e clique no botão

Próximo.

Não precisa alterar o diretório de instalação do GlassFish. Clique no botão

Próximo para avançar.

Page 10: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

8

Ative a ferramenta de atualização, para que ele colete as atualizações

periódicas. Clique no botão Próximo para avançar. Na próxima tela clique no botão

Instalar.

Forneça o nome do usuário e a senha. Dê um nome para o serviço. Clique

em Próximo para avançar na configuração.

Se a configuração ocorreu sem nenhum erro, uma tela com o resultado da

configuração deve ser exibida.

Page 11: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

9

Clique no botão Próximo para avançar. O resumo deve ser apresentado.

Clique no botão Sair.

A janela do navegador aparecerá para que seja feito o registro da instalação

do GlassFish. Caso tenha uma conta, registre-se.

1.3.2 Configurar o GlassFish no IDE Eclipse

Antes de configurar é necessário certificar-se que o JDK, o glassfish e o IDE

Eclipse estejam instalados na máquina.

1. Abra o Eclipse e pressione as teclas Ctrl+3 e uma janela surgirá, digite Servers e

clique na primeira opção como na imagem abaixo. A aba Servers surgirá.

Page 12: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

10

2. Clique com botão direito e selecione New, Server.

3. Por padrão, o eclipse não possui os adaptadores necessários para interagir com

o glassfish. Então, para adicioná-los clique no link Download addtional server

adapter. Clique na versão Oracle GlassFish Server Tolls e depois no botão Next.

Para fazer o download é necessário aceitar o acordo de licença. Clique em

Finish.

Page 13: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

11

4. Depois da instalação o Eclipse precisa ser reiniciado, clique em Restart Now.

5. Abra normalmente o Eclipse. Na aba Servers clique com o botão direito do

mouse e selecione New, Server. Agora, a pasta com os adaptadores do glassfish

aparecerá. Clique em GlassFish 3.1 e depois em Next.

Page 14: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

12

6. O glassfish utiliza algumas ferramentas contidas no JDK. Portanto, é necessário

verificar se o Eclipse está indicando a utilização de um JDK. Caso esteja

utilizando um JRE, altere essa configuração seguindo os passos abaixo. Clique

em Installed JRE preferences.

7. Clique em Add…, selecione Standard VM e clique em Next.

Page 15: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

13

8. Escolha o diretório clicando em Directory. Selecione a pasta onde está instalado

o JDK. Confira os dados e clique em Finish.

9. Escolha o JDK que acabamos de configurar. Indique o diretório onde o glassfish

foi descompactado. Clique em Browse… Procure a pasta “glassfish3/glassfish”

clique em OK. Clique em Next.

Page 16: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

14

10. Nesta tela podemos escolher uma senha para o glassfish, mas isso não é

necessário. Clique em Next.

11. Nessa tela é possível escolher quais projetos serão implantados no glassfish. Se

nenhum projeto que possa ser implantado no glassfish existir, clique em Finish.

Page 17: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

15

1.3.3 Testar o Servidor GlassFish

O servidor está aparecendo na aba Servers.

Para testá-lo clique com o botão direito e depois em Start.

O glassfish foi inicializado.

Acesse a url: localhost:8080 para verificar se o glassfish foi inicializado.

Page 18: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

16

1.4 CRIAR UM PROJETO EJB

No Eclipse, crie um projeto EJB. Especifique um nome de projeto e clique

em New Runtime para configurar um tempo de execução alvo para o GlassFish 3.1

caso não esteja configurado, como mostra a imagem abaixo:

Page 19: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

17

Selecione a configuração padrão para o GlassFish 3.1, e clique em Next,

para avançar para a tela seguinte:

Selecione a configuração padrão do módulo EJB e clique em Finish. Um

projeto EJB será criado.

Clique com o botão direito do mouse no nó do projeto na aba Project

Explorer e selecione Propriedades. Selecione Project Facets.

Page 20: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

18

Um projeto EJB e beans de entidade requer aspectos de projeto JPA para

persistência de banco de dados. Criamos um projeto EJB, mas este não tem

aspectos de projeto JPA ativado por padrão. Clique no botão OK para concluir.

1.5 ADICIONAR ASPECTOS JPA

Para configurar uma fonte de dados, abra a janela Data Source Explorer.

Clique com o botão direito do mouse sobre Database Connections e selecione New.

Page 21: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

19

Na caixa de diálogo que surgir selecione MySQL, e dê o nome da conexão

de Escola. Clique no botão Next para avançar ao próximo passo.

Especifique o nome do esquema que contém a fonte de dados.

Page 22: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

20

Clique em Test Connection para confirmar o ping. Clique em Next para ver o

resumo e depois em Finish.

Para criar beans de entidade requer aspectos de projeto JPA. Para adicionar

aspectos do projeto JPA, clique no botão + ao lado de JPA Content, depois dê um

duplo clique sobre persistence.xml. Clique na aba Connection e configure a fonte de

dados conforme a tela a seguir:

Na caixa Transaction type selecione Resource Local. Depois clique no link

Populate from connection... Abrirá uma caixa de diálogo, nela escolha a conexão

Escola.

Clique na abra Source para ver o arquivo persistence.xml do projeto

EJB3JPA.

Page 23: COLÉGIO ESTADUAL ULYSSES GUIMARÃES … · ser robusto. É exatamente por isso Java Enterprise Edition (Java EE) foi criado. Se o desenvolvedor precisa de uma aplicação transacional,

21

1.6 REFERÊNCIA BIBLIOGRÁFICA

BAI, Ying. Practical database programming with Java. Hoboken, NJ: John Wiley &

Sons, Inc., 2011.

VOHRA, Deepak. Java EE Developmente with Eclipse. Birmingham, UK: Packt

Publishing Ltd., 2012

GONCALVES, Antonio. Beginning Java EE 6 Platform with GlassFish 3, 2nd Ed.

New York, NY: Apress, 2010