Criar uma aplicação JPA2 com EclipseLink e H2



Documentos relacionados
1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

JPA Java Persistence API. Prof. Ramon Chiara

Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência

Mapeamento Lógico/Relacional com JPA

UFG - Instituto de Informática


Persistência de Classes em Tabelas de Banco de Dados

Computação Móvel 2007/2008

Persistindo dados com TopLink no NetBeans

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

JPA: Persistência padronizada em Java

Tarefa Orientada 1 Base de Dados Editora

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

NetBeans. Conhecendo um pouco da IDE

Manual de Instruções para a Criação de Ficheiros CSR. Microsoft IIS 5/6

Manual de Instalação e Configuração MySQL

Guia e Utilização do Visual Studio 6.0

Padrão J2EE Data Access Object (DAO)

Introdução ao IDE Netbeans (Programação Java)

Configurar o Furbot no Eclipse

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

JAVA 14 ODBC / JDBC Aceder a Bases de Dados através da Internet. Vitor Vaz da Silva

Aplicação Hibernate1 no NetBeans

Guião de Introdução ao Eclipse IDE Índice

Manual de Importação do WebMail para o Exchange

Criação de uma aplicação Web ASP.NET MVC usando Code First

INSTALAR O SQL SERVER NO SERVIDOR. (É o caso da Zervan, que existe o servidor da Fernanda e queremos instalar um outro na máquina de Lilian)

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

Manipulação de Banco de Dados com Java 1. Objetivos

JPA Demonstração das estratégias optimistic locking e pessimistic locking

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Aula 1 Acesso a Banco de Dados

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Disciplina: INF Programação I. 1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server

Aplicabilidade: visão geral

Criando sua primeira aplicação JAVA com o Eclipse

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

JDBC. Prof. Márcio Bueno

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Tecnologias Java JDBC. Marcio Seiji Oyamada

Bases de Dados. Lab 1: Introdução ao ambiente

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Java Persistence Query Language JPQL

Instalando e configurando o Java Development Kit (JDK)

Java Exemplo MDI. Tela Principal

Connection String usada por uma Class Library

Guia do Usuário Windows

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Sistemas Empresariais Integrados

A interface do Microsoft Visual Studio 2005

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

Equipa PTE. Janeiro 2012

Redes de Computadores. Trabalho de Laboratório Nº8

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas.

Criar o diagrama entidade associação do exemplo do hotel no Oracle Designer

Java Persistence API (JPA)

Manual de Instalação: Agente do OCS Inventory NG

Paradigmas da Programação Netbeans UML

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

Persistência de dados com JPA. Hélder Antero Amaral Nunes

HIBERNATE Criando um projeto em Java + Hibernate do zero

Evento.java. package dominio;

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Windows 2008 Server. Módulo 16. Instalação e configuração

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

LEARNING NETWORK MANAGER 2007 MANUAL DE INSTALAÇÃO

Sistema Operativo em Ambiente Gráfico

Tarefa Orientada 5 Aplic. Manutenção de Facturas de Clientes

TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Capítulo 4. Packages e interfaces

Inserindo Dados no Banco de Dados Paradox.

Data Transformation Services (DTS) por Anderson Ferreira Souza

Aula 2 - Revisão de JPA (Java Persistence API)

Instalação do Plugin LeJOS

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

JPA Demonstração das Estratégias Optimistic Locking e Pessimistic Locking

Web Services Novembro de 2011

Conselho Geral da Ordem Dos Advogados Departamento Informático. Índice:

Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView

Exemplo de Aplicaça o Facebook

Procedimentos de Implantação ireport x Protheus

Eclipse com c++11 e boost Etapa 1- Download da IDE Eclipse c++ e configuração do MinGW

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Instalando o plugin CDT 4.0

Acesso a banco de dados

BACKUP E RESTORE BACKUP (NO MOODLE DO ANO PASSADO)

Criar um novo projeto

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

INSTALAÇÃO DO SAGE 2008 NO WINDOWS XP

Transcrição:

Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca para ligar à base de dados H2 Em projetos Java, as bibliotecas utilizadas precisam ficar registadas no classpath da aplicação. Criar um directório LIBS dentro do projecto para conter o ficheiro jar com o driver para H2: Bt. dir. do rato no projecto Java: New > Folder > LIBS [Categories: Other, File Types: Folder] Este directório não fica visível no separador Projects. Mudar para o separador Files, copiar o ficheiro h2-1.3.175.jar e fazer paste em LIBS No separador Projects, bt. dir. do rato em Libraries > Add JAR/Folder Seleccionar /JPA2/LIBS/h2-1.3.175.jar (Relative Path) > Open

3) Criar Persistence Unit A Persistence Unit é necessária para criar um gestor de persistência Entity Manager encarregado de persistir qualquer alteração do estado dos objectos para a base de dados. Bt. dir. do rato no projecto > New > Persistence > Persistence Unit Janela New Persistence Unit : Persistence Unit Name: JPA2PU Persistence Library: EclipseLink (JPA 2.1) [Hibernate (JPA 2.0] Database Connection: Table Generation Strategy: Selecionar New Database Connection Create Na janela New Connection Wizard, Locate Driver, Em Driver selecionar org.h2.driver Se esta opção não aparece é porque o driver H2 ainda não está registado no NetBeans. Então devemos seleccionar New Driver para o registar. Next > Na janela New Connection Wizard, Customize Connection, User Name: e Password: podem ser deixados em branco. Antes de premir em Test Connection devemos preencher JDBC URL: Exemplo: JDBC URL: jdbc:h2:~/bd/pessoas Nota: Não é possível colocar um caminho para a base de dados relativo ao diretório do projeto, pelo que se coloca um caminho relativo ao directório home, embora depois se vá alterar. Test Connection. Next > Na janela New Connection Wizard, Choose Database Schema, Select schema: PUBLIC Next > Na janela New Connection Wizard, Choose name for connection, Input connection name: ligacaoparaapagar Finish. Nas Libraries do projecto surgirão as seguintes bibliotecas: EclipseLink (JPA 2.1) eclipselink-2.3.2.jar EclipseLink (JPA 2.1) javax.persistence-2.1.0.v201304241213.jar EclipseLink (JPA 2.1) org.eclipse.persistence.jpa.jpql_2.5.1. v20130918-f2b9fc5.jar

O ficheiro persistence.xml criado dentro do directório META INF pode ser visualizado em modo Source ou Design. Vamos mudar o conteúdo de JDBC Connection de JDBC Connection: jdbc:h2:~/bd/pessoas para JDBC Connection: jdbc:h2:./bd/pessoas Assim a base de dados fica com um caminho relativo ao projecto. No wizard usado anteriormente para criar a ligação à base de dados não foi possível colocar um caminho relativo ao projeto. No modo Design também não é possível mudar. No modo Source já é possível editar o ficheiro. No modo Source editar a linha: <property name="javax.persistence.jdbc.url" value="jdbc:h2:~/bd/pessoas"/> para <property name="javax.persistence.jdbc.url" value="jdbc:h2:./bd/pessoas"/> A base de dados ficará localizada debaixo do directório do projecto NetBeans (JPA2): /JPA2/bd/Pessoas.h2.db O ficheiro persistence.xml, ficheiro de configuração para aplicações JPA, pode ter definições para um conjunto de unidades de persistência. Cada unidade de persistência especifica o provider JPA, um conjunto de propriedades para configurar a fonte de dados, e define uma ou mais entidades managed que a instância Entity Manager de uma aplicação pode gerir (entidades definidas na próxima secção). O elemento <persistence-unit> contém a informação de configuração de uma fonte de dados. O atributo name especifica o nome da unidade de persistência que é necessário fornecer para criar a instância EntityManagerFactory.

4) Criar classe Entidade Bt. dir. do rato no projecto ou em Source Packages > New > Persistence > Entity Class Class Name: Pessoa Package: model Finish Verificar que no ficheiro persistence.xml foi incluído o elemento <class>model.pessoa</class> Acrescentar o seguinte código a Pessoa.java: @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nome; public Pessoa() { public Pessoa(String nome) { this.nome = nome; public String getnome() { return nome; Mudar para: @GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.IDENTITY) A estratégia AUTO é a estratégia por omissão, portanto @GeneratedValue(strategy = GenerationType.AUTO) é equivalente a @GeneratedValue A estratégia AUTO usa o gerador global number para gerar uma chave primária para cada nova entidade. Estes valores gerados são únicos ao nível da base de dados e nunca reciclados. A estratégia IDENTITY é semelhante à AUTO, a diferença é que usa um gerador Identity separado para cada tipo hierarquia, portanto os valores gerados são únicos só por hierarquia.

5) Colocar o seguinte código no método main: public static void main(string[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPA2PU"); EntityManager em = emf.createentitymanager(); Pessoa p1 = new Pessoa("Manuel"); em.gettransaction().begin(); em.persist(p1); em.gettransaction().commit(); System.out.println("ID gerado: " + p1.getid()); em.close(); emf.close(); Executar o programa. 6) Ver o conteúdo da base de dados No separador Services apagar a ligação obtida durante a criação da Persistence Unit: Bt. dir. do rato em ligacaoparaapagar > Disconnect, Delete A base de dados obtida durante a criação da Persistence Unit ficou com um caminho relativo ao directório home (~/bd/pessoas), enquanto que a base de dados criado durante a execução do programa tem um caminho relativo ao projecto (./bd/pessoas). Assim a ligação existente em Services ligacaoparaapagar não nos serve para nada e para ver o conteúdo da base de dados temos de criar uma nova ligação à base de dados criada pelo programa. No separador Services criar um ligação para a base de dados: Databases > New Connection > Driver: org.h2.driver Next Na janela New Connection Wizard, Customize Connection, JDBC URL: jdbc:h2:c:\users\fernando\documents\netbeansprojects\jpa2\bd\pessoas Ou jdbc:h2:~\documents\netbeansprojects\jpa2\bd\pessoas É necessário indicar o caminho absoluto ou um caminho relativo a partir do directório home. Test Connection. Next > Na janela New Connection Wizard, Choose Database Schema, Select schema: PUBLIC Next > Na janela New Connection Wizard, Choose name for connection, Input connection name: ligacaobasedadospessoas Finish.

Expandir o objecto ligacaobasedadospessoas > PUBLIC > Tables > PESSOA Bt. dir. do rato > View Data 7) Executar o programa mantendo uma ligação aberta para a base de dados Dá o seguinte erro: Exception in thread "main" javax.persistence.persistenceexception: Exception [EclipseLink 4002] (Eclipse Persistence Services 2.5.1.v20130918 f2b9fc5): org.eclipse.persistence.exceptions.databaseexception Internal Exception: org.h2.jdbc.jdbcsqlexception: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020 175] Error Code: 90020 É necessário fechar a ligação no separador Services: Bt. dir do rato na ligação: Disconnect 8) Alteração do ficheiro persistence.xml para mostrar as instruções SQL executadas As opções de logging são específicas do Provider. Para o EclipseLink acrescentar ao elemento properties do documento persistence.xml as 2 linhas seguintes (a primeira para mostrar as instruções SQL, e a segunda para mostrar os valores dos parâmetros SQL): <property name="eclipselink.logging.level.sql" value="fine"/> <property name="eclipselink.logging.parameters" value="true"/> Executar o programa.