Enterprise Średniozaawansowany

Replace verbose JDBC boilerplate with JPA's object-relational mapping and EntityManager.

✕ 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();
}
Widzisz problem z tym kodem? Daj nam znać.
🗺️

Object mapping

Entities are plain annotated classes — no manual ResultSet-to-object translation.

🔒

Type-safe queries

JPQL operates on entity types and fields rather than raw table and column strings.

Built-in caching

First- and second-level caches reduce database round-trips automatically.

Stare podejście
JDBC
Nowoczesne podejście
JPA EntityManager
Od JDK
11
Poziom trudności
Średniozaawansowany
JDBC versus JPA
Dostępne

Widely available since Jakarta EE 8 / Java 11

JPA (Jakarta Persistence API) maps Java objects to database rows, eliminating manual ResultSet processing and SQL string concatenation. EntityManager provides find(), persist(), and JPQL queries so you work with domain objects instead of raw SQL, while the container manages connection pooling and transactions.

Udostępnij 𝕏 🦋 in