Guia Prático para Integração do Spring Boot 3 com MyBatis-Plus

Pré-requisitos do Ambiente

Para seguir este guia, certifique-se de ter as seguintes ferramentas configuradas:

  • IDE: IntelliJ IDEA (versão 2023.3 ou superior)
  • JDK: Versão 17
  • Banco de Dados: MySQL 8.0+

Inicializando o Projeto Spring Boot

Existem dois caminhos principais para iniciar um projeto: via Spring Initializr (automatizado) ou Maven Archetype (manual).

Abordagem 1: Usando Spring Initializr

No IntelliJ, selecione a opção de novo projeto com Spring Initializr. Configure o tipo como Maven, selecione o Java 17 e a versão estável mais recente do Spring Boot 3. Na seção de dependências, adicione Spring Web.

Após a criação, valide a estrutura criando um endpoint simples de teste em um novo pacote controller:

@RestController
@RequestMapping("/api/v1")
public class CheckController {
    @GetMapping("/status")
    public String checkStatus() {
        return "Aplicação rodando com sucesso!";
    }
}

Abordagem 2: Configuração Manual com Maven

Se preferir criar um projeto Maven simples (quickstart), você precisará definir o parent e as dependências manualmente no seu arquivo pom.xml:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.1</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

Em seguida, crie a classe principal da aplicação:

@SpringBootApplication
public class CustomApplication {
    public static void main(String[] args) {
        SpringApplication.run(CustomApplication.class, args);
    }
}

Configurando o MyBatis-Plus e Conexão com Banco de Dados

Para integrar a camada de persistência, adicione as seguintes bibliotecas ao seu pom.xml:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.8</version>
</dependency>
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

Configure a conexão no arquivo src/main/resources/application.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/empresa_db?useSSL=false&serverTimezone=UTC
    username: root
    password: sua_senha_aqui
    driver-class-name: com.mysql.cj.jdbc.Driver

Estrutura de Dados e Persistência

Crie uma tabela de exemplo no MySQL para representar colaboradores:

CREATE DATABASE empresa_db;
USE empresa_db;

CREATE TABLE colaborador (
    id_colaborador INT PRIMARY KEY,
    nome_completo VARCHAR(100),
    cargo VARCHAR(50),
    salario DECIMAL(10,2)
);

INSERT INTO colaborador VALUES (1, 'Alice Silva', 'Desenvolvedora', 8500.00);
INSERT INTO colaborador VALUES (2, 'Bruno Costa', 'Analista de QA', 6200.00);

Definição da Entidade

Utilize o Lombok para reduzir o código boilerplate da classe Colaborador:

@Data
@TableName("colaborador")
public class Colaborador {
    @TableId
    private Integer idColaborador;
    private String nomeCompleto;
    private String cargo;
    private Double salario;
}

Implementação das Camadas Mapper e Service

Com o MyBatis-Plus, a interface Mapper herda funcionalidades de CRUD automaticamente:

@Mapper
public interface ColaboradorMapper extends BaseMapper<Colaborador> {
}

A camada de serviço utiliza as extensões do MyBatis-Plus para facilitar operações complexas:

// Interface
public interface ColaboradorService extends IService<Colaborador> {
}

// Implementação
@Service
public class ColaboradorServiceImpl extends ServiceImpl<ColaboradorMapper, Colaborador> implements ColaboradorService {
}

Disponibilizando os Dados via API

Por fim, crie um controller para listar os registros do banco de dados:

@RestController
@RequestMapping("/colaboradores")
public class ColaboradorController {

    @Autowired
    private ColaboradorService colaboradorService;

    @GetMapping("/listar")
    public List<Colaborador> obterTodos() {
        return colaboradorService.list();
    }
}

Ao iniciar a aplicação e acessar localhost:8080/colaboradores/listar, o sistema retornará o JSON contendo os dados recuperados do MySQL através do MyBatis-Plus.

Tags: SpringBoot3 MyBatis-Plus java MySQL Lombok

Publicado em 7-7 00:21