Skip to content

marcosfshirafuchi/DEVSuperior-BEE-URI-2602-busca-simples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image-2024-07-01-T11-45-10-371-Z Java Spring Professional - BEE/URI 2602

Desenvolvido na linguagem Java por:

Formação Desenvolvedor Moderno Módulo: Back end

Capítulo: JPA, consultas SQL e JPQL

Aula: URI 2602 - Elaborando a consulta

Exercício: BEE/URI 2602

Exercício de SQL da plataforma do BEE: 2605

https://judge.beecrowd.com/pt/problems/view/2602

Select Básico

Sua empresa está fazendo um levantamento de quantos clientes estão cadastrados nos estados, porém, faltou levantar os dados do estado do Rio Grande do Sul.

Então você deve Exibir o nome de todos os clientes cujo estado seja ‘RS’.

Esquema

customer

customers customers
Coluna Tipo
id (PK) numeric
name varchar
street varchar
city varchar
state char
credit_limit number

Tabelas

customers

id name street city state credit_limit
1 Pedro Augusto da Rocha Rua Pedro Carlos Hoffman Porto Alegre RS 700,00
2 Antonio Carlos Mamel Av. Pinheiros Belo Horizonte MG 3500,50
3 Luiza Augusta Mhor Rua Salto Grande Niteroi RJ 4000,00
4 Jane Ester Av 7 de setembro Erechim RS 800,00
5 Marcos Antônio dos Santos Av Farrapos Porto Alegre RS 4250,25

Exemplo de Saída

name
Pedro Augusto da Rocha
Jane Ester
Marcos Antônio dos Santos

Principais Tecnologias

  • Java 21 : Utilizaremos a versão LTS mais recente do Java para tirar vantagem das últimas inovações que essa linguagem robusta e amplamente utilizada oferece;
  • Spring Boot 3 : Trabalharemos com a mais nova versão do Spring Boot, que maximiza a produtividade do desenvolvedor por meio de sua poderosa premissa de autoconfiguração;
  • Spring Data JPA: Exploraremos como essa ferramenta pode simplificar nossa camada de acesso aos dados, facilitando a integração com bancos de dados SQL;
  • PostgreSQL: Banco de dados SQL .

Código SQL do URI/BEE 2602

--- URI Online Judge SQL
--- Copyright URI Online Judge
--- www.urionlinejudge.com.br
--- Problem 2602

CREATE TABLE customers (
  id NUMERIC PRIMARY KEY,
  name CHARACTER VARYING (255),
  street CHARACTER VARYING (255),
  city CHARACTER VARYING (255),
  state CHAR (2),
  credit_limit NUMERIC
);

INSERT INTO customers (id, name, street, city, state, credit_limit)
VALUES 
  (1,	'Pedro Augusto da Rocha',	'Rua Pedro Carlos Hoffman',	'Porto Alegre',	'RS',	700.00),
  (2,	'Antonio Carlos Mamel',	'Av. Pinheiros', 'Belo Horizonte',	'MG',	3500.50),
  (3,	'Luiza Augusta Mhor',	'Rua Salto Grande',	'Niteroi',	'RJ',	4000.00),	
  (4,	'Jane Ester',	'Av 7 de setembro',	'Erechim',	'RS',	800.00),
  (5, 'Marcos Antônio dos Santos',	'Av Farrapos',	'Porto Alegre',	'RS',	4250.25);

  
  /*  Execute this query to drop the tables */
  -- DROP TABLE customers; --

Resolução do exercício em SQL no URI/BEE 2602

SELECT name FROM customers WHERE state = 'RS';

Código do SQL no Java

@Query(nativeQuery = true,value = "SELECT name FROM customers WHERE UPPER(state) = UPPER(:state)")
    List<CustomerMinProjection> search1(String state);

Código do JPQL no Java

@Query("SELECT new com.devsuperior.uri2602.dto.CustomerMinDTO(obj.name)  FROM Customer obj WHERE UPPER(obj.state) = UPPER(:state)")
    List<CustomerMinDTO> search2(String state);