JavaRush /Java blogi /Random-UZ /Kutish rejimidagi intervyu savollari
Dr-JohnZoidberg
Daraja
Киев

Kutish rejimidagi intervyu savollari

Guruhda nashr etilgan
Ushbu maqola chet el maqolalarining tarjimasi va takomillashtirilishi (resurslar ro'yxati maqola oxirida keltirilgan). Ba'zi savollarga javoblar kengaytirildi, o'qish jarayonida paydo bo'lishi mumkin bo'lgan javoblarni o'z ichiga olgan uchinchi tomon manbalariga havolalar taqdim etiladi. 1) Hibernate nima? Bu ob'ektlarni an'anaviy relyatsion ma'lumotlar bazalariga ob'ekt bilan bog'liq xaritalash uchun asosdir. Ramkaning asosiy xususiyatlari: 1) Ma'lumotlar bazalarida jadvallarni avtomatik yaratish va yangilash; 2) Ma'lumotlar bazasiga asosiy so'rovlar (saqlash, yangilash, o'chirish va qidirish) ramka usullari sifatida taqdim etilganligi sababli, ishlab chiquvchi yozadigan kod sezilarli darajada kamayadi; 3) SQL-ga o'xshash tildan foydalanishni ta'minlaydi (HQL - hibernate so'rovlar tili). HQL so'rovlari ma'lumotlar ob'ektlari bilan birga yozilishi mumkin (ma'lumotlar bazasi bilan ishlash uchun tayyorlangan POJO sinflari). 2) Qanday qilib kutish rejimidasturlashda yordam beradimi? Hibernate dasturchi ishini sezilarli darajada soddalashtiradigan bir qator funksiyalarni amalga oshiradi. — Bu xususiyatlardan biri shundaki, kutish rejimi ishlab chiquvchiga koʻpgina SQL soʻrovlarini yozishdan qochish imkonini beradi (ular allaqachon amalga oshirilgan, siz faqat ramka taqdim etgan usullardan foydalanishingiz kerak). — Hibernate qalpoq ostida dasturni sezilarli darajada tezlashtiradigan ko‘plab foydali vositalarga ega, ulardan eng diqqatga sazovorlari ikki darajali keshlash va dangasa va olib tashlashni aniq sozlashdir. — Maʼlumotlar bazasining oʻzida jadvallarni yaratadi. 3) Hibernate bilan ishlashni sozlash usullari. Hibernate bilan ishlashni sozlashning to'rtta usuli mavjud: - izohlardan foydalanish; - hibernate.cfg.xml; - hibernate.properties; - persistence.xml. Eng keng tarqalgan konfiguratsiya usuli: izohlar va persistence.xml fayli orqali, hibernate.properties va hibernate.cfg.xml fayllariga kelsak, hibernate.cfg.xml muhimroqdir (agar ilovada ikkala fayl ham bo'lsa, u holda sozlamalar hibernate.cfg fayli qabul qilinadi. xml). Izohlar bilan konfiguratsiya, garchi qulay bo'lsa ham, har doim ham mumkin emas; masalan, agar siz turli xil ma'lumotlar bazalari yoki turli vaziyatlar uchun turli ob'ekt konfiguratsiyasiga ega bo'lishni istasangiz, xml konfiguratsiya fayllaridan foydalanishingiz kerak. 4) Hibernate qaysi kalit interfeyslardan foydalanadi? Har bir Hibernate bilan bog'liq ilovalarda qo'llaniladigan beshta asosiy interfeys mavjud: - Sessiya interfeysi; - SessionFactory interfeysi; — konfiguratsiya interfeysi; — tranzaksiya interfeysi; — So‘rov va mezon interfeyslari. 5) Kutish rejimida Sessiya interfeysi qanday rol o'ynaydi? Seans - bu ma'lumotlar bazasi bilan aloqa qilish uchun mas'ul bo'lgan asosiy interfeys. Shuningdek, u doimiy ob'ektlarni olish uchun so'rov ob'ektlarini yaratishga yordam beradi. (doimiy ob'ekt - ma'lumotlar bazasida allaqachon mavjud bo'lgan ob'ekt; so'rov ob'ekti - ma'lumotlar bazasida so'rov natijasini olganimizda olinadigan ob'ekt, dastur shu bilan ishlaydi). Session obyektini SessionFactory dan olish mumkin: Session session = sessionFactory.openSession(); Sessiya interfeysining roli: ma'lumotlar bazasiga jdbc ulanishi uchun o'ram; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..) - tranzaktsiyalar uchun zavod (rasmiy hujjat bitimiga ko'ra - ilovaga ish birliklarini aniqlash imkonini beradi, bu esa, mohiyatiga ko'ra, tranzaktsiyani belgilaydi. ma'lumotlar bazasi bilan bog'liq operatsiyalar chegaralari). - majburiy birinchi darajali keshning saqlovchisi. 6) Hibernate rejimida SessionFactory interfeysining roli qanday? Aynan SessionFactory obyektidan biz Session tipidagi obyektlarni olamiz. Butun ilova uchun faqat bitta SessionFactory mavjud va u dastur ishga tushganda ishga tushiriladi. SessionFactory ish paytida dastur tomonidan tez-tez ishlatiladigan meta-ma'lumotlar va SQL so'rovlarini keshlaydi. Shuningdek, u tranzaktsiyalardan birida olingan va boshqa operatsiyalarda foydalanish mumkin bo'lgan ma'lumotlarni keshlaydi. SessionFactory obyektini quyidagi chaqiruv yordamida olish mumkin: SessionFactory sessionFactory = configuration.buildSessionFactory(); 7) Hibernate rejimida qanday turdagi to'plamlar taqdim etiladi? Xalta, to‘plam, ro‘yxat, xarita, massiv. 8) Bag turi kolleksiyasi nima va u nima uchun ishlatiladi? Uni amalga oshirishda Bag yig'ish turi Setga juda o'xshaydi, farqi shundaki, Bag ikki nusxadagi qiymatlarni saqlashi mumkin. Bag elementlarning indekslanmagan ro'yxatini saqlaydi. Ma'lumotlar bazasidagi ko'pgina jadvallarda ma'lumotlar elementining bir-biriga nisbatan o'rnini ko'rsatadigan indekslar mavjud; bu indekslar jadvalda alohida ustun sifatida taqdim etiladi. Ob'ekt bilan bog'liq xaritalashda indeks ustunining qiymatlari Massivdagi indeksga, Ro'yxatdagi indeksga yoki Xaritadagi kalitga moslashtiriladi. Agar siz indeks ma'lumotlarini o'z ichiga olmagan ob'ektlar to'plamini olishingiz kerak bo'lsa, unda siz Bag yoki Set tipidagi to'plamlardan foydalanishingiz mumkin (to'plamlar saralanmagan shakldagi ma'lumotlarni o'z ichiga oladi, lekin so'rov bo'yicha saralanishi mumkin). 9) load(); usullarining ishlashida qanday farq bor? va get();? load() usuli; odatda so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga ishonchingiz komil bo'lmaganda ishlatiladi. Agar ob'ekt topilmasa, usul istisno qiladi.Agar ob'ekt topilsa, usul ma'lumotlar bazasida joylashgan ob'ektga havola bo'lgan proksi ob'ektni qaytaradi (ma'lumotlar bazasi so'rovi hali amalga oshirilmagan, bir turdagi. of lazy retrieval), ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rov, biz proksi ob'ekt orqali kerakli ob'ektga to'g'ridan-to'g'ri kirishimiz. get() usuli; foydalanilganda, so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga 100 foiz ishonchingiz komil emas. Mavjud bo'lmagan ob'ektga kirishda get(); usuli null qaytaradi. Agar ob'ekt topilsa, get() usuli; ob'ektning o'zini qaytaradi va ma'lumotlar bazasi so'rovi darhol amalga oshiriladi. 10) Hibernate rejimida Lazy fetching nima? Kutish rejimidagi Lazy checkout turi barg (bola) ob'ektlar bilan bog'lanadi va agar ota-ona ob'ektini tekshirish so'rovi bo'lsa, umumiy hisob-kitob siyosatini belgilaydi. Oddiy misol: Uy mavjud. Unda uning raqami, ko'chasi, xonadonlar soni va xonadonlarda yashovchi oilalar to'g'risidagi ma'lumotlar saqlanadi; bu oilalar Uy sub'ektiga nisbatan bolalar sub'ektini tashkil qiladi. Uy haqida ma'lumot so'raganimizda, unda yashovchi oilalar to'g'risida ma'lumot olish biz uchun mutlaqo keraksiz bo'lishi mumkin, bu erda dangasa olish yordamga keladi, bu bizga uy ob'ektini faqat oilalar haqidagi ma'lumotlar taqdim etilishi uchun sozlash imkonini beradi. so'rov bo'yicha, bu so'rovni sezilarli darajada bulut qiladi va dasturni tezlashtiradi. ©dev-bay Ma'lumotlar bazasidagi ko'pgina jadvallarda ma'lumotlar elementining bir-biriga nisbatan o'rnini ko'rsatadigan indekslar mavjud; bu indekslar jadvalda alohida ustun sifatida taqdim etiladi. Ob'ekt bilan bog'liq xaritalashda indeks ustunining qiymatlari Massivdagi indeksga, Ro'yxatdagi indeksga yoki Xaritadagi kalitga moslashtiriladi. Agar siz indeks ma'lumotlarini o'z ichiga olmagan ob'ektlar to'plamini olishingiz kerak bo'lsa, unda siz Bag yoki Set tipidagi to'plamlardan foydalanishingiz mumkin (to'plamlar saralanmagan shakldagi ma'lumotlarni o'z ichiga oladi, lekin so'rov bo'yicha saralanishi mumkin). 9) load(); usullarining ishlashida qanday farq bor? va get();? load() usuli; odatda so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga ishonchingiz komil bo'lmaganda ishlatiladi. Agar ob'ekt topilmasa, usul istisno qiladi.Agar ob'ekt topilsa, usul ma'lumotlar bazasida joylashgan ob'ektga havola bo'lgan proksi ob'ektni qaytaradi (ma'lumotlar bazasi so'rovi hali amalga oshirilmagan, bir turdagi. of lazy retrieval), ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rov, biz proksi ob'ekt orqali kerakli ob'ektga to'g'ridan-to'g'ri kirishimiz. get() usuli; foydalanilganda, so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga 100 foiz ishonchingiz komil emas. Mavjud bo'lmagan ob'ektga kirishda get(); usuli null qaytaradi. Agar ob'ekt topilsa, get() usuli; ob'ektning o'zini qaytaradi va ma'lumotlar bazasi so'rovi darhol amalga oshiriladi. 10) Hibernate rejimida Lazy fetching nima? Kutish rejimidagi Lazy checkout turi barg (bola) ob'ektlar bilan bog'lanadi va agar ota-ona ob'ektini tekshirish so'rovi bo'lsa, umumiy hisob-kitob siyosatini belgilaydi. Oddiy misol: Uy mavjud. Unda uning raqami, ko'chasi, xonadonlar soni va xonadonlarda yashovchi oilalar to'g'risidagi ma'lumotlar saqlanadi; bu oilalar Uy sub'ektiga nisbatan bolalar sub'ektini tashkil qiladi. Uy haqida ma'lumot so'raganimizda, unda yashovchi oilalar to'g'risida ma'lumot olish biz uchun mutlaqo keraksiz bo'lishi mumkin, bu erda dangasa olish yordamga keladi, bu bizga uy ob'ektini faqat oilalar haqidagi ma'lumotlar taqdim etilishi uchun sozlash imkonini beradi. so'rov bo'yicha, bu so'rovni sezilarli darajada bulut qiladi va dasturni tezlashtiradi. ©dev-bay Ma'lumotlar bazasidagi ko'pgina jadvallarda ma'lumotlar elementining bir-biriga nisbatan o'rnini ko'rsatadigan indekslar mavjud; bu indekslar jadvalda alohida ustun sifatida taqdim etiladi. Ob'ekt bilan bog'liq xaritalashda indeks ustunining qiymatlari Massivdagi indeksga, Ro'yxatdagi indeksga yoki Xaritadagi kalitga moslashtiriladi. Agar siz indeks ma'lumotlarini o'z ichiga olmagan ob'ektlar to'plamini olishingiz kerak bo'lsa, unda siz Bag yoki Set tipidagi to'plamlardan foydalanishingiz mumkin (to'plamlar saralanmagan shakldagi ma'lumotlarni o'z ichiga oladi, lekin so'rov bo'yicha saralanishi mumkin). 9) load(); usullarining ishlashida qanday farq bor? va get();? load() usuli; odatda so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga ishonchingiz komil bo'lmaganda ishlatiladi. Agar ob'ekt topilmasa, usul istisno qiladi.Agar ob'ekt topilsa, usul ma'lumotlar bazasida joylashgan ob'ektga havola bo'lgan proksi ob'ektni qaytaradi (ma'lumotlar bazasi so'rovi hali amalga oshirilmagan, bir turdagi. of lazy retrieval), ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rov, biz proksi ob'ekt orqali kerakli ob'ektga to'g'ridan-to'g'ri kirishimiz. get() usuli; foydalanilganda, so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga 100 foiz ishonchingiz komil emas. Mavjud bo'lmagan ob'ektga kirishda get(); usuli null qaytaradi. Agar ob'ekt topilsa, get() usuli; ob'ektning o'zini qaytaradi va ma'lumotlar bazasi so'rovi darhol amalga oshiriladi. 10) Hibernate rejimida Lazy fetching nima? Kutish rejimidagi Lazy checkout turi barg (bola) ob'ektlar bilan bog'lanadi va agar ota-ona ob'ektini tekshirish so'rovi bo'lsa, umumiy hisob-kitob siyosatini belgilaydi. Oddiy misol: Uy mavjud. Unda uning raqami, ko'chasi, xonadonlar soni va xonadonlarda yashovchi oilalar to'g'risidagi ma'lumotlar saqlanadi; bu oilalar Uy sub'ektiga nisbatan bolalar sub'ektini tashkil qiladi. Uy haqida ma'lumot so'raganimizda, unda yashovchi oilalar to'g'risida ma'lumot olish biz uchun mutlaqo keraksiz bo'lishi mumkin, bu erda dangasa olish yordamga keladi, bu bizga uy ob'ektini faqat oilalar haqidagi ma'lumotlar taqdim etilishi uchun sozlash imkonini beradi. so'rov bo'yicha, bu so'rovni sezilarli darajada bulut qiladi va dasturni tezlashtiradi. ©dev-bay proksi ob'ekt orqali kerakli ob'ektga to'g'ridan-to'g'ri kirishda ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rov. get() usuli; foydalanilganda, so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga 100 foiz ishonchingiz komil emas. Mavjud bo'lmagan ob'ektga kirishda get(); usuli null qaytaradi. Agar ob'ekt topilsa, get() usuli; ob'ektning o'zini qaytaradi va ma'lumotlar bazasi so'rovi darhol amalga oshiriladi. 10) Hibernate rejimida Lazy fetching nima? Kutish rejimidagi Lazy checkout turi barg (bola) ob'ektlar bilan bog'lanadi va agar ota-ona ob'ektini tekshirish so'rovi bo'lsa, umumiy hisob-kitob siyosatini belgilaydi. Oddiy misol: Uy mavjud. Unda uning raqami, ko'chasi, xonadonlar soni va xonadonlarda yashovchi oilalar to'g'risidagi ma'lumotlar saqlanadi; bu oilalar Uy sub'ektiga nisbatan bolalar sub'ektini tashkil qiladi. Uy haqida ma'lumot so'raganimizda, unda yashovchi oilalar to'g'risida ma'lumot olish biz uchun mutlaqo keraksiz bo'lishi mumkin, bu erda dangasa olish yordamga keladi, bu bizga uy ob'ektini faqat oilalar haqidagi ma'lumotlar taqdim etilishi uchun sozlash imkonini beradi. so'rov bo'yicha, bu so'rovni sezilarli darajada bulut qiladi va dasturni tezlashtiradi. ©dev-bay proksi ob'ekt orqali kerakli ob'ektga to'g'ridan-to'g'ri kirishda ma'lumotlar bazasiga to'g'ridan-to'g'ri so'rov. get() usuli; foydalanilganda, so'ralgan ob'ekt ma'lumotlar bazasida mavjudligiga 100 foiz ishonchingiz komil emas. Mavjud bo'lmagan ob'ektga kirishda get(); usuli null qaytaradi. Agar ob'ekt topilsa, get() usuli; ob'ektning o'zini qaytaradi va ma'lumotlar bazasi so'rovi darhol amalga oshiriladi. 10) Hibernate rejimida Lazy fetching nima? Kutish rejimidagi Lazy checkout turi barg (bola) ob'ektlar bilan bog'lanadi va agar ota-ona ob'ektini tekshirish so'rovi bo'lsa, umumiy hisob-kitob siyosatini belgilaydi. Oddiy misol: Uy mavjud. Unda uning raqami, ko'chasi, xonadonlar soni va xonadonlarda yashovchi oilalar to'g'risidagi ma'lumotlar saqlanadi; bu oilalar Uy sub'ektiga nisbatan bolalar sub'ektini tashkil qiladi. Uy haqida ma'lumot so'raganimizda, unda yashovchi oilalar to'g'risida ma'lumot olish biz uchun mutlaqo keraksiz bo'lishi mumkin, bu erda dangasa olish yordamga keladi, bu bizga uy ob'ektini faqat oilalar haqidagi ma'lumotlar taqdim etilishi uchun sozlash imkonini beradi. so'rov bo'yicha, bu so'rovni sezilarli darajada bulut qiladi va dasturni tezlashtiradi. ©dev-bay
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION