Enterprise Orta

JDBC ile JPA Karşılaştırması

Ayrıntılı JDBC şablon kodunu JPA'nın nesne-ilişkisel eşleme ve EntityManager'ı ile değiştirin.

✕ 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();
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🗺️

Nesne eşleme

Entity'ler düz açıklamalı sınıflardır — manuel ResultSet'ten nesneye çeviri yok.

🔒

Tür-güvenli sorgular

JPQL, ham tablo ve sütun dizeleri yerine entity türleri ve alanlar üzerinde çalışır.

Yerleşik önbellekleme

Birinci ve ikinci düzey önbellekler, veritabanı gidiş-dönüşlerini otomatik olarak azaltır.

Eski Yaklaşım
JDBC
Modern Yaklaşım
JPA EntityManager
JDK'dan itibaren
11
Zorluk
Orta
JDBC ile JPA Karşılaştırması
Mevcut

Jakarta EE 8 / Java 11'den itibaren geniş çapta kullanılabilir

JPA (Jakarta Persistence API), Java nesnelerini veritabanı satırlarına eşler; manuel ResultSet işleme ve SQL dize birleştirmeyi ortadan kaldırır. EntityManager, find(), persist() ve JPQL sorguları sağlar; böylece ham SQL yerine etki alanı nesneleriyle çalışırsınız; kapsayıcı ise bağlantı havuzlama ve işlemleri yönetir.

Paylaş 𝕏 🦋 in