Java Persistence Query Language JPQL



Documentos relacionados
Padrão J2EE Data Access Object (DAO)

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

Prof.: Clayton Maciel Costa

Comandos de Manipulação

Projeto de Banco de Dados

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

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

JPA Java Persistence API. Prof. Ramon Chiara

Tarefa Orientada 13 Agrupamento e sumário de dados

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

Mapeamento Lógico/Relacional com JPA

Linguagem de Consulta Estruturada SQL- DML

Banco de Dados. Prof. Antonio

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

Consultas SQL Parte II

UFG - Instituto de Informática

Structured Query Language (SQL)

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

SQL UMA ABORDAGEM INTERESSANTE

SQL Consultas Básicas

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

Introdução ao SQL Avançado

Linguagem de Banco de Dados DML Exercícios

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.


Criar uma aplicação JPA2 com EclipseLink e H2

Projeto e Implementação

Tarefa Orientada 14 Subconsultas

Programação SQL. INTRODUÇÃO II parte

SQL Structured Query Language

SQL DML. Frederico D. Bortoloti

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

EXEMPLOS DE COMANDOS NO SQL SERVER

Introdução à JPA-Java Persistence API

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

JPA: Persistência padronizada em Java

Query SQL (Structured Query Language)

António Rocha Nuno Melo e Castro

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Resolvendo objeto-relacional impedance mismatch com hibernate

Linguagem de Consulta - SQL

Tarefa Orientada 10 Obter informação a partir de uma tabela

Múltiplas Tabelas. Disciplina de Banco de Dados

NOME SEXO CPF NASCIMENTO SALARIO

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

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

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

PROGRAMA. Objectivos Gerais :

EXERCÍCIOS PRÁTICOS. Banco de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

DML - SELECT Agrupando Dados

Evento.java. package dominio;

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Definida pelo American National Standard Institute (ANSI) em 1986

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Principais Comandos SQL Usados no MySql

Java. Marcio de Carvalho Victorino

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL. Prof. Márcio Bueno.

ANÁLISE E PROJETO DE BANCO DE DADOS

Banco de Dados I. SQL SELECT Parte 1 - Básico. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

MySQL: Inserção e Seleção em Tabelas

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Treinamento sobre SQL

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

Aula 5. Carlos Eduardo de Carvalho Dantas

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

O que são Bancos de Dados?

JPA (Java Persistence API) Marcos Kalinowski

Hibernate Envers Easy Entity Auditing

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

Banco de Dados. Maurício Edgar Stivanello

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

SQL Avançado Continuação. Renata Viegas

Principais Instruções em SQL

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

COMANDOS PARA CONSULTA VIA SQL NO ACCESS

SQL. Structured Query Language. Copyright Prof. Edison Andrade Martins Morais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Curso PHP Aula 08. Bruno Falcão

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com

Linguagem SQL - Structured Query Language

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Transcrição:

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 Polimorfismo Associações Três maneiras de se fazer consultas : Linguagem de consulta orientada a objeto Criteria - API orientada a objeto para busca SQL nativo

Definições Total suporte a operações relacionais Joins Projeções Funções agregadas e agrupamento Ordenação SubQueries Chamadas a funções SQL

Exemplo Cliente -login:string -cpf:string -nome:string Locacao * 1 -id:int -locacao:calendar -devolucao:calendar Filme -codigo:int -nome:string package br.edu.unifei.bd.locadora; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity public class Filme { @Id @GeneratedValue private int codigo; private String nome; } //... Get s e Set s

Exemplo Cliente -login:string -cpf:string -nome:string Locacao * 1 -id:int -locacao:calendar -devolucao:calendar Filme -codigo:int -nome:string package br.edu.unifei.bd.locadora;... @Entity public class Locacao { @Id @GeneratedValue private int id; @OneToOne private Filme filme; @ManyToOne private Cliente cliente; } private Calendar locacao; private Calendar devolucao; //... Get s e Set s

Exemplo Cliente -login:string -cpf:string -nome:string Locacao * 1 -id:int -locacao:calendar -devolucao:calendar Filme -codigo:int -nome:string package br.edu.unifei.bd.locadora;... @Entity public class Cliente { @Id private String login; private String CPF; private String nome; @OneToMany private List<Locacao> locacoes = new ArrayList<Locacao>(); } //... Get s e Set s

Trabalhando com persistencia :EntityManagerFactory :EntityManager persistence. xml createentitymanager() public class App{ public static void main (String [] args ){ EntityManagerFactory emf = Persistence.createEntityManagerFactory("locadoraPU"); EntityManager em = emf.createentitymanager(); List< > l = em.createquery(" " ).getresultlist(); Iterator< > it = l.iterator() while(it.hasnext()){ it.next(); } em.close(); emf.close(); }}

Trabalhando com persistencia emf:entitymanagerfactory persistence.xml createentitymanager() em:entitymanager createquery() :Query getsingleresult() getresultlist() :Iterator<> hasnext() next() :List<> iterator() size()

Formas de Consultas Cria uma consulta (Query) Query q = em.createquery("jpql"); Retornar um único resultado Objeto o = em.createquery("jpql" ).getsingleresult(); Retornar uma lista de resultados (List) List l = em.createquery("jpql" ).getresultlist();

Formas de Consultas Paginação da consulta Query q = em.createquery("jpql"); q.setfirstresult(20); q.setmaxresults(30); List l = q.getresultlist();

Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Cláusula SELECT Seleciona atributos das classes List<String> cli = em.createquery ( "select c.nome from Cliente c" ).getresultlist(); Iterator it = cli.iterator(); while (it.hasnext()) { String s = (String) it.next(); System.out.println("nome: " + s); }

Cláusula SELECT Seleciona classe em uma junção List cli = em.createquery ( "select c " + "from Cliente c " + "where l.id = 1").getResultList(); Iterator it = cli.iterator(); while (it.hasnext()){ Cliente c = (Cliente)it.next(); System.out.println ("nome: " + c.getnome()); }

Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Cláusula FROM Seleciona objetos de uma determina classe List filmes = em.createquery( "from Filme").getResultList(); Iterator it = filmes.iterator(); while (it.hasnext()){ Filme f = (Filme)it.next(); System.out.print("titulo"+f.getNome()); }

Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Cláusula WHERE Especifica quais objetos das classes da cláusula FROM serão selecionados List filmes = em.createquery ("from Filme f where f.nome='hp 1'" ).getresultlist(); Atributo da classe

Parametro Cláusula WHERE List clientes = em.createquery( from Cliente f where f.nome=? ).setstring(0, "ze").getresultlist(); List clientes = em.createquery( from Cliente f where f.nome=:nome ).setstring(nome, "maria").getresultlist(); List clientes = em.createquery( from Cliente f where f.nome like? and + f.login like? ).setstring(0, "ma%").setstring(1, "m%").getresultlist();

Operadores de consulta JPQL suporta os mesmos operadores que SQL Operadores do JPQL: Comparação: =, <>, <, >, >=, <=, between, not between, in, not in Nulidade: is null, is not null Aritméticos: +, -, /, *, %, parênteses O operador like funciona da mesma forma que SQL Pode usar funções SQL se o banco suportar

Operador IN Determina se o valor de uma expressão é igual a algum dos vários valores em uma lista especificada. List filmes = em.createquery ( "from Filme f " + "where f.nome IN ('HP 1', 'HP 2')" ).getresultlist();

Operador BETWEEN...AND Determina se o valor de uma expressão se situa dentro de um intervalo especificado de valores. List filmes = em.createquery ( "from Filme f " + "where f.preco between 2 and 3" ).getresultlist();

Operador LIKE Compara uma expressão de seqüência. Caractere curinga (por exemplo, Like MAK %, para MAKROMBOOKS ). Caractere isolado (por exemplo, Like _OSE, para JOSE E ROSE ) List filmes = em.createquery ( "from Filme f " + "where f.nome like 'HP %'" ).getresultlist();

Operador IS NULL Determina se o valor de uma expressão é nulo. List filmes = em.createquery ( "from Locacao l " + "where l.datadevolucao is null" ).getresultlist();

Junção Seleciona classe em uma junção List cli = em.createquery( "select c " + "from Cliente c, Locacao l, Filme f "+ "where l.cliente = c and l.filme = f "+ "and f.nome = 'HP 4' ").getresultlist(); Iterator it = cli.iterator(); while (it.hasnext()){ Cliente c = (Cliente)it.next(); System.out.print("titulo"+c.getNome()); }

Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Função AVG Calcula a média aritmética de um conjunto de valores contido em um campo especificado em uma consulta. List filmes = session.createquery( "select avg(f.preco) from Filme f" ).getresultlist(); Iterator it = filmes.iterator(); while (it.hasnext()) { Double f = (Double) it.next(); System.out.println("preco: " + f); }

Função COUNT count - Calcula o número de registros retornado por uma consulta. A função Count não conta registros que tenham campos Null, exceto quando expr for o caractere curinga asterisco (*). min, max - Retornam o mínimo ou o máximo de um conjunto de valores contido em um campo especificado em uma consulta. sum - Retorna a soma de um conjunto de valores contido em um campo especificado em uma consulta. A função Sum ignora os registros que contenham campos Null.

Cláusula GROUP BY Combina registros com valores idênticos na lista de campos especificada em um único registro. O comando group by pode ser usado com as funções avg, count, min, max, sum de um agrupamento

Cláusula GROUP BY List filmes = session.createquery( "select c.nome, avg(f.preco) from Cliente c, Locacao l, Filme f where l.cliente = c and l.filme = f group by c.nome").getresultlist(); Iterator it = filmes.iterator(); while (it.hasnext()) { Object[] t = (Object[]) it.next(); System.out.println("nome=" + t[0] + " media=" + t[1]); }

Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Cláusula HAVING Especifica quais registros agrupados são exibidos na instrução SELECT com uma cláusula GROUP BY. É uma clásula where executada depois do group by. O comando group by pode ser usado com as funções avg, count, min, max, sum de um agrupamento

Cláusula GROUP BY List filmes = session.createquery( "select c.nome, avg(f.preco) from Cliente c, Locacao l, Filme f where l.cliente = c and l.filme = f group by c.nome having avg(f.preco) > min(f.preco)" ).getresultlist(); Iterator it = filmes.iterator(); while (it.hasnext()) { Object[] t = (Object[]) it.next(); System.out.println("nome=" + t[0] + " media=" + t[1]); }

Introdução FROM WHERE GROUP BY HAVING ORDER BY Linguagem de consulta orientada a objeto Prof. Enzo Seraphim

Cláusula ORDER BY Classifica os objetos resultantes de uma consulta em um campo ou campos especificados, em ordem crescente ou decrescente. Os registros são classificados pelo primeiro campo após ORDER BY e em caso de empate classificados pelo segundo campo e assim por diante. List filmes = session.createquery ( "from Filme f order by f.nome desc" ).getresultlist();

Os logotipos, marcas comerciais e nomes de produtos citados nesta publicação tem apenas o propósitos de identificação e podem ser marcas registradas de suas respectivas companhias. Java Persistence Query Language JPQL Prof. Enzo Seraphim