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.
Labarotoriya ishlari uchun topshiriqlar.
1
. a. 1, 2, 3,., N sm absissalariga ega bo'lgan y = ax2 + b parabolaning
nuqtalarigacha bo'lgan boshlanishidan masofalar yig'indisini va bu n masofalarning
arifmetik o'rtacha qiymatini toping.
2. Agar ularning radiusi r, r + 0,2, r + 0,4, r + 0,6, ... ketma -ketlikni tashkil
qilsa, n to'pning umumiy hajmini toping. Sharning o'rtacha hajmini toping.
3. Balandligi h va taglik radiusi 0,32, 0,62, 0,92 va hokazo bo'lgan n
konusning umumiy hajmini toping. Konusning o'rtacha hajmini toping.
4. Balandligi h va taglik radiusi 0,32, 0,62, 0,92 va hokazo bo'lgan n
konusning umumiy hajmini toping. Konusning o'rtacha hajmini toping.