13-laboratoriya mashg'uloti. Room ma’lumotlar bazasidan foydalanish.
Ishdan maqsad: Android tizimida foydalanuvchi interfeysini yaratishda ROOM ma’lumotlar bazasidan foydalanish, loyihaga mos ma’lumotlar bazasi, jadvallar va sо‘rovlar yaratish kо‘nikmalariga ega bо‘lish
Masalaning qо‘yilishi: Talabalar berilgan loyihani Android tizimida ishlab chiqish va ilova uchun kerakli bо‘lgan ma’lumotlarni ma’lumotlar bazasidan о‘qib olishi va emulator orqali natija olishi lozim.
Ishni bajarish tartibi
ROOM – bu yil Google I/O da taqdim etilgan Android ilovasida ilova maʼlumotlarini saqlashning yangi usuli. Bu ilovalar uchun mos arxitekturani qo'llab-quvvatlaydigan Google kutubxonalari guruhi bo'lgan yangi Android Arxitekturasining bir qismidir. Xona Realm, ORMLite, GreenDao va boshqalarga muqobil sifatida taklif etiladi.
ROOM - bu Android-ga o'rnatilgan past darajadagi SQLite ulanishlari uchun yuqori darajadagi interfeys bo'lib, bu haqda hujjatlarda ko'proq bilib olishingiz mumkin. U o'z ishining ko'p qismini kompilyatsiya vaqtida bajaradi, APIni mahalliy SQLite API ustiga quradi, shuning uchun Kursor yoki ContentResolver bilan ishlashingiz shart emas.
Room dan foydalanish
Birinchidan, loyihangizga Room qo'shing. Shundan so'ng siz ma'lumotlaringiz qanday ko'rinishini Roomga o'tishingiz kerak bo'ladi. Sizda shunday ko'rinadigan oddiy model sinfingiz bor deylik:
Roomga Person sinfi haqida xabar berish uchun roomga Entity izohini va kalitga @PrimaryKey qo'shing:
Ushbu ikkita izoh yordamida Room endi Person misollarini saqlash uchun jadval yaratishni biladi.
Modellaringizni o'rnatishda e'tiborga olish kerak bo'lgan muhim narsa: ma'lumotlar bazasida saqlanadigan har bir maydon ommaviy bo'lishi yoki standart Java Beans uslubida qabul qiluvchi va sozlagichga ega bo'lishi kerak (masalan, getName () va setName (string nomi)).
Person sinfida endi Room da jadvallar yaratish uchun zarur boʻlgan barcha maʼlumotlar mavjud, biroq sizda maʼlumotlar bazasidan maʼlumotlarni qoʻshish, soʻrash yoki oʻchirish imkoni yoʻq. Shuning uchun siz ma'lumotlarga kirish ob'ektini (DAO) qilishingiz kerak bo'ladi. DAO ma'lumotlar bazasida interfeysni ta'minlaydi va saqlangan Shaxs ma'lumotlarini manipulyatsiya qilish bilan shug'ullanadi.
Mana Person sinfi uchun oddiy DAO:
E'tibor berish kerak bo'lgan birinchi narsa PersonDao - bu sinf emas, balki interfeys. Yana bir qiziq tafsilot - Query () izohlaridagi SQL iboralari. SQL iboralari Xonaga ma'lumotlar bazasidan qanday ma'lumot olishingiz kerakligini aytadi. Ular kompilyatsiya vaqtida ham tekshiriladi. Shuning uchun, agar siz List getAllPeopleWithFavoriteColor (rang nomi) usuli imzosini List getAllPeopleWithFavoriteColor (int rang) ga o'zgartirsangiz, Xona kompilyatsiya vaqtida xatolikka yo'l qo'yadi:
Va agar siz SQL bayonotida xatoga yo'l qo'ysangiz, masalan, favoriteColor (birlik) o'rniga favoriteColors (ko'plik) ni yozsangiz, Room kompilyatsiya xatosini ham chiqaradi.
Do'stlaringiz bilan baham: |