Desenvolvimento WEB II Professora: Kelly de Paula Cunha.

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

Java Avançado Luiz Carlos d´Oleron SJCP Hibernate II.
Banco de Dados I Aula 20.
Prof. Alessandro J. de Souza
Prof.: Bruno Rafael de Oliveira Rodrigues
Java Conexão com Banco de Dados
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Sistemas de Informação Redes de Computadores
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Persistência de objetos em arquivo texto usando Java
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Introdução à Engenharia da Computação
Caio Nakashima Hibernate Associação Caio Nakashima
Hibernate Apresentação
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Roteiro Para o Trabalho do Módulo
Mapeamento Objeto-Relacional Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence Architecture
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Hibernate com JPA Prática
JAVA: Conceitos Iniciais
Programação Orientada a Objetos com Java
Projeto Sistema de Gestão Bibliográfica (SGB) Fábrica de Software INF - UFG.
Hibernate Mapeamento O/R.
JPA - Java Persistence API
Tópicos avançados em internet A
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Design Patterns / Acesso ao banco de dados (java.sql)
JSP / Servlets Avançado
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Linguagem de Programação JAVA
Hibernate Java avançado – PCC Jobson Ronan
Hibernate Java avançado – PCC Jobson Ronan
Classes, Objetos, Atributos e Métodos JAVA
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Programação Orientada à Objetos
Banco de dados.
Curso Técnico em Informática
Configuração do Ambiente de programação
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Banco de Dados Aplicado ao Desenvolvimento de Software
Aula Prática 4 Monitoria IP/CC (~if669).
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
SQLite Banco de Dados II.
Persistência e mapeamento objeto relacional
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
Banco de Dados I I Comandos SQL
SISTEMA PROCESSUAL DIGITAL
Componentes Avançados JPA - API Prof. Leandro Rubim
Ferramentas de Mapeamento OO para ER Aluno Eduardo Mazza Professora Valeria Times
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Hibernate Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação (2004/2005) Objetos Distribuídos Prof. Dr. Cláudio.
Módulo II Capítulo 1: Orientação a Objetos
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Programação para Web I AULA 2 BANCO DE DADOS.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Professor: reno nooblath
Trabalho Prático de Programação Orientada a Objetos em Java Programação Orientada a Objetos Ludimila Monjardim Casagrande 2011.
Application Server & EJB3 Wesley Gonçalves da Silva
Persistência de dados e padrão DAO
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Prof.: Jean Carlo Mendes
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Desenvolvimento WEB II Professora: Kelly de Paula Cunha

JPA – Java Persistence API e Hibernate O que é um dado persistente?

JPA – Java Persistence API e Hibernate O que é um dado persistente? Os dados podem ser transientes ou persistentes - Transientes: somente são válidos dentro de um programa ou transação, eles se perdem quando o programa ou transação termina -Persistentes: sobrevivem a várias invocações de programas

JPA – Java Persistence API e Hibernate ORM (Mapeamento objeto-relacional): técnica de desenvolvimento utilizada para facilitar a integração entre a programação orientada a objetos e o banco de dados relacional. - As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes. -Com esta técnica, o programador não precisa se preocupar com os comandos em linguagem SQL; ele irá usar uma interface de programação simples que faz todo o trabalho de persistência.

JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 public void incAltExc (){ try{ retorno=st.executeUpdate("insert into cliente values (" + varId +",'" + varNome +"', " + varRenda +")";); } catch (SQLException e){ retorno = -1; } Tabela no Banco de Dados

JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 Tabela no Banco de Dados OMR

JPA – Java Persistence API e Hibernate O código SQL é gerado automaticamente para o banco de dados específico que está sendo utilizado na aplicação - Agiliza o desenvolvimento, já que o programador não precisa escrever comandos SQL - Possibilidade de trocar de banco de dados sem ter que alterar códigos em Java, já que isso fica como responsabilidade da ferramenta.

JPA – Java Persistence API e Hibernate -Dentre os mapeadores de banco de dados existentes no mercado, o Hibernate se destaca pela popularidade -Ferramenta ORM open source da jBoss

JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 Tabela no Banco de Dados OMR = Hibernate

JPA – Java Persistence API e Hibernate -Surgiu a necessidade de fazer uma especificação de como fazer um Java Persistence -Java propõe uma API de referência chamada Java Persistece API (JPA) -Existem várias implementações de JPA -Hibernate é apenas uma implementação de JPA

JPA – Java Persistence API e Hibernate O que é o JPA? É uma API para persistir objetos. Por meio do JPA qualquer objeto com um construtor padrão pode ser persistente sem nenhuma alteração no código.

JPA – Java Persistence API e Hibernate JPA é um modelo de persistência baseado em POJO (Plain Old Java Object) - Velho e Simples Objeto Java – objetos que possuem design simples, não dependem da herança de interface ou classe de frameworks externos.

JPA – Java Persistence API e Hibernate A forma como este mapeamento é configurado depende da ferramenta utilizada. Exemplo: o programador que usa Hibernate na linguagem Java pode usar arquivos XML ou o sistema de anotações. Em outros casos o mapeamento é feito diretamente no código, através de herança de classes especiais

JPA – Java Persistence API e Hibernate Anotação: recurso do Java que permite inserir metadados relacionados com a classe, atributos e métodos. Essas anotações poderão ser lidas por frameworks e bibliotecas, para que tomem decisões baseadas nessas configurações. //indica que os objetos da classe se tornam persistíveis no banco de dados.

JPA – Java Persistence API e Hibernate Principais Anotações JPA:

JPA – Java Persistence API e Hibernate Observação: Apesar do Hibernate ter originado a JPA o EclipseLink é a implementação referencial.

JPA – Java Persistence API e Hibernate Entidade na JPA -Toda entidade tem de ter um construtor sem argumentos -Cada atributo deve possuir seu get e set -Toda entidade tem de ter uma chave primária

JPA – Java Persistence API e Hibernate Entidade na JPA public class private Long id; private String descricao; private boolean private Calendar dataFinalizacao; // métodos... }

JPA – Java Persistence API e Hibernate indica que o atributo id é chave diz que esta chave fará auto increment ou sequence, dependendo do banco de configura como mapear um Calendar para o banco, aqui usamos apenas a data (sem hora), mas poderíamos ter usado apenas a hora (TemporalType.TIME) ou timestamp (TemporalType.TIMESTAMP). Observações: Essas anotações precisam dos devidos imports, e pertencem ao pacote javax.persistence.

JPA – Java Persistence API e Hibernate Na ausência de configurações mais específicas, o Hibernate vai usar convenções: a classe Tarefa será gravada na tabela de nome também Tarefa, e o atributo descricao em uma coluna de nome descricao Se quisermos configurações diferentes das convenções, basta usarmos outras anotações, que são completamente opcionais. Exemplo: para mapear o atributo dataFinalizacao numa coluna chamada data_finalizado = "data_finalizado", nullable = true) private Calendar dataFinalizacao;

JPA – Java Persistence API e Hibernate O JPA necessita de configurações, e para isso criaremos o arquivo persistence.xml. Alguns dados que vão nesse arquivo são específicos do Hibernate e podem ser bem avançados, sobre controle de cache, transações, connection pool etc, tópicos que são abordados no curso FJ-25. Para um sistema simples, é necessário 4 linhas : 1)string de conexão com o banco, 2)o driver, 3)o usuário e 4)senha. Além dessas quatro configurações, é necessário dizer qual dialeto de SQL deverá ser usado no momento que as queries são geradas; no nosso caso, MySQL.

JPA – Java Persistence API e Hibernate Segue uma configuração completa que define uma unidade de persistência (persistence-unit) com o nome tarefas, seguidos pela definição do provedor, entidades e properties:

JPA – Java Persistence API e Hibernate org.hibernate.ejb.HibernatePersistence br.com.caelum.tarefas.modelo.Tarefa

JPA – Java Persistence API e Hibernate U SANDO O JPA Primeiro passo: fazer com que o JPA leia a configuração tanto o arquivo persistence.xml quanto as anotações que colocadas na entidade Tarefa. Para tal, usaremos a classe principal. Ela é responsável de carregar o XML e inicializar as configurações: EntityManagerFactory factory = Persistence.createEntityManagerFactory("tarefas");

JPA – Java Persistence API e Hibernate Antes de gravar uma Tarefa, é necessário que exista a tabela correspondente no nosso banco de dados. Em vez de criarmos o script que define o schema (ou DDL de um banco, data definition language) do nosso banco (os famosos CREATE TABLE....) podemos deixar isto a cargo do próprio Hibernate. Ao inicializar a EntityManagerFactory também será gerada uma tabela Tarefas pois configuramos que o banco deve ser atualizada pela propriedade do Hibernate: hbm2ddl.auto.

JPA – Java Persistence API e Hibernate classe GeraTabelas public class GeraTabelas { public static void main(String[] args) { EntityManagerFactory factory = Persistence. createEntityManagerFactory("tarefas"); factory.close(); }

JPA – Java Persistence API e Hibernate O JPA possui uma linguagem própria de queries para facilitar a busca de objetos chamada de JPQL. O código a seguir mostra uma pesquisa que retorna todas as tarefas não finalizadas: EntityManager manager = List lista = manager.createQuery("select t from Tarefa as t where t.finalizado = false").getResultList(); for (Tarefa tarefa : lista) { System.out.println(tarefa.getDescricao()); }