Java Persistence API (JPA)

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "Java Persistence API (JPA)"

Transcrição

1 Java Persistence API (JPA) Você já percebeu que gravar informações num banco de dados usando puramente JDBC dá muito trabalho. Mas, não só você como também um grupo de pessoas já passaram pela mesma experiência e então criaram uma forma menos trabalhosa tornando o trabalho mais eficiente. A idéia foi de criar algo onde, para gravar um objeto, não fosse necessário montar um insert mas sim chamar um método passando o próprio objeto e o tal método faz o trabalho. Esbarrou-se então no primeiro problema onde temos bancos de dados relacionais e o programa Java orientado a objeto. Vejamos um exemplo. No cadastro de clientes de uma empresa que faz vendas há o campo cidade. A representação deste dado no banco de dados relacional difere da representação da classe no diagrama Classes. Lembrando que o desenvolvimento da aplicação Java baseia-se na UML. Veja as figuras 1 e 2 e note que na figura 1 o campo CLIENTE.codCidade é apenas mais um de tipo inteiro que possui um relacionamento com CIDADE.codCidade. Então, codcidade em cliente guarda somente o identificador da cidade. Na figura 2, o atributo cidade é um objeto dentro de Cliente que não traz somente um identificador mas sim uma instância de Cidade com todos os atributos. Figura 1: DER do BD relacional Figura 2: Diagrama de Classes A gravação dos dados neste cenário fica mais complicada exigindo muitas linhas de código para poucos comandos SQL. Porém, como todo bom programador que não gosta de escrever muitos códigos para rotinas repetitivas, a solução encontrada foi o desenvolvimento de frameworks que faz o trabalho difícil para nós. Neste ponto entra em ação o Java Persistence API (JPA) provendo um mapeamento objetorelacional resolvendo o problema da gravação nos dados em bancos de dados relacionais pelas aplicações Java. Veja na figura 3 uma representação de comunicação da aplicação Java com o banco de dados. Note que o JDBC é utilizado pelo JPA para manipulação de dados. CESUMAR Prof. Sandro Marcelo Pascoal Página 48/68

2 Figura 3: Comunicação da aplicação com o BD. Para colocar em prática um exemplo, antes é preciso conhecer alguns elementos necessários para utilização do JPA. Leia os tópicos POJO e Anotações. Plain Old Object (POJO) Para persistir objetos com alguns frameworks Java, neste caso o JPA, a classe precisa ser escrita com alguns elementos a fim de poder ser manipulada pelos frameworks. Tais elementos criam uma convenção de escrita das classes que fazem com sejam chamadas de POJOs. Um POJO define que a classe deve ser escrita: Implementando a interface java.io.serializable; Possua um construtor sem argumento, ou seja, vazio. Contenha os métodos gets e sets para cada um dos atributos. Na listagem 1 apresenta uma classe comum, como as que trabalhamos até o momento. Já a listagem 2 apresenta uma classe POJO. Ainda na listagem 2 foi utilitada a classe java.io.serializable. Para compreender leia o tópico seguinte. CESUMAR Prof. Sandro Marcelo Pascoal Página 49/68

3 public class Aluno { private int ra; private String nome; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public int getra() { return ra; public void setra(int ra) { this.ra = ra; Listagem 1: Classe Java comum. import java.io.serializable; // Implementa classe de Serialização permitindo assim // que os objetos Aluno possam ser transferidos de // um meio para outro. public class Aluno implements Serializable { private int ra; private String nome; // Construtor sem argumentos public Aluno() { // Métodos gets e sets public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public int getra() { return ra; public void setra(int ra) { this.ra = ra; Lisgatem 2: Classe POJO. CESUMAR Prof. Sandro Marcelo Pascoal Página 50/68

4 Serialização Na listagem 2 do tópico POJO a classe Aluno implementa a classe java.io.serializable permitindo que qualquer objeto desta classe possa ser serializado. Serialização, segundo Yung (2005), é o processo de armazenar os dados de um objeto e envolve a transformação das variáveis ou atributos de um objeto em memória, em bytes ou caracteres, ou seja, converter dados inteligíveis em números para podermos guardar em um arquivo. O trabalho de gravar os objetos fica por conta do JPA. Para felicidade dos programadores basta escreverem a classe implementando a interface Serializable. Essa interface não possui métodos, apenas serve para indicar ao Java que os objetos da classe e subclasses são possíveis de serem persistidos. Annotations Os frameworks de persistência não fazem mágica, mas ajudam bastante no trabalho de gravação de objetos em banco de dados relacional. Não faz mágica porque eles necessitam de uma configuração prévia na classe indicando qual o nome da entidade no banco de dados, quem dos atributos é chave primária no banco, qual o tipo relacionamento com outras classes,... Vamos para um exemplo para melhor explicar. Na classe Aluno abaixo podemos reconhecer dois atributos (ra e nome). O JPA é capaz de gravar um objeto Java dentro da entidade Aluno no banco de dados (BD) relacional, mas, como o JPA sabe o nome da entidade no BD? Como sabe qual o atributo da classe é a chave primária no BD? O framework só poderá fazer seu trabalho se você ajudar ele com algumas informações. É preciso indicar na classe Aluno qual o nome da entidade no BD, qual o atributo da classe é a chave primária no BD entre outros recursos.. import java.io.serializable; public class Aluno implements Serializable { private int ra; private String nome; public Aluno() { // Métodos gets e sets public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public int getra() { return ra; public void setra(int ra) { this.ra = ra; Listagem 3: Classe Aluno sem informações para framework de persistência CESUMAR Prof. Sandro Marcelo Pascoal Página 51/68

5 Para dar estas informações usamos o recurso do Java chamado Annotations. É uma decoração inserida na classe que é compilada dentro da mesma e interpretada em tempo de execução por algum framework, neste caso JPA. Os annotations são usados com três finalidades: 1. Para documentação Podem ser utilizados para inserir informações dentro da classe, como por exemplo o autor da classe, datas, dados relevantes, Para o compilador Usados pelo compilador para detectar erros e suprimir 3. Para processamento runtime Indicados para serem utilizados por informações que precisam ser processadas obtidas no momento da execução da aplicação. Os exemplos JPA estão ligados ao item 3. A classe Aluno da listagem 4 está com as anotações mínimas necessárias para o JPA poder persistir qualquer objeto Aluno na entidade aluno no banco. Importante!!! O nome da classe no Java e os atributos devem ter os mesmos nomes usados no banco de dados. Para este exemplo pelo menos. Mais importante ainda!!! Para usar o pacote javax.persistence é necessário incluir no seu projeto o ejb3-persistence.jar. import java.io.serializable; import javax.persistence.entity; import javax.persistence.id; // Indica para o JPA que esta classe é a mesma que a entidade no banco de public class Aluno implements Serializable // Indica que o atributo logo abaixo é a PK da tabela no BD. private int ra; private String nome; // Construtor sem argumentos public Aluno() { // Métodos gets e sets public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public int getra() { return ra; public void setra(int ra) { this.ra = ra; Listagem 4: Classe Aluno com anotações. Este é um exemplo muito básico e inicial. Veja a lista de anotações abrindo o link da referência bibliográfica de Oracle (2009). Também, veja o projeto criado no tópico seguinte. CESUMAR Prof. Sandro Marcelo Pascoal Página 52/68

6 Criando um projeto com persistência JPA Neste tópico iremos criar um projeto completo no NetBeans manipulando dados num banco PostgreSQL gravando e recuperando os objetos com JPA. O exemplo consiste em criar um cadastro de produtos separando-os por grupo, por exemplo: Uma empresa que comercializa materiais para construção vende algumas ferramentas como alicate, chaves, furadeiras,... Assim, ela cadastraria um grupo chamado FERRAMENTAS e para cada produto cadastrado classificaria seu grupo. A tecnologia mais adequada para construir este software é utilizar um banco de dados relacional. Porém, como a linguagem que estamos usando é o Java, na qual é orientada a objetos e, onde a associação entre as classes difere da estrutura de um SGBDR (Sistema Gerenciador de Banco de Dados Relacional), faz-se necessário fazer um mapeamento objeto-relacional nos momentos de gravação e recuperação de dados do BD. Veja os diagramas de classe e de entidade e relacionamento (DER). DER das entidades do banco de dados PostgreSQL Diagrama de Classes do projeto em Java Vamos então listar alguns passos para construir este programa. 1. Criar o banco de dados no PostgreSQL 2. Iniciar no NetBeans criando um projeto novo 3. Copiar os.jar necessários 4. Criar o pacote modelo escrevendo as classes de negócio dentro dele. Estas classes devem ser POJO e com anotações para o JPA. 5. Criar o pacote dao contendo os métodos para conexão com BD e manipulação das entidades grupo e produto. 6. Criar os pacotes modelo e teste contendo as classes funcionais. Agora, mãos à obra. CESUMAR Prof. Sandro Marcelo Pascoal Página 53/68

7 1. Criar o banco de dados Com o PostgreSQL instalado, crie um banco de dados com o nome jpa e nele os recursos e entidades de grupo e produto. A listagem 5 apresenta as instruções a serem executadas no banco jpa. Os sequences são utilizados para gerar os códigos automaticamentes para os campos pk das entidades. CREATE SEQUENCE GRUPO_CODGRUPO_SEQ; CREATE TABLE GRUPO ( CODGRUPO SMALLINT PRIMARY KEY DEFAULT NEXTVAL('GRUPO_CODGRUPO_SEQ'), NOME VARCHAR(30) ); CREATE SEQUENCE PRODUTO_CODPRODUTO_SEQ; CREATE TABLE PRODUTO ( CODPRODUTO INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL('PRODUTO_CODPRODUTO_SEQ'), DESCRICAO VARCHAR(50), QUANTIDADE INTEGER, PRECO_CUSTO REAL, MARGEM_LUCRO REAL, PRECO_VENDA REAL, CODGRUPO SMALLINT, FOREIGN KEY (CODGRUPO) REFERENCES GRUPO (CODGRUPO) ); Listagem 5: Estrutura do banco de dados jpa no PostgreSQL 2. Iniciando o projeto JPA no NetBeans. Abra o NetBeans e crie Aplicativo Java com o nome JPA. Na tela seguinte selecione a pasta, digite o nome do projeto (JPA) e desmarque a opção que cria a classe Main. CESUMAR Prof. Sandro Marcelo Pascoal Página 54/68

8 3. Arquivos.jar necessários Para fazer as anotações nas classes, conectar com PostgreSQL e usar o JPA é necessário acoplar a aplicação Java arquivos que contenham as funções que permites tais tarefas. Estes arquivos são de extensão.jar e cada um para uma função específica. Veja a lista que é utilizada para este projeto. postgresql jdbc4.jar Utilizado pela api JDBC do Java para conexão e manipulação de bancos Postgree. Este.jar é distribuído pelo fabricante (PostgreSQL) e pode ser baixado em Em Download você encontra dois drivers, este que estou usando é compatível com Java 1.6. Caso seu Java seja de versão abaixo de 1.6 baixe o outro driver para jdbc3. ejb3-persistence.jar Necessário para a inserção dos annotations nas classes que serão persistidas (Grupo e Produto). toplink-essentials.jar e toplink-essentials-agent.jar Necessários para fazer a conexão e manipulação de dados no banco de dados. Para colocar estes arquivos no projeto faça o seguinte: 1. Crie na pasta do seu projeto uma pasta chamada lib. 2. Copie os arquivos.jar para esta pasta. 3. Configure seu projeto JPA para usar estes arquivos. Veja os passos. Clique com botão direito em Bibliotecas e selecione Adicionar JAR/pasta. Localize a pasta lib dentro do projeto JPA, selecione todos os arquivos.jar da pasta lib, deixe a opção Caminho relativo marcada e confirme. (Veja tela abaixo). Agora seu projeto pode utilizar os recursos destas APIs prontas. CESUMAR Prof. Sandro Marcelo Pascoal Página 55/68

9 4. Criando classes modelo (Grupo e Produto) Para a utilização pelo framework JPA, as classes que serão persistidas devem ser POJO e conter as anotações. Importante!!! Para escrever as anotações nas é preciso anexar um.jar ao seu projeto. Veja o tópico 3 acima. Crie um pacote chamado modelo e nele crie as classes Grupo e Produto. Veja figura ao lado. Importante!!! As classes a serem persistidas precisam estar listadas no persistence.xml. Veja no tópico 5. A anotações (annotations) são colocados na linha logo acima do recurso que desejamos anotar. Para indicar que a classe Grupo é uma entidade a ser persistida coloca-se na linha antes de public classe Grupo... A mesma regra vale para indicar que o atributo codgrupo é a chave primária da entidade no banco. na linha antes de private int codgrupo. Além o atributo codproduto possui a que identifica a estratégia de autonumeração do código. Assim, um atributo pode ter mais de uma anotação. Analise o código das classes Grupo e Produto seguinte. package modelo; import java.io.serializable; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; // Indica ao JPA que a classe Grupo deve ser gravada no banco // de dados exatamente na entidade public class Grupo implements Serializable { - Indica que o atributo logo na linha abaixo é a chave primária GeneratedValue... - Indica que o código será gerado automaticamente * pela estratégia IDENTITY que usa um sequence do banco de dados montado * com o nome padrão de GRUPO_CODGRUPO_SEQ. * Note que todas estas anotações são exatamente antes do atributo private int codgrupo; private String nome; public Grupo() { public int getcodgrupo() { return codgrupo; CESUMAR Prof. Sandro Marcelo Pascoal Página 56/68

10 public void setcodgrupo(int codgrupo) { this.codgrupo = codgrupo; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; Listagem 6: Classe Grupo Em especial na classe Produto há a para o atributo grupo. Em conjunto definem que o atributo produto.codgrupo é o campo de chave estrangeira no relacionamento entre as entidades Produto e Grupo no BD. Também, alguns atributos possuem a sendo utilizada para indicar o nome do campo na entidade produto que neste caso foi propositalmente inserido na classe com o nome diferente do BD. package modelo; import java.io.serializable; import public class Produto implements = GenerationType.IDENTITY) private int codproduto; private String descricao; private int quantidade; // No BD, o campo tem o nome diferente do atributo da classe // Neste caso é possível incluir uma anotação para a coluna e // especificar o que for = "preco_custo") private double = "margem_lucro") private double = "preco_venda") private = "codgrupo") private Grupo grupo; // Construtor vazio. public Produto() { public int getcodproduto() { return codproduto; CESUMAR Prof. Sandro Marcelo Pascoal Página 57/68

11 public void setcodproduto(int codproduto) { this.codproduto = codproduto; public String getdescricao() { return descricao; public void setdescricao(string descricao) { this.descricao = descricao; public int getquantidade() { return quantidade; public void setquantidade(int quantidade) { this.quantidade = quantidade; public double getprecocusto() { return precocusto; public void setprecocusto(double precocusto) { this.precocusto = precocusto; public double getmargemlucro() { return margemlucro; public void setmargemlucro(double margemlucro) { this.margemlucro = margemlucro; public double getprecovenda() { return precovenda; public void setprecovenda(double precovenda) { this.precovenda = precovenda; public Grupo getgrupo() { return grupo; public void setgrupo(grupo grupo) { this.grupo = grupo; Listagem 7: Classe Produto CESUMAR Prof. Sandro Marcelo Pascoal Página 58/68

12 5. Persistence Unit (Unidade de persistência) O primeiro passo para utilização da persistência com JPA é prover a conexão com um banco de dados. Esta feita por meio da configuração de um arquivo.xml e uma classe que retorne a conexão. A classe será criada no tópico seguinte. A unidade de persistência é um arquivo chamado persistence.xml que descreve o driver de banco de dados, nome do banco, usuário e senha da conexão. Também pode conter mais configurações, porém não são relevantes no momento. No pacote de códigos fontes do seu projeto, crie um pacote com o nome META-INF. Importante!!! O JPA irá procurar pelo persistence.xml no pacote META-INF que deve estar na raiz projeto. Clique com botão direito em META-INF e selecione a opção Novo -> Outro. Em Outro, selecione XML na lista de categorias e em tipos de arquivos Documento XML. Coloque o nome persistence (sem o.xml) e confirme. Agora, no arquivo persistence.xml, copie e cole o conteúdo abaixo dentro dele. Altere o que for necessário para sua conexão. Importante!!! Note que no persistence.xml há duas vezes a tag <class>. Deve ser feito uma para cada classe do seu projeto que deseja persistir pelo JPA. <?xml version="1.0" encoding="utf-8"?> <persistence version="1.0" 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 <persistence-unit name="exemplojpa" transaction-type="resource_local"> <provider>oracle.toplink.essentials.persistenceprovider</provider> <!-- Relacione aqui todas as classes do seu projeto que serao persistidas --> <class>modelo.grupo</class> <class>modelo.produto</class> <!-- Propriedades da conexão --> <!-- toplink... é o provedor de conexão utilizado. Pederia ser o Hibernate também. --> <properties> <property name="toplink.jdbc.driver" value="org.postgresql.driver"/> <property name="toplink.jdbc.url" value="jdbc:postgresql://localhost/jpa"/> <property name="toplink.jdbc.user" value="postgres"/> <property name="toplink.jdbc.password" value="screen"/> </properties> </persistence-unit> </persistence> Listagem 8: Conteúdo do persistence.xml CESUMAR Prof. Sandro Marcelo Pascoal Página 59/68

13 6. Entity Manager Como será que um ojeto Produto, por exemplo, será gravado no banco de dados? Esta é a função do Entity Manager, porém, para obter um objeto do tipo não é tão simples. Analise a figura seguinte extraída do livro de Keith (2006) e adaptada com algumas explicações. 1. A classe de persistência (Persistence) cria uma fábrica de gerenciadores de entidades (EntityManagerFactory). A multiplicidade * indica que podem ser criadas várias fábricas a partir da classe de persistência. 2. O EntityManagerFactory é configurado através da unidade de persistência (persistence.xml). Então, ele é o responsável direto pela conexão com o BD. A multiplicidade 1:1 indica que um objeto EntityManagerFactory só pode estar conectado a um banco de dados. 3. O EntityManager é o responsável por persistir (gravar) os objetos e lê-los do banco de dados trazendo-os para dentro da aplicação. 4. Como há a possibilidade da existência de vários objetos EntityManager (em), pode acontecer de dois ou mais EntityManager executarem selects e retornarem um mesmo produto, por exemplo. Assim, um objeto manipulado (PersistenteContext) pode estar presente em vários EntityManager mas não pode estar duplicado dentro do mesmo. Portanto, num projeto usando JPA precisamos de um objeto EntityManager para executar os comandos, e, este por sua vez é obtido através do EntityManagerFactory. Veja o exemplo. EntityManagerFactory emf = Persistence.createEntityManagerFactory("ExemploJPA"); EntityManager em = emf.createentitymanager(); O String ExemploJPA deve ser o nome da unidade der persistência encontrada no persistence.xml. O código completo com exemplo está no tópico 8. Classe Dao. CESUMAR Prof. Sandro Marcelo Pascoal Página 60/68

14 7. Métodos para inserção, alteração, exclusão e recuperação de dados. Com um EntityManager instanciado (ver tópico 6) é possível executar os comandos de manipulação de dados. em.persist(produto); // insere ou atualizar um registro no banco em.find(produto.class, 1); // recupera um objeto Produto do BD com código = 1 em.remove(produto); // remove o registro do banco de dados Veja no tópico seguinte o código completo para manipulação de dados. 8. Classe Dao (conectando e manipulando dados) Crie no projeto JPA um pacote chamado dao. Neste pacote crie agora uma classe chamada Dao e transcreva o código seguinte. package dao; import java.util.collection; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import javax.persistence.query; public class Dao { private static EntityManagerFactory emf = null; private static EntityManager em = null; // Retorna o objeto EntityManager usado na execução dos comandos. private static EntityManager getem() { if (em == null) { // A primeira vez que este método é invocado instancia os objetos try { /* A instrução seguinte obtem uma "Fábria de Entity Manager" * O parametro "ExemploJPA" é o nome do persistence-unit * definido dentro do persistence.xml. Isso quer dizer que * é esta conexão que o emf vai executar. */ emf = Persistence.createEntityManagerFactory("ExemploJPA"); // Instancia um objeto EntityManager em = emf.createentitymanager(); catch (Exception e) { System.out.println(e.getMessage()); return em; // Método utilizado para iniciar uma transação public static void starttransaction() { getem().gettransaction().begin(); // Método utilizado para confirmar uma transação aberta // gravando assim definitivamente os registros no banco de dados public static void committransaction() { getem().gettransaction().commit(); CESUMAR Prof. Sandro Marcelo Pascoal Página 61/68

15 // Método utilizado para desfazer os comandos realizados desde // quando a transação foi aberta public static void rollbacktransaction() { getem().gettransaction().rollback(); // Método persiste (grava) um objeto no banco de dados // É necessário a utilização de transação na qual estudaremos mais tarde. public static void persist(object obj) { try { starttransaction(); getem().persist(obj); committransaction(); catch (Exception e) { System.out.println(e.getMessage()); rollbacktransaction(); // Método busca do banco de dados um objeto com a chave primária // conforme passada por parâmetro public static Object find(class classe, Object pk) { try { return getem().find(classe, pk); catch (Exception e) { System.out.println(e.getMessage()); return null; // Método remove um objeto do banco de dados public static void remove(object obj) { try { getem().remove(obj); catch (Exception e) { System.out.println(e.getMessage()); // Obtem a lista de todos os objetos da classe passada como parâmetro /* A instrução SQL montada (SELECT r FROM Classe r) é um SQL baseado na * Java Persistence Query Language (JPQL) * "r" não é o nome de uma coluna mas sim o nome dados a um objeto da Classe */ public static Collection listartodos(class classe) { Query query = getem().createquery("select r FROM " + classe.getsimplename() + " r" ); return (Collection) query.getresultlist(); Listagem 9: Classe Dao para conexão, persistência e recuperação dos dados. CESUMAR Prof. Sandro Marcelo Pascoal Página 62/68

16 9. Testando Crie agora no projeto JPA o pacote teste. Nele, crie uma classe chamada Teste e transcreva o código seguinte. package teste; import modelo.grupo; import dao.dao; import java.util.collection; import modelo.produto; public class Teste { public static void main(string[] args) { System.out.println(" TESTES COM A CLASSE GRUPO "); Grupo grupo = new Grupo(); // Novo objeto grupo.setnome("ferramentas"); // Não precisa definir o CodGrupo // INSERINDO System.out.println("Inserindo grupo..."); Dao.persist(grupo); // Grava o objeto no banco de dados // Apresenta os dados do objeto inclusive com o código do grupo // gerado automaticamento pelo sequence e capturado pela api de // persistência. System.out.println("Grupo inserido código: " + grupo.getcodgrupo() + " - nome: " + grupo.getnome()); // LOCALIZANDO // Localiza e retorna do banco o grupo código 1 grupo = (Grupo) Dao.find(Grupo.class, 1); System.out.println("Grupo localizado no BD código: " + grupo.getcodgrupo() + " - nome: " + grupo.getnome()); // ATUALIZANDO // Modifica a nome e grava grupo System.out.println("Modificando registro (update)..."); grupo.setnome("materiais ELÉTRICOS"); Dao.persist(grupo); // Método persist pode inserir ou atualizar // REMOVENDO // Insere e remove um grupo do banco de dados. System.out.println("Removendo registro..."); grupo = new Grupo(); grupo.setnome("teste DE EXCLUSÃO"); Dao.persist(grupo); Dao.remove(grupo); // INSERINDO ALGUNS PARA LISTAGEM // Insere mais alguns grupos para poder listar grupo = new Grupo(); grupo.setnome("hidráulicos"); Dao.persist(grupo); grupo = new Grupo(); grupo.setnome("louça"); CESUMAR Prof. Sandro Marcelo Pascoal Página 63/68

17 // LISTANDO // Collection é parecido com ArrayList System.out.println("Listando registros..."); System.out.println(" "); Collection<Grupo> grupos = Dao.listarTodos(Grupo.class); // O for "diferente" abaixo é chamado de (for each) onde // g é um objeto grupo e "grupos" é a lista (Collection) for (Grupo g : grupos) { System.out.println("Código: " + g.getcodgrupo() + " nome: " + g.getnome()); System.out.println(" "); // System.out.println(" TESTES COM A CLASSE PRODUTO "); // Instancia um grupo para o produto grupo = new Grupo(); grupo.setnome("luminária"); Dao.persist(grupo); // INSERINDO // Instancia um novo produto Produto prod = new Produto(); prod.setdescricao("conjunto TASHIBA 2x40W"); prod.setquantidade(0); prod.setprecocusto(27.0); prod.setmargemlucro(48.0); prod.setprecovenda(39.96); prod.setgrupo(grupo); System.out.println("Inserindo produto..."); Dao.persist(prod); System.out.println("Produto inserido código: " + prod.getcodproduto() + " - Descrição: " + prod.getdescricao()); // LISTANDO // Collection é parecido com ArrayList System.out.println("Listando produtos..."); System.out.println(" "); Collection<Produto> produtos = Dao.listarTodos(Produto.class); for (Produto p : produtos) { System.out.println("Código : " + p.getcodproduto()); System.out.println("Descrição : " + p.getdescricao()); System.out.println("Quantidade: " + p.getquantidade()); System.out.println("Custo : " + p.getprecocusto()); System.out.println("Margem : " + p.getmargemlucro() + " %"); System.out.println("Venda : " + p.getprecovenda()); System.out.println("Grupo : " + p.getgrupo().getcodgrupo() + " " + p.getgrupo().getnome()); System.out.println(" "); Listagem 10: Classe de Teste CESUMAR Prof. Sandro Marcelo Pascoal Página 64/68

18 Referência bibliográfica do JPA Sun Microsystems. The Java EE 5 Tutorial. Disponível em: Acessado em: 25 maio 2009a. Wikipédia. Plain Old Java Objects. Disponível em: Acessado em: 01 junho 2009a. Wikipédia. JavaBeans. Disponível em: Acessado em: 01 junho 2009b. Yung, Leandro. ProjessorJ: Serialização de objetos. Revista Mundo Java. Curitiba, ano III, n.13, p12-13, Sun Microsystems. The Java Tutorials: Annotations. Disponível em: Acessado em:04 junho 2009b Oracle. TopLink JPA Annotation Reference. Disponível em: Acessado em 04 junho Keith, Mike; Schincariol, Merrick. Pro EJB 3. Java Persistence API. Berkeley, CA: Apress, CESUMAR Prof. Sandro Marcelo Pascoal Página 65/68

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informações Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 7 JPA A Persistência com JPA Para configurar o JPA

Leia mais

JPA Java Persistence API. Prof. Ramon Chiara

JPA Java Persistence API. Prof. Ramon Chiara JPA Java Persistence API Prof. Ramon Chiara JDBC Java DataBase Connectivity Acesso a bancos de dados Independência de banco de dados JDBC Aplicação JDBC Driver Banco de Dados JDBC Java DataBase Connectivity

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

Persistência de Dados em Java com JPA e Toplink

Persistência de Dados em Java com JPA e Toplink Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida

Leia mais

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

Aula 2 - Revisão de JPA (Java Persistence API) Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações

Leia mais

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

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações Java Persistence API Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações Entity Manager Entity Manager API Java Persistence Query Language (JPQL) Persistence Units 1 Java Persistence

Leia mais

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

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education JPA Passo a Passo Henrique Eduardo M. Oliveira henrique@voffice.com.br 1 Palestrante Henrique Eduardo M. Oliveira (henrique@voffice.com.br) > Trabalha: Arquiteto JEE / Instrutor Java > Formação: Ciências

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Criar uma aplicação JPA2 com EclipseLink e H2

Criar uma aplicação JPA2 com EclipseLink e H2 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

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

HIBERNATE Criando um projeto em Java + Hibernate do zero

HIBERNATE Criando um projeto em Java + Hibernate do zero HIBERNATE Criando um projeto em Java + Hibernate do zero SUMÁRIO 1 Instalação do NetBeans 2 Instalação do Java Development Kit (JDK) 3 Criar projeto no NetBeans 4 O arquivo hibernate.cfg.xml 5 Criar as

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

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

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco

Leia mais

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

Manipulação de Banco de Dados com Java 1. Objetivos Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A

Leia mais

Evento.java. package dominio;

Evento.java. package dominio; Evento.java package dominio; import java.util.date; import java.util.set; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.generatedvalue; import javax.persistence.generationtype;

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Introdução à JPA-Java Persistence API

Introdução à JPA-Java Persistence API Introdução à JPA-Java Persistence API Prof. Pasteur Ottoni de Miranda Jr. DCC PUC Minas www.pasteurjr.blogspot.com 1-Entidades São objetos de domínio de problema persistentes. Representam uma tabela em

Leia mais

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

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com)

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com) JDBC Prof. Márcio Bueno (poonoite@marciobueno.com) JBDC Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instruções SQL para qualquer banco

Leia mais

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

Aula 2 - Revisão de JPA (Java Persistence API) Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações

Leia mais

Tecnologias Java JDBC. Marcio Seiji Oyamada msoyamada@gmail.com

Tecnologias Java JDBC. Marcio Seiji Oyamada msoyamada@gmail.com Tecnologias Java JDBC Marcio Seiji Oyamada msoyamada@gmail.com JDBC JDBC: Java Database Connectivity API Java para acessar dados armazenados em um Banco de Dados Conectar a um banco dados Enviar consultas

Leia mais

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com Hibernate Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com Hibernate O que é? Ferramenta para mapeamento O/R em Java Uma das mais difundidas Transparência Independência quanto ao tipo de base

Leia mais

Java com Banco de Dados Posgree

Java com Banco de Dados Posgree Java com Banco de Dados Posgree Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com 1 Driver para ligação Java e Postgre http://jdbc.postgresql.org/download.html www.luizclaudiofs.blogspot.com

Leia mais

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

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

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

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Hibernate Mapeamento Objeto-Relacional Baseado nas notas de aula de João Dalyson e Raphaela Galhardo Fernandes Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender MOR usando Hibernate

Leia mais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais Curso de Java Acesso a banco de dados através do Hibernate Todos os direitos reservados Klais Motivação Java é uma linguagem orientada a objetos: Numa aplicação, o uso de objetos é um recurso importante

Leia mais

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

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

Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência Tutorial JPA em ambiente Eclipse Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência 1-Selecione a perspectiva Java JPA: window, open perspective, other,

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Padrão J2EE Data Access Object (DAO)

Padrão J2EE Data Access Object (DAO) Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Criando um CRUD RESTful com Jersey, JPA e MySQL

Criando um CRUD RESTful com Jersey, JPA e MySQL www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=33273 Criando um CRUD RESTful com Jersey, JPA e MySQL Aprenda neste artigo a implementar

Leia mais

Java Persistence Query Language JPQL

Java Persistence Query Language JPQL Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Java Persistence Query Language JPQL Prof. Enzo Seraphim Definições Tornar SQL orientado a objetos Classes e propriedades ao invés de Tabelas e colunas

Leia mais

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing.

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. 15/11/2009 Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. Crie um novo projeto clicando em arquivo e em novo projeto. Escolha a opção java, aplicativo java

Leia mais

Desmistificando o Hibernate Envers em 10 passos

Desmistificando o Hibernate Envers em 10 passos _envers Desmistificando o Hibernate Envers em 10 passos Auditoria de dados? Registro de Log? Trilha de auditoria? Descubra como é fácil, através do Hibernate Envers, rastrear o histórico de mudanças e

Leia mais

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação - N. 10, JAN/JUN 2011 RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE

Leia mais

Auditoria Avançada de Persistência com Hibernate, JPA e Envers

Auditoria Avançada de Persistência com Hibernate, JPA e Envers a r t i g o José Yoshiriro Ajisaka Ramos (jyoshiriro@gmail.com): bacharel em Sistema de Informação (IESAM). Mestrando em Ciência da Computação (UFPA). Instrutor na Equilibrium Web e na UAB. Engenheiro

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Auditando persistência com JPA

Auditando persistência com JPA a r t i g o Em ambientes corporativos, a auditoria sobre as operações de banco de dados é importantíssima, quando não, indispensável. Essa importância surge a partir de um conjunto de necessidades, como:

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Aula 1 Acesso a Banco de Dados

Aula 1 Acesso a Banco de Dados Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

TUTORIAL SISTEMA DE CONTROLE DE ACESSO FACULDADE DE TECNOLOGIA SENAC GOIÁS GESTÃO EM TECNOLOGIA DA INFORMAÇÃO WISLIY LOPES JULIANO PIROZZELLI TULIO TSURUDA LUIZ GUILHERME MENDES TUTORIAL SISTEMA DE CONTROLE DE ACESSO GOIÂNIA JUNHO DE 2014 Sumário

Leia mais

Resolvendo objeto-relacional impedance mismatch com hibernate

Resolvendo objeto-relacional impedance mismatch com hibernate Resolvendo objeto-relacional impedance mismatch com hibernate August 7, 2013 Sumário I 1 Introdução 2 3 4 Sumário II 5 Contexto Mapeamento Objeto-Relacional (ORM) é uma técnica de programação para converter

Leia mais

Parte II Persistência entre Modelos de Dados

Parte II Persistência entre Modelos de Dados Parte II Persistência entre Modelos de Dados Clodis Boscarioli Agenda: Hibernate Introdução; Configurações; Mapeamento com XML; Exemplos; Associações: 1-n; n-1; n-n; 1-1. Hibernate - Introdução O Hibernate

Leia mais

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

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

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel Acesso a Banco Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel As conexões em Java são feitas através de uma ponte que implementa todas as funcionalidades que um banco de dados padrão deve

Leia mais

Conexão Java 2006. Mini-curso Hibernate

Conexão Java 2006. Mini-curso Hibernate Conexão Java 2006 Mini-curso Hibernate Sérgio Luís Lopes Júnior Caelum www.caelum.com.br Neste tutorial, você irá aprender a: - usar a ferramenta de ORM Hibernate - gerar as tabelas em um banco de dados

Leia mais

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB MIDDLEWARE JDBC: USANDO O JAVA DB Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito do Middleware JDBC Capacitar para a criação de bancos de dados JavaDB

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs? BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Um Banco

Leia mais

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

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

JPA e Hibernate por Thiago Faria e Normandes Junior

JPA e Hibernate por Thiago Faria e Normandes Junior JPA e Hibernate por Thiago Faria e Normandes Junior 1ª Edição, 31/07/2015 2015 AlgaWorks Softwares, Treinamentos e Serviços Ltda. Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos

Leia mais

Aplicabilidade: visão geral

Aplicabilidade: visão geral CURSO BÁSICO SAXES 2 Aplicabilidade: visão geral BI Comércio Indústria nf-e Serviços Software house Enterprise Business Bus Banco financeiro Instituição Sindicato ERP html Casos 3 6 Customização: importação

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Linguagem de Programação Visual

Linguagem de Programação Visual Linguagem de Programação Visual Unidade 1 Ambiente de desenvolvimento Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 SOBRE O JAVA... 3 AMBIENTE DE DESENVOLVIMENTO... 5 RECURSOS DA FERRAMENTA NETBEANS...

Leia mais

Conexão com Banco de Dados

Conexão com Banco de Dados Conexão com Banco de Dados Projeto 1 A pasta Programas distribuída no início do semestre letivo acompanha a versão do MySQL Coneector/J um driver JDBC que permite aos programadores acessar bancos de dados

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600 Objetivo Com enfoque totalmente prático permite que programadores Java possam ampliar seus conhecimentos no mundo Web na criação de sistemas profissionais. Utilizar os modelos de programação com Servlets,

Leia mais

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

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

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web JADER DOS SANTOS TELES CORDEIRO ESTUDO COMPARATIVO ENTRE OS FRAMEWORKS

Leia mais

Aula 4. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com)

Aula 4. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) Persistência com JDBC e JPA Aula 4 Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) A sabedoria não se transmite, é preciso que nós a descubramos fazendo uma caminhada que ninguém

Leia mais

Programação com Acesso a Banco de Dados

Programação com Acesso a Banco de Dados Campus Ipanguaçu Curso: Técnico em Informática Programação com Acesso a Banco de Dados AULA 17 ACESSO A BANCO DE DADOS COM JDBC PROF.: CLAYTON M. COSTA 2 011.2 Introdução Aplicação + Banco de Dados: Funcionalidade

Leia mais

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira www.linksinfo.com.br Tutorial versão 1.0 Sobre o Logic basic: Parte 1 Sobre o Logic Basic e o SQL O Logic Basic é uma linguagem de programação

Leia mais

C# - Conexão com MySQL

C# - Conexão com MySQL E S T A A P R E S E N T A Ç Ã O F O I E L A B O R A D A COMO M A T E R I A L DE A P O I O À A U L A DO P R O F E S S O R L E O L A R B A C K A O S A L U N O S DA E S C O L A T É C N I C A P O L I M I G.

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Sistema Gerenciador de Hotel Adriano Douglas Girardello

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Mapeamento Objeto-Relacional 2 API JDBC 3 API

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

DEFINIÇÃO DE MÉTODOS

DEFINIÇÃO DE MÉTODOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos

Leia mais

JPA (Java Persistence API) Marcos Kalinowski (kalinowski@ic.uff.br)

JPA (Java Persistence API) Marcos Kalinowski (kalinowski@ic.uff.br) JPA (Java Persistence API) (kalinowski@ic.uff.br) Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence

Leia mais

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados: Relatório do GPES Relatório referente à instalação dos programas e plugins que estarão sendo utilizados durante o desenvolvimento dos exemplos e exercícios, sendo esses demonstrados nos próximos relatórios.

Leia mais

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional

Leia mais

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma AUTOR: CESAR AUGUSTO TACLA CRIAÇÃO: 20/5/200 8:24 ÚLTIMA ALTERAÇÃO: 2/5/20 5: TRABALHO DE PADRÕES DE PROJETO ESPECIALIZAÇÃO JAVA 20 INSTRUÇÕES. O trabalho será feito aula a aula de acordo com a matéria

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 11 Mapeamento em JPA - Continuação Objetos Embutidos

Leia mais

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

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais