Enterprise Intermédiaire

Remplace le vaste code répétitif de JDBC par le mapping objet-relationnel et l'EntityManager de JPA.

✕ Java EE
String sql = "SELECT * FROM users WHERE id = ?";
try (Connection con = dataSource.getConnection();
     PreparedStatement ps =
             con.prepareStatement(sql)) {
    ps.setLong(1, id);
    ResultSet rs = ps.executeQuery();
    if (rs.next()) {
        User u = new User();
        u.setId(rs.getLong("id"));
        u.setName(rs.getString("name"));
    }
}
✓ Jakarta EE 8+
@PersistenceContext
EntityManager em;

public User findUser(Long id) {
    return em.find(User.class, id);
}

public List<User> findByName(String name) {
    return em.createQuery(
        "SELECT u FROM User u WHERE u.name = :name",
        User.class)
        .setParameter("name", name)
        .getResultList();
}
Un problème avec ce code ? Dites-le nous.
🗺️

Mapping d'objets

Les entités sont de simples classes annotées — sans traduction manuelle de ResultSet en objet.

🔒

Requêtes avec sécurité de types

JPQL opère sur les types et champs d'entités plutôt que sur des chaînes de tables et colonnes brutes.

Cache intégrée

Les caches de premier et second niveau réduisent automatiquement les allers-retours vers la base de données.

Ancienne Approche
JDBC
Approche Moderne
JPA EntityManager
Depuis JDK
11
Difficulté
Intermédiaire
JDBC versus JPA
Disponible

Disponible depuis Jakarta EE 8 / Java 11

JPA (Jakarta Persistence API) mappe les objets Java aux lignes de base de données, éliminant le traitement manuel de ResultSet et la concaténation de chaînes SQL. EntityManager fournit find(), persist() et des requêtes JPQL pour travailler avec des objets de domaine plutôt que du SQL brut, tandis que le conteneur gère le pool de connexions et les transactions.

Partager 𝕏 🦋 in