Room Database
Android üzerinde SQLite yerine üretilmiş yeni db formatı RoomDB
Last updated
Was this helpful?
Android üzerinde SQLite yerine üretilmiş yeni db formatı RoomDB
Last updated
Was this helpful?
🤓 SQL komutları ile uğraşmadan direkt android kodları ile çalışmamızı sağlar
✨ Optimize edilmiş bir veri tabanı sunar (LiveData
)
💨 Kotlin Flow yapısı ile RoomDB oluşturabilir (👨🔬 Deneysel)
🚀 Faydalı bağlantılara sayfanın en altından erişebilirsin
📢 Java örneği ile Kotlin örneği birbirinden bağımsızdır
🔄 Güncel RoomDB sürümüne alanından erişebilirsin
➕ RoomDB için Kotlin eklentilerine alanından erişebilirsin
🧱 DB'ye aktarılacak sütun isimlerini temsil ederler
🔸 Tablodaki sütün isimleri entity üzerindeki değişkenlerle temsil edilir
👮♂️ Primary key ve Entity etiketini eklemek zorunludur
💡 SQL yapısında veriler 64 bit olduğundan:
🧮 32bit long değeri 64bit int değerine eş değerdir
🔄 id
değerlerini long olarak tutsanız da android onu int olarak tanımlanacaktır
🏹 Veri tabanına eklenen verilerin id
bilgileri long olarak döndürülür
🐣 Tablolara erişmek için kullanılan yapıdır
🧱 Abstract veya Interface olmak zorundadır
🏷️ SQLite query metinleri metotlara Annotation yapısı ile tanımlanır
✨ LiveData yapısı ile güncel verileri döndürür
🧱 Abstract olmak zorundadır
🏗️ Room.databaseBuilder(...)
yapısı ile db tanımlanır
🏷️ Database etiketi içerisinde
entities
alanında tablo verilerini temsil eden Entity Class'ınızın objesi verilir
version
alanında db'nin en son sürümünü belirtin
🐛 Versiyon geçişleri arasındaki sorunları engellemek için fallbackToDestructiveMigration()
özelliği eklenir
🚫 Veri tabanına birden çok istek gelmesini engeller
🐞 Birden çok isteğin eş zamanlı yapılmaya çalışması conflict oluşturacaktır
💔 Conflict yapısı veri tabanındaki verilerin uyuşmazlığını belirtir
Birden fazla Thread gelmesi durumunda engellemek için synchronized anahtar kelimesi kullanılır
✨ Gereksiz Thread engelinden sakınmak için, synchronized yapısı içerisinde tekrardan if kontrolü yapılmalıdır
🌃 Alt katmanda olan tüm sınıfları tek bir sınıfmış gibi gösterir
😏 Bu sayede ViewModel üzerinden birden fazla sınıfla uğraşmak zorunda kalmayız
🚧 DB üzerinde yapılacak olan tüm işlemlerinde burada metot olarak tanımlanması lazımdır
✨ LiveData yapısı sayesinde verileri otomatik günceller
🦄 Verilerin aktarımı bir defaya mahsus Constructor üzerinde yapılır
🧱 Yapılandırma değişikliklerine karşı dayanıklıdır
🐣 Repository ile DB'ye erişir
🎳 Activity context objesi gönderilmez, çok maliyetlidir
🥚 Context verisi miras alınmalıdır
📝 UI ile alakalı bilgilerin kaydı ile uğraşır
🔄 Verileri güncel tutmak için kullanılır
📈 Performansı artırır
🧱 Yapılandırma değişikliklerine karşı dayanıklıdır
📳 Telefonu çevirme vs.
🍱 Tüm katmanlardaki metotlar kapsüllenmelidir
🧙♂ Detaylar için alanına bakabilirsin.
🏷️ yapısı ile özellikleri belirlenir
👀 Daha fazlası için ve dokümanlarına bakabilirsin.
📢 SQLite ile SQL Server syntax yapısı kaynağa göre farklı olabilmekte
👀 Daha fazlası için dokümanına bakabilirsin.
👀 Daha fazlası için dokümanına bakabilirsin.
👀 Detaylar için alanına bakabilirsin.
🌠 Verilerin aktarılması asenkron olması gerektiğinden yapısı kullanılır
🧙♂ Detaylar için alanına bakabilirsiniz.
🚀 Bu alandaki bağlantılar yapısına uygundur
👨🏫
📖