Room Veritabanı Sınıfı
Veritabanınızı oluşturun ve ona erişin.
Room Veritabanı Sınıfı, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.
Hepsini Bir Araya Getirme
Veritabanı sınıfı ana erişim noktasıdır. Varlıklarınızı listeler, sürümü bildirir ve DAO'larınızı dışa aktarır.
@Database Ek Açıklaması
RoomDatabase sınıfını genişleten soyut bir sınıf oluşturun ve buna @Database ek açıklamasını uygulayın.
import androidx.room.Database
import androidx.room.RoomDatabase
@Database(
entities = [User::class],
version = 1
)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}Varlıkları ve Sürümü Listeleme
entities dizisi Room'a hangi tabloların oluşturulacağını söyler. version numarası, geçişler için şema değişikliklerini izler.
DAO'ları Dışa Aktarma
Her DAO için, ilgili DAO türünü döndüren bir soyut işlev bildirin. Room bunu uygular.
abstract fun userDao(): UserDao
abstract fun noteDao(): NoteDaoVeritabanını Oluşturma
Bir örnek oluşturmak için Room.databaseBuilder kullanın. Bunun için bir uygulama bağlamı, sınıf ve veritabanı adı gerekir.
val db = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
"app.db"
).build()Singleton Yapma
Bir veritabanı oluşturmak maliyetlidir; bu nedenle tüm uygulama için tek bir örnek oluşturun. Yaygın bir kalıp, eşzamanlı bir alıcıya sahip bir yardımcı nesne kullanır.
companion object {
@Volatile private var INSTANCE: AppDatabase? = null
fun get(context: Context): AppDatabase =
INSTANCE ?: synchronized(this) {
INSTANCE ?: build(context).also { INSTANCE = it }
}
}Singleton Neden Önemlidir
Birden fazla veritabanı örneği aynı dosyaya birden çok bağlantı açarak tutarsızlığa ve bellek israfına neden olur. Paylaşılan tek bir örnek, tek bir doğruluk kaynağı sağlar.
Hilt ile Sağlama
Gerçek uygulamalarda veritabanını genellikle elle oluşturulmuş bir singleton yerine bağımlılık ekleme yoluyla (Hilt kursunda ele alınacaktır) sağlarsınız.
@Provides
@Singleton
fun provideDb(@ApplicationContext ctx: Context) =
Room.databaseBuilder(ctx, AppDatabase::class.java, "app.db")
.build()Şema Değişiklikleri ve Geçişler
Bir varlığı değiştirdiğinizde version değerini artırın ve eski verileri dönüştürmek için gereken SQL'i açıklayan bir Migration sağlayın.
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(db: SupportSQLiteDatabase) {
db.execSQL("ALTER TABLE users ADD COLUMN age INTEGER NOT NULL DEFAULT 0")
}
}Yıkıcı Geçiş
İlk geliştirme aşamasında fallbackToDestructiveMigration() kullanabilirsiniz; bu yöntem geçiş yapmak yerine tabloları silip yeniden oluşturur. Gerçek kullanıcı verileri içeren üretim ortamına bunu hiçbir zaman göndermeyin.
DAO'lara Erişme
Veritabanı örneğine sahip olduğunuzda bir DAO alın ve yöntemlerini bir eş yordamın içinde çağırın.
val dao = db.userDao()
viewModelScope.launch {
dao.insert(User(1, "Ada", "ada@x.com"))
}Hızlı Kontrol
Veritabanı sınıfı konusundaki anlayışınızı test edin.
Özet
Şunları öğrendiniz:
@Database, varlıkları listeler, bir sürüm belirler ve DAO'ları dışa aktarır.- Veritabanını
Room.databaseBuilderile bir singleton olarak oluşturun. - Şema değişiklikleri, artırılmış bir sürüm ve bir Migration gerektirir.
Sıkça Sorulan Sorular
“Room Veritabanı Sınıfı” dersi ücretsiz mi?
Evet — “Room Veritabanı Sınıfı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.
“Room Veritabanı Sınıfı” dersinde ne öğreneceğim?
Veritabanınızı oluşturun ve ona erişin. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Android Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Room Veritabanı Sınıfı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Varlıklar ve DAO'lar
- Room Veritabanı Sınıfı
- Sorgular ve İlişkiler
- Flow ile Verileri Gözlemleme