-
Notifications
You must be signed in to change notification settings - Fork 1
first_build
Gabriel Fanto Stundner edited this page Jun 28, 2022
·
1 revision
- O sistema se conecta a um banco de dados utilizando o JPA
- Vamos colocar no nosso pom.xml as duas dependencias necessárias para adicionar um JPA do PostgreSQL
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>- O spring-boot-starter-data-jpa serve para termos as informações necessárias do JPA para o nosso projeto
- O org.postgresql adiciona informações necessárias do banco de dados postgreSQL
Depois de adicionado no POM.xml esses dados e atualizado com o maven, vamos botar algumas configurações no arquivo application.properties
- Esse arquivo serve para colocarmos informações importantes de configuração
- Vamos colocar os seguintes dados:
- URL para o banco de dados, onde passamos a localização (localhost), a porta que vai se conectar ao banco e o nome do database
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/magic- O nome e a senha que vão ser usadas para se conectar
spring.datasource.username=postgres
spring.datasource.password=postgres- Qual dialeto o hibernate deve esperar, nesse caso o dialeto do PostgreSQL
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL9Dialect- Quando vai ser feito a atualização do banco quando algo é alterado ou criado novo, no nosso caso sempre faz update de alguma alteração
spring.jpa.hibernate.ddl-auto=update- Deve ser configurado o Model para ser no formato de entidade do banco de dados
- Utilizamos o @Entity no inicio de um arquivo Model para dizer que esse Model é uma entidade.
@Entity
public class Card {
// infos
}- No ID do seu model, deve utilizar as seguintes anotações:
- A anotação @Id mostra que o dado apresentado é o ID da sua entidade
- A anotação @GeneratedValue(strategy = GenerationType.IDENTITY) diz que é gerado o id e a estratégia de geração é incremental, ou seja, se o ID anterior era 1 o próximo ID será 2 e assim por diante
- A anotação @Column(name = "") é a anotação para criar a coluna na tabela do banco, assim ele vai gerar a coluna para serem adicionados os dados
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "i_card")
private Long iCard;- Enum são um tipo de dado que ele tem valores específicos, definido com chave-descricao
- Enums ficam na pasta enums e eles podem ser chamados direto
- Deve-se colocar a anotação @Enumerated(EnumType.STRING) para dizer que aquele dados é um Enum
@Enumerated(EnumType.STRING)
@Column(name = "tipo_card")
private TipoCard tipoCard;- Estrutura de um arquivo enum
package br.com.store.magic.enums;
import com.fasterxml.jackson.annotation.JsonValue;
public enum TipoCard {
T("T", "Terreno"),
C("C", "Criatura"),
A("A", "Artefato"),
AC("AC", "Artefato-Criatura"),
TO("TO", "Token");
private final String chave;
private final String descricao;
TipoCard(String chave, String descricao) {
this.chave = chave;
this.descricao = descricao;
}
public String getChave() {
return chave;
}
public String getDescricao() {
return descricao;
}
@JsonValue
public String getValor() {
switch (this) {
case T:
case A:
case C:
case AC:
case TO:
return getChave();
}
return "Valor Inválido";
}
}- Como estamos mexendo com postgreSQL, devemos acessar o Pgadmin

- Crie um novo database com o nome de magic, como definido no application.properties



- acesse o datagrip e crie uma nova conexão

- coloque os dados definidos no application.properties para poder conectar o spring ao banco

- rode o projeto spring boot e atualize o banco, tem que aparecer a tabela da entidade que definimos


