Skip to content

first_build

Gabriel Fanto Stundner edited this page Jun 28, 2022 · 1 revision

Adicionando um banco de dados no spring boot

Atualizando o POM.xml com as dependencias necessárias

  • 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

Adicionando as configurações no arquivo application.properties do Spring boot

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:
  1. 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
  1. O nome e a senha que vão ser usadas para se conectar
spring.datasource.username=postgres
spring.datasource.password=postgres
  1. Qual dialeto o hibernate deve esperar, nesse caso o dialeto do PostgreSQL
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL9Dialect
  1. 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

Utilizando as notações para transformar o Model em uma entidade do banco de dados

Definindo o Model como Entidade

  • 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
}

Arrumando o ID para uma coluna no banco de dados

  • 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;

Conectando um Enum

  • 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";
    }
}

Testando o funcionamento da criação das tabelas

  1. Como estamos mexendo com postgreSQL, devemos acessar o Pgadmin

image

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

image

image

image

  1. acesse o datagrip e crie uma nova conexão

image

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

image

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

image