Enterprise متوسط

استبدل كليشيهات JDBC المطوّلة بتعيين JPA الكائني-العلائقي و 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();
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
🗺️

تعيين الكائنات

الكيانات فئات Java عادية مزوّدة بتعليقات توضيحية — لا ترجمة ResultSet-إلى-كائن يدوية.

🔒

استعلامات آمنة من حيث النوع

JPQL يعمل على أنواع الكيانات وحقولها بدلاً من سلاسل الجدول والعمود الخام.

تخزين مؤقت مدمج

تخفّض ذاكرات التخزين المؤقت من المستوى الأول والثاني رحلات قاعدة البيانات تلقائياً.

الأسلوب القديم
JDBC
الأسلوب الحديث
JPA EntityManager
منذ JDK
11
الصعوبة
متوسط
JDBC مقابل JPA
متاح

متاح على نطاق واسع منذ Jakarta EE 8 / Java 11

يُعيّن JPA (Jakarta Persistence API) كائنات Java إلى صفوف قاعدة البيانات مما يُزيل معالجة ResultSet اليدوية وتسلسل سلاسل SQL. يوفر EntityManager find() و persist() واستعلامات JPQL كي تعمل مع كائنات المجال بدلاً من SQL الخام بينما تدير الحاوية تجميع الاتصالات والمعاملات.

مشاركة 𝕏 🦋 in