SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

Hyperic hq安装配置演示
Hyperic hq安装配置演示Hyperic hq安装配置演示
Hyperic hq安装配置演示bmg521
 
Viatge a nova york
Viatge a nova yorkViatge a nova york
Viatge a nova yorksemadamax
 
Manual de formación para o marisqueo 07. organización ii
Manual de formación para o marisqueo 07. organización iiManual de formación para o marisqueo 07. organización ii
Manual de formación para o marisqueo 07. organización iiASOAR-ARMEGA
 
Ava perímetro y área
Ava perímetro y áreaAva perímetro y área
Ava perímetro y árearelaguna1
 
Presentación1.selectividade
Presentación1.selectividadePresentación1.selectividade
Presentación1.selectividadelaraveiga
 
Lista de verbos regulares
Lista de verbos regularesLista de verbos regulares
Lista de verbos regularesmluisa007
 
Logging En Monitoring Presentatie Met Penetratie Testen 0.5
Logging En Monitoring Presentatie Met Penetratie Testen 0.5Logging En Monitoring Presentatie Met Penetratie Testen 0.5
Logging En Monitoring Presentatie Met Penetratie Testen 0.5Ferdinand_u
 
Col·legi la salle blog
Col·legi la salle blogCol·legi la salle blog
Col·legi la salle blogCrisLM25
 
Sugestões para produzir o plano de aula - Prof. Cristina
Sugestões para produzir o plano de aula - Prof. CristinaSugestões para produzir o plano de aula - Prof. Cristina
Sugestões para produzir o plano de aula - Prof. CristinaCarmina Monteiro
 
Tirupaadal38 (nx power lite)
Tirupaadal38 (nx power lite)Tirupaadal38 (nx power lite)
Tirupaadal38 (nx power lite)anbinmadal
 
Els oficis a la classe dels dofins
Els oficis a la classe dels dofinsEls oficis a la classe dels dofins
Els oficis a la classe dels dofinsmmarmi
 

Destaque (20)

A comunicarnos
A comunicarnosA comunicarnos
A comunicarnos
 
Sopas de letras
Sopas de letrasSopas de letras
Sopas de letras
 
Hyperic hq安装配置演示
Hyperic hq安装配置演示Hyperic hq安装配置演示
Hyperic hq安装配置演示
 
Viatge a nova york
Viatge a nova yorkViatge a nova york
Viatge a nova york
 
Manual de formación para o marisqueo 07. organización ii
Manual de formación para o marisqueo 07. organización iiManual de formación para o marisqueo 07. organización ii
Manual de formación para o marisqueo 07. organización ii
 
Novena pr..
Novena pr..Novena pr..
Novena pr..
 
Ava perímetro y área
Ava perímetro y áreaAva perímetro y área
Ava perímetro y área
 
Presentación1.selectividade
Presentación1.selectividadePresentación1.selectividade
Presentación1.selectividade
 
Lista de verbos regulares
Lista de verbos regularesLista de verbos regulares
Lista de verbos regulares
 
Brinkenf
BrinkenfBrinkenf
Brinkenf
 
Logging En Monitoring Presentatie Met Penetratie Testen 0.5
Logging En Monitoring Presentatie Met Penetratie Testen 0.5Logging En Monitoring Presentatie Met Penetratie Testen 0.5
Logging En Monitoring Presentatie Met Penetratie Testen 0.5
 
Col·legi la salle blog
Col·legi la salle blogCol·legi la salle blog
Col·legi la salle blog
 
Programación de actividades
Programación de actividadesProgramación de actividades
Programación de actividades
 
Volume3 pcn
Volume3 pcnVolume3 pcn
Volume3 pcn
 
Jamaica
JamaicaJamaica
Jamaica
 
Sugestões para produzir o plano de aula - Prof. Cristina
Sugestões para produzir o plano de aula - Prof. CristinaSugestões para produzir o plano de aula - Prof. Cristina
Sugestões para produzir o plano de aula - Prof. Cristina
 
Calendario 2011
Calendario 2011Calendario 2011
Calendario 2011
 
Tirupaadal38 (nx power lite)
Tirupaadal38 (nx power lite)Tirupaadal38 (nx power lite)
Tirupaadal38 (nx power lite)
 
Els oficis a la classe dels dofins
Els oficis a la classe dels dofinsEls oficis a la classe dels dofins
Els oficis a la classe dels dofins
 
Licencias creative commons
Licencias creative commonsLicencias creative commons
Licencias creative commons
 

Semelhante a 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
 

Semelhante a 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