Você está na página 1de 7

Tutorial - Introduo ao JPA

Autor: Marco Aurlio S. Mendes corelio@gmail.com O exemplo abaixo uma introduo ao framework JPA, adaptado e regionalizado a partir do seguinte artigo: http://today.java.net/pub/a/today/2006/05/23/ejb3-persistence-api-forclient-side-developer.html Este exemplo usa o banco de dados embutido hsqlDB e o provider Oracle TopLink. Todo o cdigo necessrio 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 diretrio raiz do projeto AloMundoJPA.

A seguinte tela ser exibida.

Procure a mensagem: Startup Sequence completed in xxxx ms. Esta mensagem indica que o banco de dados est disponvel. 3. Inicie o aplicativo de linha de comando de gerncia do banco de dados no hsqlDB.

O seguinte aplicativo (HSQL Database Manager) ser exibido:

Este aplicativo um administrador de banco de dados simplificado. Ele possui trs 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 dilogo que permite que a conexo a um banco seja realizada.

4. Usaremos como instncia do banco o nome ACMEDB. No dilogo acima, mude os parmetros conforme a tela abaixo:

5. Na tela exibida, informe o seguinte comando SQL, necessrio 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, faa uma consulta na tabela PESSOA, conforme mostrado abaixo.

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.

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 persistncia, 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 persistncia chamada exemplo. Ela define que o provider de persistncia ser o framework OracleTopLink. Alternativamente, poderamos ter usado o Hibernate. Conceitualmente, ambos funcionam como possveis implementaes da especificao JPA. Examine tambm a classe com.acme.Pessoa, que contm um POJO muito simples, mas completo para persistncia.

8. Finalmente, execute o aplicativo Main, que insere duas pessoas no nosso banco de dados. Aps a execuo deste classe, uma sada 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 faa uma consulta no banco para verificar que os elementos realmente foram gravados.

Informaes Complementares
Para referncias 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