Enterprise Intermedio

Reemplaza el extenso código repetitivo de JDBC por el mapeo objeto-relacional y el 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();
}
¿Ves un problema con este código? Cuéntanos.
🗺️

Mapeo de objetos

Las entidades son clases anotadas simples — sin traducción manual de ResultSet a objeto.

🔒

Consultas con seguridad de tipos

JPQL opera sobre tipos y campos de entidades en lugar de cadenas de tablas y columnas crudas.

Caché integrada

Las cachés de primer y segundo nivel reducen los viajes a la base de datos automáticamente.

Enfoque Antiguo
JDBC
Enfoque Moderno
JPA EntityManager
Desde JDK
11
Dificultad
Intermedio
JDBC versus JPA
Disponible

Ampliamente disponible desde Jakarta EE 8 / Java 11

JPA (Jakarta Persistence API) mapea objetos Java a filas de base de datos, eliminando el procesamiento manual de ResultSet y la concatenación de cadenas SQL. EntityManager proporciona find(), persist() y consultas JPQL para que trabajes con objetos de dominio en lugar de SQL crudo, mientras el contenedor gestiona el pool de conexiones y las transacciones.

Compartir 𝕏 🦋 in