JPA va JDBC o'rtasidagi farq nima?


javob bering 1:

JDBC bu ma'lumotlar bazasiga to'g'ridan-to'g'ri ulanish va SQL-ni ishlatish uchun standart vositadir. Masalan, TableName-dan * va boshqalarni tanlang. Bu foydalanuvchi o'z ilovasida qayta ishlashi mumkin bo'lgan yozuvlarni qaytarishi mumkin va ular barcha odatiy vazifalarni yangilash va o'chirish kabi bajarishi mumkin.Bu ko'p Java DBA (shu jumladan JPA provayderlari) ortida turgan texnologiyalardan biridir.

An'anaviy JDBC ilovalaridagi asosiy muammo shundaki, foydalanuvchilar ko'pincha mantiqni SQL bilan aralashtirib yuboradigan shitty kodga ega, yozuvlar va ob'yektlar o'rtasida juda ko'p xaritalar mavjud va hokazo.

JPA - ob'ektlarni nisbiy xaritalash uchun rasmiy vosita. JPA - foydalanuvchilarga kodlar va ma'lumotlar bazalari jadvallaridagi ob'ektlarni xaritalashga imkon beradigan texnologiya. JPA SQL-ni ishlab chiqaruvchidan "yashirishi" mumkin, shuning uchun Java sinflari bilan bog'liq bo'lgan barcha narsalar va provayder ularni masofadan turib saqlash va yuklash imkonini beradi. Ko'pincha, JPA provayderini xabardor qilish uchun XML xaritalash fayllari yoki yozuvlar va kirish joylaridagi yozuvlardan foydalanish mumkin. Ma'lumotlar bazasidagi qaysi maydonlarga foydalanuvchi ob'ektidagi qaysi maydonlar tayinlangan? Kutish - eng mashhur JPA ta'minotchisi.

OpenJPA, Topplink, va hokazo ba'zi boshqa misollar.

Hibernate va boshqa mashhur JPA provayderlari SQL-ni yozadilar va JDBC-dan ma'lumotlar bazasini o'qish va yozish uchun foydalanadilar.

Katta rahmat.

Agar javobim sizga yoqsa, rozi bo'ling.


javob bering 2:

Agar siz yangi boshlovchi bo'lsangiz, ikkalasining orasidagi farqni tushunish biroz murakkab bo'ladi. Menimcha, avval JDBC va Hibernate o'rtasidagi farqni tushunishingiz kerak. Umid qilamanki, siz JDBC nima ekanligini bilasiz, qisqacha tavsif sifatida: JDBC Java Database Connectivity degan ma'noni anglatadi. JDBC so'rovni ma'lumotlar bazasiga qarshi ulash va ishga tushirish uchun Java API. U ma'lumotlar bazasiga ulanish uchun drayverlarni ta'minlaydi. JDBC API-dan har qanday aloqador ma'lumotlar bazasida saqlangan jadval ma'lumotlariga kirish uchun foydalanishingiz mumkin. JDBC API yordamida ma'lumotlarni saqlash, yangilash, o'chirish va ma'lumotlar bazasidan olishimiz mumkin.

Hozir kutish nima? JDBC-dan farqli o'laroq, kutib olish kutubxonalarini ishlatishdan oldin ularni import qilishingiz kerak, JDBC esa J2SE-ning bir qismidir. Hibernate JDBC uchun ishlab chiqilgan narsani qiladi, lekin aytish mumkinki, kutish - bu JDBC ning rivojlangan darajasi. Kutish holati ma'lumotlar bazasi bilan ishlash uchun Java dasturini ishlab chiqishni soddalashtiradi. Bu ORM vositasi, ya'ni Java ob'ektlarini DB jadvallariga tayinlaydi. Java sinfi db-da jadvalni ifodalashi mumkin. Masalan, agar siz emp_26 jadvalini Hibernate-dagi Xodimlar sinfi sifatida tayinlagan bo'lsangiz, empl_26 jadvalidagi barcha ishchilarni olish uchun oddiy ob'ektga yo'naltirilgan so'rov yozing: "Ish beruvchidan" // Kutish rejimida "tanlang * emp_26" dan // JDBC.

Hibernate-ning keshlash, xaritalash xaritasi, merosni xaritalash, HQL, paginatsiya va boshqalar JDBC-da mavjud bo'lmagan juda ko'p funktsiyalar mavjud.

JPA - bu spetsifikatsiya, sinflar va interfeyslar to'plami. JPA uni amalga oshirish uchun vositaga muhtoj va bu vositani uxlash mumkin. JPA dasturini amalga oshirish bilan siz Hibernate bilan bir xil ish tutishingiz mumkin, ammo JPA formatida. Agar JPA raqs bo'lsa, Hibernate yoki uni raqs sahnasi bilan ta'minlash uchun boshqa vosita talab qilinadi. Aytgancha, bu Hibernate JPA holda raqsga tusha olmaydi degani emas, Hibernate ham o'z raqsiga ega.


javob bering 3:

JDBC ma'lumotlar bazasiga to'g'ridan-to'g'ri ulanish va SQL-ni ishga tushirish uchun standart hisoblanadi - masalan. B. FOYDALANUVCHILARNI TO'G'RISIDA TANLANG va hokazo. Bu sizning ilovangizda qayta ishlashingiz mumkin bo'lgan yozuvlarni qaytarishi mumkin va siz INSERT, DELETE kabi odatiy vazifalarni bajarishingiz mumkin. Saqlangan protseduralarni bajarish va hk. Bu Java ma'lumotlar bazasiga (shu jumladan JPA provayderlariga) kirish uchun asosiy texnologiyalardan biridir.

An'anaviy JDBC ilovalaridagi muammolardan biri shundaki, ular ko'pincha yozuv va ob'ektlar o'rtasida juda ko'p xaritaga ega bo'lgan mantiqiy kod, SQL bilan aralashgan mantiq va boshqalar.

JPA - ob'ektga nisbatan xaritalash uchun standart. Bu kod va ma'lumotlar bazasi jadvallaridagi ob'ektlarni xaritalashda foydalanishingiz mumkin bo'lgan texnologiya. Bu SQL dasturchisidan "yashirin" bo'lishiga imkon beradi, shunda faqat Java sinflari qamrab olinadi. Provayder ularni tejashga va sehrli ravishda yuklashga imkon beradi. Ko'pgina hollarda, JPA provayderiga ma'lumotlar bazasida qaysi maydonlar ma'lumotlar bazasi bilan taqqoslanganligini aytib berish uchun XML xaritalash fayllari yoki getters va setters sharhlaridan foydalanish mumkin. Eng yaxshi tanilgan JPA provayderi Hibernate, shuning uchun bu aniq misollar uchun yaxshi boshlang'ich nuqtadir.

Boshqa misollar - OpenJPA, Toplink va boshqalar.