Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lorialawrencez/armu
Desafio Alura | Aplicação para armazenar dados de nossos artistas e músicas
https://github.com/lorialawrencez/armu
alura api gradle java jpa jpql spring sprng-boot
Last synced: 3 days ago
JSON representation
Desafio Alura | Aplicação para armazenar dados de nossos artistas e músicas
- Host: GitHub
- URL: https://github.com/lorialawrencez/armu
- Owner: LoriaLawrenceZ
- License: gpl-3.0
- Created: 2024-09-07T02:41:44.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-16T02:30:47.000Z (2 months ago)
- Last Synced: 2024-12-19T04:08:08.200Z (3 days ago)
- Topics: alura, api, gradle, java, jpa, jpql, spring, sprng-boot
- Language: Java
- Homepage:
- Size: 75.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ArMu
![thumbnail-Desafio Java](https://github.com/jacqueline-oliveira/3355-java-desafio/assets/66698429/4b068d55-5cfc-480c-b94f-7d48b3c91eb3)
# Desafio
Vamos implementar uma aplicação para armazenar dados de nossos artistas e músicas preferidos em um banco de dados relacional, podendo buscar informações por artistas e consultar dados sobre os mesmos através de integração com a API do ChatGPT.
- Você precisará de uma classe Artista, com os dados para representar o mesmo;
- Será necessário também uma classe específica para representar as músicas;
- Para o artista, pode praticar a implementação de *enum*, para definir o tipo do artista, por exemplo: solo, dupla ou banda;
- Lembre-se de criar o projeto através do site do [Spring Initializr](https://start.spring.io/), onde já é possível adicionar as dependências do Spring Data JPA e do PostgreSQL;
- Crie uma classe principal com o menu, com as opções desejadas, como: cadastrar artista, cadastrar música, pesquisar músicar por artistas, etc;
- Lembre-se de estender o CommandLineRunner na classe do Spring, sobrescrevendo o método *run* para chamar o menu criado.## 🔨 Objetivos do projeto
- O objetivo do projeto é praticar a modelagem de classes e relacionamentos utilizando o Spring Data JPA;
- É importante descrever e implementar corretamente a relação entre Artista e Música, visto que um artista pode estar associado a mais de uma música;
- Uma música só deve ser salva no banco de dados, caso o Artista tenha sido previamente cadastrado;
- Praticaremos *derived queries* e *JPQL* para verificar se o artista já está cadastrado e buscar músicas por um determinado artista;
- Faremos a integração com a API do ChatGPT para buscar informações sobre um determinado artista.Bom desafio!
---
---
---
1. Spring initializer
- PostgreSQL Driver
- Spring Data JPA
2. application.properties
- Setando a url do banco de dados
- `spring.datasource.url=jdbc:postgresql://localhost:5432/armu`
- Setando o usuário do banco de dados
- `spring.datasource.username=postgres`
- Setando a senha do banco de dados
- `spring.datasource.password=postgres`
- Trecho que explicita que permite o hibernate crie as tabelas automaticamente
- `spring.jpa.hibernate.ddl-auto=update`
- Trecho que permite que o hibernate mostre o sql gerado
- `spring.jpa.show-sql=true`
- Trecho que permite que o hibernate formate o sql gerado
- `spring.jpa.properties.hibernate.format_sql=true`
- Trecho que explicita o dialeto do banco de dados
- `hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect`
3.