Escolar Documentos
Profissional Documentos
Cultura Documentos
backend
Notas de aula
Mauricio Escobar
# String de conexao. O nome lp3 ao final indica o nome do database que sera utilizado
# No MySQL voce pode usar o comando "create database lp3" para criar uma nova base de dados
spring.datasource.url=jdbc:mysql://localhost:3306/lp3
Sempre definir as classes de vocês a partir do pacote de código-fonte base do projeto. Nunca em níveis
hierárquicos acima.
Encapsulamento
padrão: getters e Estratégia que define
setters… automaticamente o valor
do ID (autoincremento)...
Definindo uma Entidade O Spring usa o nome dos elementos
para gerar as estruturas no banco de
dados automaticamente
Opcionalmente, você pode usar as anotações @Table e @Column para especializar ainda mais a tabela.
Note que a anotação @Table não substitui a anotação @Entity.
Inspeção da tabela
usando o MySQL
Workbench, clicando
com o botão direito na
tabela desejada e
selecionando a opção
Alter Table
Refinando a entidade
Quando o nome da entidade (classe) difere
do nome da tabela…
Resultado do
mapeamento…
Valores padrão sem afetar a estrutura da tabela
Um repositório é uma abstração do Spring Data cujo objetivo é reduzir significativamente o código
repetitivo necessário para implementar o acesso aos dados nas diferentes fontes/camadas de
persistência.
Sintaxe:
Tipo de dado do ID
Principais métodos HERDADOS (você não precisa declarar eles) da interface CrudRepository:
Long count();
Recebe a instância a ser removida.
Nesse caso, o ID deve possuir um
void delete(T entity); valor válido.
Resultado
Definindo Query Methods
Os query methods são operações definidas em um repositório que permitem realizar consultas
personalizadas em uma base de dados usando uma sintaxe concisa e convenções na escrita das
operações.
Através do nome do método (seguindo uma convenção de nomenclatura), tipo de retorno e parâmetros, o
Spring Data é capaz de interpretar automaticamente e gerar a consulta correspondente.
Definindo Query Methods
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords
find…By - Normalmente usada para retornar o tipo de dado do repositório, uma coleção, etc.
…First<numero>...
…Top<numero>...
…Discintct…
Definindo Query Methods
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords
Anotação para
detalhar a chave
estrangeira
1:1 OneToOne
Relaciona as instâncias e…
@Controller
@RequestMapping("/hello")
public class HelloWorldController {
@Controller
@RequestMapping("/hello")
public class HelloWorldController {
@GetMapping
@ResponseBody
public String hello() {
return String.format("Olá mundo");
}
@GetMapping("/world")
@ResponseBody
public String hello2() {
return String.format("Hello world"); Perceba a agregação na
} URL
}
Lidando com parâmetros (vindos do lado cliente)
Parâmetros são
informações enviadas
na requisição
Forma 1: parâmetros no formato par chave-valor
A partir daí, os parâmetros possuem uma chave que os identifica, o sinal de igual, e um valor.
Cada parâmetro adicional é separado pelo caractere & (e comercial). O limite de parâmetros que formam
a requisição pode variar dependendo das tecnologias na camada do servidor.
Acentuação, espaços em branco, etc, devem ser devidamente codificados. As linguagens modernas
normalmente possuem APIs para isso…
Vamos ao código…
Note, que no exemplo acima, os valores Mauricio e Escobar formam um caminho para o servidor, a partir
da rota base /hello.
Neste exemplo em específico, o nome vêm sempre antes do sobrenome. A ordem de formação da URL
deve ser respeitada, isto é, é uma forma mais rígida do que a mostrada anteriormente.
Cuidado, pois os mapeamentos usando PathVariable podem gerar ambiguidades (comentei nos slides
iniciais)...
Exemplo
Considerando que você possui as entidades e os repositórios, utilize a anotação @Autoriwed, como
mostrado no exemplo a seguir.
Na prática, é o framework Spring que fica responsável por criar uma instância dos repositórios, para
facilitar seu uso e evitar códigos repetitivos.
Exemplo
Forma 3: recebendo objetos (em JSON)
O JSON (JavaScript Object Notation) é um formato leve para o intercâmbio de dados entre aplicações.
JSON pode ser visto como um subconjunto da linguagem JavaScript e é de fácil conversão e geração a
partir de programas construídos em praticamente qualquer linguagem de programação (moderna).
},
“sobrenome” : “Escobar”
{
]
Vamos ao Spring:
Utilize esta anotação para o Spring converter
o JSON de entrada em um objeto Java