Java Persistence API (JPA)

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 classes é 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=" xmlns:xsi=" xsi:schemalocation=" <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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo TUTORIAL DO ACCESS PASSO A PASSO I. Criar um Novo Banco de Dados Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo 3. Clicar em Banco de Dados em Branco 4. Escrever um nome na caixa de diálogo

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

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Manual Integra S_Line

Manual Integra S_Line 1 Introdução O é uma ferramenta que permite a transmissão Eletrônica de Resultado de Exames, possibilitando aos Prestadores de Serviços (Rede Credenciada), integrarem seus sistemas com os das Operadoras

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

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,

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

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

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL INTRODUÇÃO: O PostgreSQL é um dos mais populares e avançados sistemas gerenciadores de banco de dados (SGBD) com código aberto. É

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

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

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

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

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

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

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

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

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições

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

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Manual do usuário. Softcall Java. versão 1.0.5

Manual do usuário. Softcall Java. versão 1.0.5 Manual do usuário Softcall Java versão 1.0.5 Sumário Iniciando SoftCall...3 Tela Principal...3 Configurando o SoftCall...4 Agenda...5 Incluindo um contato...5 Procurando um contato...6 Apagando um contato...6

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles: Instalação do Netz Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles: Instalação do Java SE 6, que pode ser instalado através da JDK.

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

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

Cadastramento de Computadores. Manual do Usuário

Cadastramento de Computadores. Manual do Usuário Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

Unidade 7: Middleware JDBC e Java DB Prof. Daniel Caetano (Fonte: Tutorial Oficial do NetBeans)

Unidade 7: Middleware JDBC e Java DB Prof. Daniel Caetano (Fonte: Tutorial Oficial do NetBeans) Programação Servidor para Sistemas Web 1 Unidade 7: Middleware JDBC e Java DB Prof. Daniel Caetano (Fonte: Tutorial Oficial do NetBeans) Objetivo: Capacitar o aluno para criar bancos de dados usando Java

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework

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

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Documentação Usando o Javadoc

Documentação Usando o Javadoc Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários

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

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Prática em Laboratório N.02 Criando um serviço Web via NetBeans Prática em Laboratório N.02 Criando um serviço Web via NetBeans O objetivo deste exercício é criar um projeto apropriado para desenvolver um contêiner que você resolva utilizar. Uma vez criado o projeto,

Leia mais

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Objetivos: Entender o funcionamento dos programas Java via linha de comando Algoritmos e Programação I Aula de Laboratório Objetivos: Entender o funcionamento dos programas Java via linha de comando 1. A Linha de Comando: DOS ou Shell Apesar dos usuários geralmente não enxergarem

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais