Örnek sorular
Kt Android Room PersistenceZorluk 1
Room'da @Entity anotasyonunun temel amacı nedir?
- aBir class'ı, JSON'dan doğrudan parse edilen bir network yanıt modeli olarak işaretler.
- bBir class'ı bir UI ekranı composable'ı olarak işaretler.
- cBir class'ı Room veritabanı için bir tablo tanımı olarak işaretler.✓
- dBir class'ı bir dependency-injection modülü olarak işaretler.
Açıklama:@Entity, Room'un annotation processor'ına class'ın alanlarından bir tablo şeması üretmesini söyler; her instance bir satır olur.
Kt Android Room PersistenceZorluk 1
Bir Room @Dao interface'i genelde neyi içerir?
- aAlttaki platform driver'ının kullandığı ham SQLite dosya yolu konfigürasyonunu.
- bVeritabanı işlemleri (sorgu, ekleme, güncelleme, silme) için metot bildirimleri.✓
- cBir ekranın UI layout tanımlarını.
- dNetwork retry politikası konfigürasyonunu.
Açıklama:Bir DAO (Data Access Object), Room'un derleme zamanında implement ettiği, veritabanına karşı SQL çalıştıran metotları bildirir.
Kt Android Room PersistenceZorluk 1
RoomDatabase'i extend eden abstract class hangi rolü oynar?
- aVeritabanını tutan ve DAO'ları açığa çıkaran ana erişim noktasıdır.✓
- bUygulamanın launcher ikonunu render eder.
- cUygulamanın Gradle build konfigürasyonunu ve dependency sürümlerini tanımlar.
- dUygulamanın push notification token'larını yönetir.
Açıklama:@Database ile işaretlenen RoomDatabase alt sınıfı, Room'un bir implementasyon ürettiği, abstract DAO getter'ları açığa çıkaran merkezi tutucudur.
Kt Android Room PersistenceZorluk 1
@PrimaryKey, bir @Entity alanında neyi işaretler?
- aRoom'un varsayılan olarak şifrelediği kolonu.
- bSadece UI listelerini sıralamak için kullanılan, depolamaya başka etkisi olmayan kolonu.
- cHer satırı benzersiz şekilde tanımlayan kolonu.✓
- dHer zaman nullable olması gereken kolonu.
Açıklama:@PrimaryKey, benzersiz satır tanımlayıcısını belirler; autoGenerate = true ile birlikte Room bunu otomatik artırabilir.
Kt Android Room PersistenceZorluk 1
Bir DAO metodundaki @Query anotasyonunun amacı nedir?
- aRoom'un o metot için çalıştıracağı ham SQL ifadesini vermek.✓
- bMetodu, Activity yeniden başladığında tetiklenen bir lifecycle callback'i olarak kaydetmek.
- cMetodu bir Compose preview'ı olarak işaretlemek.
- dMetodu bir Gradle task'ı olarak bildirmek.
Açıklama:@Query bir SQL string'i alır; Room bunu derleme zamanında entity şemasına karşı doğrular ve implementasyonu üretir.
Kt Android Room PersistenceZorluk 2
Bir @Insert DAO metodu, primary key'i zaten var olan bir satırı eklerken varsayılan olarak ne olur?
- aVar olan satır sessizce değiştirilir.
- bYeni satır sessizce yok sayılır.
- cRoom onun için otomatik yeni bir primary key üretir ve yinelenen bir satır ekler.
- dInsert iptal olur ve Room bir conflict exception fırlatır.✓
Açıklama:@Insert için varsayılan onConflict stratejisi OnConflictStrategy.ABORT'tur; bu, değiştirmek ya da yok saymak yerine bir conflict fırlatır.