Clasa JdbcTemplate în Spring Boot în Spring Boot

data Spring Boot 3.x / Spring JDBC Q&A / Distribuie cod

Execuția directă și rapidă a comenzilor SQL în Spring Boot fără overhead-ul unui ORM prin intermediul clasei JdbcTemplate.

Sintaxă
jdbcTemplate.queryForObject(sql, RowMapper, params)

Pentru rapoarte complexe, interogări de analiză cu zeci de clauze JOIN sau procesări masive de date (batch inserts), generarea automată de entități JPA poate aduce un consum inutil de memorie și latență. JdbcTemplate oferă o punte directă și simplificată peste JDBC.

Se ocupă automat de deschiderea și închiderea sigură a conexiunilor la baza de date, prevenirea scurgerilor de resurse (resource leaks) și maparea rândurilor SQL prin interfețe de tip RowMapper.

Exemplu: Interogare SQL directă și mapare într-un Record Java
package ro.dexblog.demo.dao;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

public record UserSummary(Long id, String email, double totalSpent) {}

@Repository
public class AnalyticsDao {

    private final JdbcTemplate jdbcTemplate;

    public AnalyticsDao(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public UserSummary getUserSummary(Long userId) {
        String sql = "SELECT u.id, u.email, COALESCE(SUM(o.amount), 0) AS total_spent " +
                     "FROM users u LEFT JOIN orders o ON u.id = o.user_id " +
                     "WHERE u.id = ? GROUP BY u.id, u.email";

        return jdbcTemplate.queryForObject(sql, (rs, rowNum) -> new UserSummary(
            rs.getLong("id"),
            rs.getString("email"),
            rs.getDouble("total_spent")
        ), userId);
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Clasa JdbcTemplate în Spring Boot

Ai o nelămurire despre utilizarea comenzii Clasa JdbcTemplate în Spring Boot sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.