SpringBoot: Persistencia Spring Data
Aprende a implementar persistencia con Spring Data en Spring Boot 3. Optimiza tus aplicaciones gestionando datos de forma eficiente y segura.
Aprende SpringBoot GRATIS y certifícateSpring 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
.
Lecciones de este módulo de SpringBoot
Lecciones de programación del módulo Persistencia Spring Data del curso de SpringBoot.
Ejercicios de programación en este módulo de SpringBoot
Evalúa tus conocimientos en Persistencia Spring Data con ejercicios de programación Persistencia Spring Data de tipo Test, Puzzle, Código y Proyecto con VSCode.