8 - Conexão

Olá, pessoal! Nessa oitava aula do treinamento, iremos criar a conexão entre nossa API e o banco MySQL. Também será gerada a tabela de alunos, contendo as colunas: código, nome, nota1 e nota2.

Devemos realizar os seguintes passos para elaborar essa etapa do treinamento:

1º Configurar application.properties

Abra o arquivo application.properties e adicione o seguinte código:


# Altera a estrutura da tabela caso a entidade tenha mudanças.
spring.jpa.hibernate.ddl-auto=update

# Acesso ao banco de dados
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/nome_base_de_dados

# Usuário do banco de dados
spring.datasource.username=usuário

# Senha do banco de dados
spring.datasource.password=senha

2º Adicionar as dependências MySQL Connector/J e Spring Boot Starter Data JPA

No site do MVN Repostory, baixe as seguintes dependências:

  • MySQL Connector/J: Dependência responsável por realizar a conexão com o banco MySQL.
  • Spring Boot Starter Data JPA: Dependência responsável pelo mapeamento das entidades do projeto, permitindo a geração dinâmica das tabelas no banco de dados. Além disso, fornece métodos nativos para operações de cadastro, consulta, alteração e remoção de dados.

3º Implementar entidade

Vamos adicionar algumas annotations no arquivo AlunoEntidade.java, veja a estrutura abaixo:


package br.com.ralflima.api.alunos.entidade;

import java.util.UUID;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "alunos")
public class AlunoEntidade {

    // Atributos
    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    private UUID codigo;
    private String nome;
    private Double nota1;
    private Double nota2;
    
}

Explicando cada annnotation:

  • @Entity: Especifica que a classe é uma entidade do JPA e será mapeada para uma tabela no banco de dados.
  • @Table: Permite customizar os detalhes da tabela no banco, como definir um nome específico para ela.
  • @Id: Define qual atributo da classe será a chave primária da tabela.
  • @GeneratedValue: Configura a estratégia de geração automática para a chave primária (como o auto-incremento).

Depois de realizar essas implmentações, basta executar o projeto.

Abaixo compartilho nossa aula no YouTube, onde explico cada etapa acima: