Consultas SQL con JDBC Template en Spring Boot
Clase 6 de 25 • Curso de Java Spring Data JPA: Bases de Datos
Contenido del curso
Primeros pasos
Spring Data Repositories
- 7

Uso de Spring Data Repositories para Gestión de Datos
08:39 min - 8

Guardar y Actualizar Registros con Spring Data Repositories
08:34 min - 9

Eliminar elementos con Spring Data JPA: método deleteById
05:36 min - 10

Gestión de Relaciones en JPA: Lazy vs Eager Fetching
15:09 min - 11

Query Methods en Spring para Consultas Personalizadas
08:28 min - 12

Filtrado de Pizzas por Ingredientes usando Query Methods
07:27 min - 13

Consultas Avanzadas con Query Methods en Java Spring
11:25 min - 14

Uso de Query Methods para Filtrar y Ordenar Datos en Spring
09:30 min - 15

Paginación y Ordenación con Spring Data Repositories
07:39 min - 16

Ordenamiento Dinámico con Paging and Sorting Repository
07:58 min
Personalización de queries
- 17

Consultas de Base de Datos con JPQL en Spring Boot
08:01 min - 18

Consultas SQL nativas y ordenación con Hibernate en Spring Data
08:26 min - 19

Uso de Proyecciones en Queries Personalizados con Java y SQL
13:47 min - 20

Actualización de Precios de Pizza con Spring Data JPA
11:50 min - 21

Propiedades ACID y Spring Data: Uso de @Transactional
10:07 min
Características avanzadas
Próximos pasos
¿Cómo empezar a trabajar con la información de la base de datos?
Para comenzar a gestionar la información almacenada en una base de datos, es fundamental tener una comprensión clara de cómo los datos están estructurados y cómo se pueden consultar eficientemente. El uso de herramientas adecuadas facilita la carga y consulta de datos de manera ordenada. En esta sesión, trabajaremos con consultas SQL a través de JDBC Template en un entorno Java, lo que nos permitirá explorar y manipular nuestra base de datos de manera efectiva.
¿Cómo realizar consultas con JDBC Template?
El JDBC Template es una poderosa herramienta que permite realizar consultas SQL y mapear los resultados a clases Java. Este enfoque nos brinda flexibilidad y control sobre las interacciones con la base de datos. A continuación, mostramos cómo crear un método para consultar todas las pizzas en nuestra pizzería.
@Service
public class PizzaService {
private final JdbcTemplate jdbcTemplate;
@Autowired
public PizzaService(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<PizzaEntity> getAll() {
return this.jdbcTemplate.query(
"SELECT * FROM pizza",
new BeanPropertyRowMapper<>(PizzaEntity.class)
);
}
}
- Definición del Servicio: Utilizamos la anotación
@Servicepara marcar nuestra clase como un servicio dentro del ciclo de vida de Spring. - Uso de JdbcTemplate: Declaramos e inyectamos
JdbcTemplatepara manejar las consultas SQL. - Método de Consulta: Creamos un método
getAllque usa una consulta SQL para recuperar todas las entradas de la tablapizzay mapearlas a objetosPizzaEntity.
¿Cómo exponer consultas a través de un controlador REST?
Para hacer las consultas accesibles a través de un API RESTful, necesitamos un controlador que gestione las solicitudes HTTP. Aquí explicamos cómo exponer las pizzas a través de un endpoint REST.
@RestController
@RequestMapping("/api/pizzas")
public class PizzaController {
private final PizzaService pizzaService;
@Autowired
public PizzaController(PizzaService pizzaService) {
this.pizzaService = pizzaService;
}
@GetMapping
public ResponseEntity<List<PizzaEntity>> getAll() {
return ResponseEntity.ok(this.pizzaService.getAll());
}
}
- Definición del Controlador: Utilizamos
@RestControllerpara definir un controlador REST que maneja solicitudes HTTP. - Configuración del Ruteo: Con
@RequestMappingestablecemos/api/pizzascomo el path para el API. - Método Get: Usamos
@GetMappingpara especificar que este método responderá a solicitudes GET, devolviendo una lista de pizzas.
Ahora, al enviar una petición GET a http://localhost:8080/api/pizzas, podremos obtener un listado de todas las pizzas disponibles en la base de datos.
¿Cómo realizar consultas filtradas?
Si queremos obtener un subconjunto específico de datos, podemos modificar nuestra consulta SQL añadiendo condiciones WHERE. Por ejemplo, para recuperar solo las pizzas que no están disponibles:
public List<PizzaEntity> getUnavailablePizzas() {
return this.jdbcTemplate.query(
"SELECT * FROM pizza WHERE available = 0",
new BeanPropertyRowMapper<>(PizzaEntity.class)
);
}
- Consulta Condicional: Filtramos las pizzas añadiendo la condición
WHERE available = 0. - Modificación del Método: Creamos un nuevo método
getUnavailablePizzaspara encapsular esta lógica y facilitar su reutilización.
Pruebas con herramientas como Postman
Una vez configurado el servicio y el controlador, es esencial probar nuestras consultas y el API RESTful. Utilizamos herramientas como Postman para enviar solicitudes y verificar respuestas. También se pueden realizar cambios dinámicos en las consultas y probar los resultados inmediatamente después.
Este enfoque nos permite mantener un flujo efectivo de desarrollo y pruebas, asegurando que las consultas funcionen según lo esperado en un entorno real.
Con estas técnicas y herramientas, ahora estás listo para realizar consultas básicas y avanzadas a tu base de datos usando Java y Spring. Continúa explorando y experimentando con consultas para mejorar tu conocimiento y habilidades en el desarrollo de aplicaciones.