SpringBoot: Persistencia con Spring Data

Aprende a implementar persistencia con Spring Data en Spring Boot 3. Optimiza tus aplicaciones gestionando datos de forma eficiente y segura.

Spring Boot 3 es una herramienta que simplifica la creación de aplicaciones basadas en Spring. Uno de los módulos más importantes de Spring Boot es Spring Data, que facilita la implementación de la capa de persistencia en nuestras aplicaciones. Este módulo permite interactuar con bases de datos de manera sencilla y eficiente.

Configuración inicial

Para comenzar a utilizar Spring Data en un proyecto Spring Boot 3, es necesario agregar las dependencias correspondientes en el archivo build.gradle:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
}

En este ejemplo, utilizamos la base de datos H2 para simplificar la configuración. Es fundamental agregar el starter de JPA para trabajar con Spring Data JPA.

Configuración de la base de datos

En el archivo application.properties, se deben definir las propiedades de configuración de la base de datos:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

Estas propiedades configuran una base de datos en memoria H2, ideal para pruebas y desarrollo.

Creación de entidades

Las entidades representan tablas en la base de datos. A continuación, se muestra un ejemplo de una entidad simple llamada Usuario:

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Usuario {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String nombre;
private String correo;

// Getters y setters
}

La anotación @Entity indica que la clase es una entidad JPA. La propiedad id es la clave primaria y se genera automáticamente.

Repositorios de Spring Data

Los repositorios de Spring Data proporcionan métodos CRUD sin necesidad de escribir código SQL. Para crear un repositorio, se extiende la interfaz JpaRepository:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
// Métodos personalizados (si es necesario)
}

Este repositorio permite realizar operaciones CRUD sobre la entidad Usuario.

Servicios y controladores

Para completar la implementación, se crean servicios y controladores que utilicen el repositorio. A continuación, se muestra un ejemplo de un servicio:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UsuarioService {

@Autowired
private UsuarioRepository usuarioRepository;

public List<Usuario> obtenerTodos() {
return usuarioRepository.findAll();
}

public Usuario guardar(Usuario usuario) {
return usuarioRepository.save(usuario);
}

// Otros métodos (eliminar, actualizar, etc.)
}

El servicio utiliza el repositorio para interactuar con la base de datos.

Un ejemplo de controlador sería el siguiente:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/usuarios")
public class UsuarioController {

@Autowired
private UsuarioService usuarioService;

@GetMapping
public List<Usuario> obtenerTodos() {
return usuarioService.obtenerTodos();
}

@PostMapping
public Usuario guardar(@RequestBody Usuario usuario) {
return usuarioService.guardar(usuario);
}

// Otros endpoints (eliminar, actualizar, etc.)
}

Este controlador expone endpoints REST para gestionar la entidad Usuario.

Certifícate en SpringBoot con CertiDevs PLUS

Lecciones de este módulo de SpringBoot

Lecciones de programación del módulo Persistencia con Spring Data del curso de SpringBoot.

Ejercicios de programación en este módulo de SpringBoot

Evalúa tus conocimientos en Persistencia con Spring Data con ejercicios de programación Persistencia con Spring Data de tipo Test, Puzzle, Código y Proyecto con VSCode.