JPA və JDBC arasındakı fərq nədir?


cavab 1:

JDBC birbaşa bir verilənlər bazasına qoşulmaq və SQL işlətmək üçün standart bir vasitədir. Məsələn, TableName və s * dən * seçin. İstifadəçinin öz tətbiqində işləyə biləcəyi qeydləri geri qaytara bilər və yeniləmə və silmək kimi bütün adi işləri yerinə yetirə bilər.Bütün Java DBA-larının (JPA provayderləri daxil olmaqla) arxasında duran texnologiyalardan biridir.

Ənənəvi JDBC tətbiqləri ilə əlaqəli bir problem, istifadəçilərin tez-tez məntiqi SQL ilə qarışdıran şifrəli koda sahib olması, qeydlər və obyektlər arasında çox sayda xəritələrin olması və s.

JPA, obyekt əlaqəli xəritəçəkmə üçün rəsmi bir vasitədir. JPA, istifadəçilərə kod və verilənlər bazası cədvəllərindəki obyektləri xəritə ilə təmin etməyə imkan verən bir texnologiyadır. JPA, SQL-ni geliştiricidən "gizlədə" bilər, buna görə Java dərsləri ilə əlaqəli hər şey və provayder onları uzaqdan saxlamaq və yükləməyinizə imkan verir. Əksər vaxt, JPA provayderinə məlumat vermək üçün XML Xəritəçəkmə sənədləri və ya yazı tipləri və girişlərdəki qeydlərdən istifadə edilə bilər. İstifadəçi obyektindəki hansı sahələr verilənlər bazasında hansı sahələrə təyin olunur? Qışlama ən populyar JPA təminatçısıdır.

OpenJPA, Topplink və s. Daxil olmaqla bir sıra digər nümunələr.

Hibernate və digər məşhur JPA provayderləri SQL yazır və verilənlər bazasına oxumaq və yazmaq üçün JDBC istifadə edin.

Çox sağ olun

Cavabımı bəyənirsinizsə, razılaşın.


cavab 2:

Bir başlanğıc olsanız ikisinin arasındakı fərqi anlamaq biraz mürəkkəb olardı. Düşünürəm ki, əvvəlcə JDBC ilə Hibernate arasındakı fərqi başa düşməlisiniz. Ümid edirəm JDBC nə olduğunu hələ qısa bir izah olaraq bilirsiniz: JDBC Java Database Bağlantısı üçün dayanır. JDBC, verilənlər bazasına qarşı sorğu bağlamaq və işlətmək üçün Java API-dir. Bazaya qoşulmaq üçün sürücülər təqdim edir. Hər hansı bir əlaqəli verilənlər bazasında saxlanılan cədvəl məlumatlarına daxil olmaq üçün JDBC API-dən istifadə edə bilərsiniz. JDBC API istifadə edərək məlumatları saxlaya, yeniləyə, silə və bazadan əldə edə bilərik.

İndi qışlama nədir? JDBC-dən fərqli olaraq, istifadə etməzdən əvvəl Hibernate kitabxanalarını idxal etməlisiniz, JDBC isə J2SE-nin bir hissəsidir. Hibernate JDBC üçün nəzərdə tutulmuş şeyi edir, ancaq Hibernate'nin JDBC'nin inkişaf etmiş bir səviyyəsidir deyə bilərsiniz. Qışlama verilənlər bazası ilə qarşılıqlı əlaqə yaratmaq üçün Java tətbiqetməsinin inkişafını asanlaşdırır. Bu ORM alətidir, yəni Java obyektlərini DB masalarına təyin edir. Java sinfi db-də bir cədvəl təqdim edə bilər. Məsələn, emp_26 cədvəlini Hibernate-da İşçi sinfi olaraq təyin etmisinizsə, empl_26 cədvəlindən bütün işçiləri almaq üçün sadə bir obyekt yönümlü bir sorğu yazın: "İşçidən" // Hibernate-də "seçmək * emp_26" // JDBC.

Hibernate'in təklif etdiyi önbelleğe, xəritədə xəritəçəkmə, miras xəritələşdirməsi, HQL, pagination və daha çox JDBC-də mövcud olmayan bir çox xüsusiyyət var.

JPA bir spesifikasiya, siniflər və interfeyslər toplusudur. JPA onu həyata keçirmək üçün bir vasitəyə ehtiyac duyur və bu vasitə yuxuya verilə bilər. JPA tətbiq etməklə Hibernate ilə eyni şeyi edə bilərsiniz, ancaq JPA formatında. JPA bir rəqsdirsə, Hibernate və ya başqa bir alətlə onu bir rəqs səhnəsi ilə təmin etmək tələb olunur. Yeri gəlmişkən, bu Hibernate'nin JPA olmadan rəqs edə bilməyəcəyi demək deyil, Hibernate'nin də öz rəqsi var.


cavab 3:

JDBC birbaşa bir verilənlər bazasına qoşulmaq və SQL işlətmək üçün standartdır - məs. B. İSTƏYİR * İSTİFADƏÇİLƏRDƏ və s. Bu, tətbiqinizdə işləyə biləcəyiniz qeydləri qaytara bilər və INSERT, DELETE kimi bütün adi işləri edə bilərsiniz. Saxlanılan prosedurları yerinə yetirin və s. Bu Java verilənlər bazasına daxil olmaq üçün əsas texnologiyalardan biridir (JPA təminatçıları da daxil olmaqla).

Ənənəvi JDBC tətbiqetmələrindəki problemlərdən biri də qeydlər və obyektlər arasında çox sayda xəritə, SQL ilə qarışıq olan məntiq və s. Çox vaxt uyğun olmayan kodun olmasıdır.

JPA, obyekt-əlaqəli xəritəçəkmə üçün standartdır. Bu kod və verilənlər bazası cədvəllərində obyektləri xəritə üçün istifadə edə biləcəyiniz bir texnologiyadır. Bu SQL-in geliştiricidən "gizli" qalmasına imkan verir ki, yalnız Java dərsləri əhatə olunsun. Provayder onları saxlamaq və sehrli şəkildə yükləməyinizə imkan verir. Əksər hallarda, XML Xəritəçəkmə faylları və ya getters və ayarlayıcıların şərhləri, JPA provayderinizə obyektinizdəki hansı sahələrin verilənlər bazasının hansı sahələri ilə müqayisə edildiyini izah etmək üçün istifadə edilə bilər. Ən yaxşı bilinən JPA provayderi Hibernate, buna görə konkret nümunələr üçün yaxşı bir başlanğıc nöqtəsidir.

Digər nümunələr OpenJPA, Toplink və s.