SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Tutorial - Introdução ao JPA
Autor: Marco Aurélio S. Mendes – corelio@gmail.com

O exemplo abaixo é uma introdução ao framework JPA, adaptado e regionalizado a partir
do seguinte artigo: http://today.java.net/pub/a/today/2006/05/23/ejb3-persistence-api-for-
client-side-developer.html

Este exemplo usa o banco de dados embutido hsqlDB e o provider Oracle TopLink. Todo
o código necessário esta no projeto que acompanha este exemplo.

   1. Importe o projeto AloMundoJPA que acompanha este documento no Eclipse.

   2. Inicie o servidor de banco Hypersonic SQL (hsqldb) com o seguinte comando no
      prompt do DOS.

   java –cp ./lib/hsqldb.jar org.hsqldb.Server




* Antes de executar este comando, vá para o diretório raiz do projeto AloMundoJPA.




                                            1
A seguinte tela será exibida.




Procure a mensagem: Startup Sequence completed in xxxx ms.
Esta mensagem indica que o banco de dados está disponível.

   3. Inicie o aplicativo de linha de comando de gerência do banco de dados no
      hsqlDB.




                                         2
O seguinte aplicativo (HSQL Database Manager) será exibido:




Este aplicativo é um administrador de banco de dados simplificado. Ele possui três áreas
centrais:
   • Área esquerda: Permite visualizar esquemas, tabelas e seus elementos.
   • Área superior direita: Permite entrar comandos SQL.
   • Área central: Exibe resultados dos comandos SQL

Inicialmente, na carga do aplicativo DatabaseManager, é exibido um diálogo que permite
que a conexão a um banco seja realizada.




                                            3
4. Usaremos como instância do banco o nome ACMEDB. No diálogo acima, mude
      os parâmetros conforme a tela abaixo:




   5. Na tela exibida, informe o seguinte comando SQL, necessário para criar a tabela
      de pessoas do nosso teste. O comando SQL deve ser informado na caixa de texto
      na área superiod da janela HSQL DatabaseManager.

CREATE TABLE PESSOA (ID INTEGER PRIMARY KEY, PRIMEIRO VARCHAR,
MEIO VARCHAR, FIM VARCHAR)

A seguinte tela será exibida:




Como teste, faça uma consulta na tabela PESSOA, conforme mostrado abaixo.




                                         4
6. Neste instante, o banco foi criado. Você pode finalizar agora o HSQL Database
   Manager, de forma que o prompt no DOS esteja liberado, como mostrado na tela
   abaixo.




                                      5
7. Abra o Eclipse e aponte para o projeto importado anteriormente no passo 1.

Examine o arquivo persistence.xml. Este arquivo define uma ou mais unidades de
persistência, que definem os mapeamento de classes para tabelas.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
   version="1.0">
  <persistence-unit name="exemplo">
        <provider>
        oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
        </provider>
        <class>com.acme.Pessoa</class>
        <properties>
        <property name="toplink.jdbc.driver"
value="org.hsqldb.jdbcDriver" />
        <property name="toplink.jdbc.url" value="jdbc:hsqldb:ACMEDB" />
        <property name="toplink.jdbc.user" value="sa" />
        <property name="toplink.jdbc.password" value="" />
        <property name="toplink.logging.level" value="INFO" />
        </properties>
  </persistence-unit>
 </persistence>

Neste exemplo, definimos uma unidade de persistência chamada exemplo. Ela define que
o provider de persistência será o framework OracleTopLink. Alternativamente,
poderíamos ter usado o Hibernate. Conceitualmente, ambos funcionam como possíveis
implementações da especificação JPA.

Examine também a classe com.acme.Pessoa, que contém um POJO muito simples, mas
completo para persistência.




                                          6
8. Finalmente, execute o aplicativo Main, que insere duas pessoas no nosso banco de
       dados. Após a execução deste classe, uma saída semelhante à abaixo deve ser
       exibida.
[TopLink Info]: 2007.04.09 03:06:39.569--ServerSession(15606519)--
TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060830)
[TopLink Info]: 2007.04.09 03:06:40.038--Not able to detect platform
for vendor name [HSQL Database Engine]. Defaulting to
[oracle.toplink.essentials.platform.database.DatabasePlatform]. The
database dialect used may not match with the database you are using.
Please explicitly provide a platform using property
toplink.platform.class.name.
[TopLink Info]: 2007.04.09 03:06:40.147--ServerSession(15606519)--
file:/C:/Documents%20and%20Settings/marco.aurelio/workspace/AloMundoJPA
/bin-exemplo login successful
Procurando pessoas...
Pesquisa finalizada...
Criacao de pessoas...
Pessoas criadas...
Procurando pessoas...
Achei o Joao: Joao Silva
Pesquisa finalizada...
[TopLink Info]: 2007.04.09 03:06:40.412--ServerSession(15606519)--
file:/C:/Documents%20and%20Settings/marco.aurelio/workspace/AloMundoJPA
/bin-exemplo logout successful

Opcionalmente, abra o Database Manager e faça uma consulta no banco para verificar
que os elementos realmente foram gravados.

Informações Complementares
Para referências ao JPA, busque os seguintes links:

     • JPA FAQ: http://java.sun.com/javaee/overview/faq/persistence.jsp
     • Oracle TopLink JPA Annotations:
http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html
     • JBOSS Hibernate Entity Manager:
         http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/
     • Reference Guide: http://www.solarmetric.com/resources/ejb-api-quickref.pdf
     • EJB-SQL: http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/queryhql.html
     • Exemplo JPA: https://glassfish.dev.java.net/javaee5/persistence/persistence-example.html




                                                      7

Weitere ähnliche Inhalte

Was ist angesagt?

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
 
Tomcat e Aplicações Web
Tomcat e Aplicações WebTomcat e Aplicações Web
Tomcat e Aplicações Webelliando dias
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004Michel Alves
 
ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopMichel Montenegro
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdoJorge Luís Gregório
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Thyago Maia
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoGuilhermePetrosky
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesDaniel Brandão
 
Como selecionar dados em uma tabela que está em outro servidor
Como selecionar dados em uma tabela que está em outro servidorComo selecionar dados em uma tabela que está em outro servidor
Como selecionar dados em uma tabela que está em outro servidorDiego Hellas
 
ZF Básico - 2. Instalação
ZF Básico - 2. InstalaçãoZF Básico - 2. Instalação
ZF Básico - 2. InstalaçãoMarcos Bezerra
 
Alguns comandos tais como Atribuir e revogar privilégios em SQL
Alguns comandos tais como Atribuir e revogar privilégios em SQLAlguns comandos tais como Atribuir e revogar privilégios em SQL
Alguns comandos tais como Atribuir e revogar privilégios em SQLTudosbinformatica .blogspot.com
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
Apache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxApache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxVictor Eloy
 

Was ist angesagt? (20)

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Tomcat e Aplicações Web
Tomcat e Aplicações WebTomcat e Aplicações Web
Tomcat e Aplicações Web
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004
 
ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e Desktop
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
 
Java com banco my sql
Java com banco my sqlJava com banco my sql
Java com banco my sql
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Como selecionar dados em uma tabela que está em outro servidor
Como selecionar dados em uma tabela que está em outro servidorComo selecionar dados em uma tabela que está em outro servidor
Como selecionar dados em uma tabela que está em outro servidor
 
Tag Libraries e JSTL
Tag Libraries e JSTLTag Libraries e JSTL
Tag Libraries e JSTL
 
ZF Básico - 2. Instalação
ZF Básico - 2. InstalaçãoZF Básico - 2. Instalação
ZF Básico - 2. Instalação
 
Alguns comandos tais como Atribuir e revogar privilégios em SQL
Alguns comandos tais como Atribuir e revogar privilégios em SQLAlguns comandos tais como Atribuir e revogar privilégios em SQL
Alguns comandos tais como Atribuir e revogar privilégios em SQL
 
Minicurso Yii2
Minicurso Yii2Minicurso Yii2
Minicurso Yii2
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Oracle
OracleOracle
Oracle
 
Apache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no LinuxApache2+PHP5+PostgreSQL no Linux
Apache2+PHP5+PostgreSQL no Linux
 
Treinamento Oracle GoldenGate 19c
Treinamento Oracle GoldenGate 19cTreinamento Oracle GoldenGate 19c
Treinamento Oracle GoldenGate 19c
 

Andere mochten auch

Desarrollo del contenido 1
Desarrollo del contenido 1Desarrollo del contenido 1
Desarrollo del contenido 1yacque-1992
 
La historia de internet
La historia de internetLa historia de internet
La historia de internetyacque-1992
 
EL MURGON DE LA ESQUINA - 2012
EL MURGON DE LA ESQUINA - 2012EL MURGON DE LA ESQUINA - 2012
EL MURGON DE LA ESQUINA - 2012Facundo Alvarez
 
El vuelo-de-los-gansos
El vuelo-de-los-gansosEl vuelo-de-los-gansos
El vuelo-de-los-gansosEDGAR4203
 
Anexo X Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...
Anexo X   Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...Anexo X   Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...
Anexo X Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...guestf90a779
 
Psicoterapia comportamental e cognitiva na promoção da saúde:
Psicoterapia comportamental e cognitiva na promoção da saúde:Psicoterapia comportamental e cognitiva na promoção da saúde:
Psicoterapia comportamental e cognitiva na promoção da saúde:Carlos Costa
 
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de Bachillerato
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de BachilleratoContenidos mínimos de Ciencias para el mundo contemporáneo - 1º de Bachillerato
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de BachilleratoLisardo
 
Referencias Automaticas!!!
Referencias Automaticas!!!Referencias Automaticas!!!
Referencias Automaticas!!!PaolaTor*
 

Andere mochten auch (20)

Gbi
GbiGbi
Gbi
 
NO FACHAS
NO FACHASNO FACHAS
NO FACHAS
 
Desarrollo del contenido 1
Desarrollo del contenido 1Desarrollo del contenido 1
Desarrollo del contenido 1
 
La mejor amiga
La mejor amigaLa mejor amiga
La mejor amiga
 
La historia de internet
La historia de internetLa historia de internet
La historia de internet
 
Ley 100
Ley 100Ley 100
Ley 100
 
EL MURGON DE LA ESQUINA - 2012
EL MURGON DE LA ESQUINA - 2012EL MURGON DE LA ESQUINA - 2012
EL MURGON DE LA ESQUINA - 2012
 
SIDA
SIDASIDA
SIDA
 
Infografia
InfografiaInfografia
Infografia
 
El vuelo-de-los-gansos
El vuelo-de-los-gansosEl vuelo-de-los-gansos
El vuelo-de-los-gansos
 
Anexo X Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...
Anexo X   Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...Anexo X   Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...
Anexo X Demonstrativo Das Receitas E Despesas Com ManutençãO E Desenvolvime...
 
Psicoterapia comportamental e cognitiva na promoção da saúde:
Psicoterapia comportamental e cognitiva na promoção da saúde:Psicoterapia comportamental e cognitiva na promoção da saúde:
Psicoterapia comportamental e cognitiva na promoção da saúde:
 
Deportes
DeportesDeportes
Deportes
 
Practica 5 sopa_de_letras
Practica 5 sopa_de_letrasPractica 5 sopa_de_letras
Practica 5 sopa_de_letras
 
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de Bachillerato
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de BachilleratoContenidos mínimos de Ciencias para el mundo contemporáneo - 1º de Bachillerato
Contenidos mínimos de Ciencias para el mundo contemporáneo - 1º de Bachillerato
 
Processo seletivo pibid_2013
Processo seletivo pibid_2013Processo seletivo pibid_2013
Processo seletivo pibid_2013
 
Osama bin laden
Osama bin ladenOsama bin laden
Osama bin laden
 
Referencias Automaticas!!!
Referencias Automaticas!!!Referencias Automaticas!!!
Referencias Automaticas!!!
 
Aaaa
AaaaAaaa
Aaaa
 
Estetica fisio to_25_02_dissertativo
Estetica fisio to_25_02_dissertativoEstetica fisio to_25_02_dissertativo
Estetica fisio to_25_02_dissertativo
 

Ähnlich wie Introdução ao JPA

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29Juliana Nascimento
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaCaio Lima
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1Sliedesharessbarbosa
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java IIIVerônica Veiga
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...Professor Samuel Ribeiro
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01julianabdpaiva
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Jeison Barros
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Odi tutorial configuração repositórios mestre e trabalho
Odi tutorial   configuração repositórios mestre e trabalhoOdi tutorial   configuração repositórios mestre e trabalho
Odi tutorial configuração repositórios mestre e trabalhoCaio Lima
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo TextoCaio Lima
 

Ähnlich wie Introdução ao JPA (20)

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
Java13
Java13Java13
Java13
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração Topologia
 
Crud
CrudCrud
Crud
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Vb
VbVb
Vb
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
CURSO JAVA 01
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Odi tutorial configuração repositórios mestre e trabalho
Odi tutorial   configuração repositórios mestre e trabalhoOdi tutorial   configuração repositórios mestre e trabalho
Odi tutorial configuração repositórios mestre e trabalho
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 

Introdução ao JPA

  • 1. Tutorial - Introdução ao JPA Autor: Marco Aurélio S. Mendes – corelio@gmail.com O exemplo abaixo é uma introdução ao framework JPA, adaptado e regionalizado a partir do seguinte artigo: http://today.java.net/pub/a/today/2006/05/23/ejb3-persistence-api-for- client-side-developer.html Este exemplo usa o banco de dados embutido hsqlDB e o provider Oracle TopLink. Todo o código necessário esta no projeto que acompanha este exemplo. 1. Importe o projeto AloMundoJPA que acompanha este documento no Eclipse. 2. Inicie o servidor de banco Hypersonic SQL (hsqldb) com o seguinte comando no prompt do DOS. java –cp ./lib/hsqldb.jar org.hsqldb.Server * Antes de executar este comando, vá para o diretório raiz do projeto AloMundoJPA. 1
  • 2. A seguinte tela será exibida. Procure a mensagem: Startup Sequence completed in xxxx ms. Esta mensagem indica que o banco de dados está disponível. 3. Inicie o aplicativo de linha de comando de gerência do banco de dados no hsqlDB. 2
  • 3. O seguinte aplicativo (HSQL Database Manager) será exibido: Este aplicativo é um administrador de banco de dados simplificado. Ele possui três áreas centrais: • Área esquerda: Permite visualizar esquemas, tabelas e seus elementos. • Área superior direita: Permite entrar comandos SQL. • Área central: Exibe resultados dos comandos SQL Inicialmente, na carga do aplicativo DatabaseManager, é exibido um diálogo que permite que a conexão a um banco seja realizada. 3
  • 4. 4. Usaremos como instância do banco o nome ACMEDB. No diálogo acima, mude os parâmetros conforme a tela abaixo: 5. Na tela exibida, informe o seguinte comando SQL, necessário para criar a tabela de pessoas do nosso teste. O comando SQL deve ser informado na caixa de texto na área superiod da janela HSQL DatabaseManager. CREATE TABLE PESSOA (ID INTEGER PRIMARY KEY, PRIMEIRO VARCHAR, MEIO VARCHAR, FIM VARCHAR) A seguinte tela será exibida: Como teste, faça uma consulta na tabela PESSOA, conforme mostrado abaixo. 4
  • 5. 6. Neste instante, o banco foi criado. Você pode finalizar agora o HSQL Database Manager, de forma que o prompt no DOS esteja liberado, como mostrado na tela abaixo. 5
  • 6. 7. Abra o Eclipse e aponte para o projeto importado anteriormente no passo 1. Examine o arquivo persistence.xml. Este arquivo define uma ou mais unidades de persistência, que definem os mapeamento de classes para tabelas. <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="exemplo"> <provider> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider </provider> <class>com.acme.Pessoa</class> <properties> <property name="toplink.jdbc.driver" value="org.hsqldb.jdbcDriver" /> <property name="toplink.jdbc.url" value="jdbc:hsqldb:ACMEDB" /> <property name="toplink.jdbc.user" value="sa" /> <property name="toplink.jdbc.password" value="" /> <property name="toplink.logging.level" value="INFO" /> </properties> </persistence-unit> </persistence> Neste exemplo, definimos uma unidade de persistência chamada exemplo. Ela define que o provider de persistência será o framework OracleTopLink. Alternativamente, poderíamos ter usado o Hibernate. Conceitualmente, ambos funcionam como possíveis implementações da especificação JPA. Examine também a classe com.acme.Pessoa, que contém um POJO muito simples, mas completo para persistência. 6
  • 7. 8. Finalmente, execute o aplicativo Main, que insere duas pessoas no nosso banco de dados. Após a execução deste classe, uma saída semelhante à abaixo deve ser exibida. [TopLink Info]: 2007.04.09 03:06:39.569--ServerSession(15606519)-- TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060830) [TopLink Info]: 2007.04.09 03:06:40.038--Not able to detect platform for vendor name [HSQL Database Engine]. Defaulting to [oracle.toplink.essentials.platform.database.DatabasePlatform]. The database dialect used may not match with the database you are using. Please explicitly provide a platform using property toplink.platform.class.name. [TopLink Info]: 2007.04.09 03:06:40.147--ServerSession(15606519)-- file:/C:/Documents%20and%20Settings/marco.aurelio/workspace/AloMundoJPA /bin-exemplo login successful Procurando pessoas... Pesquisa finalizada... Criacao de pessoas... Pessoas criadas... Procurando pessoas... Achei o Joao: Joao Silva Pesquisa finalizada... [TopLink Info]: 2007.04.09 03:06:40.412--ServerSession(15606519)-- file:/C:/Documents%20and%20Settings/marco.aurelio/workspace/AloMundoJPA /bin-exemplo logout successful Opcionalmente, abra o Database Manager e faça uma consulta no banco para verificar que os elementos realmente foram gravados. Informações Complementares Para referências ao JPA, busque os seguintes links: • JPA FAQ: http://java.sun.com/javaee/overview/faq/persistence.jsp • Oracle TopLink JPA Annotations: http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html • JBOSS Hibernate Entity Manager: http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/ • Reference Guide: http://www.solarmetric.com/resources/ejb-api-quickref.pdf • EJB-SQL: http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/queryhql.html • Exemplo JPA: https://glassfish.dev.java.net/javaee5/persistence/persistence-example.html 7