Mobiliosios programėlės
Pamoka 5 / 8 Room duomenų bazė ~55 min
6 / 8

Sukurk NoteDatabase su singleton

Tame pačiame pakete sukurk NoteDatabase.kt.

Ką tai daro:

  • @Database(entities = [Note::class], version = 1) — viena lentelė, pirmoji schemos versija. Jei vėliau pakeisi Note lauką, padidinsi version ir parašysi Migration.
  • abstract fun noteDao(): NoteDao — Room implementuos.
  • Singleton pattern su @Volatile ir synchronized — užtikrina, kad visa programa naudoja vieną duomenų bazės instance. Dvi instance būtų brangu ir nesinchronizuotų rašymo.
  • exportSchema = false — neeksportuoja JSON schemos failo. Realiame produkte tai įjungtum, kad sektum migracijas, bet šio kurso tikslams nereikia.

Kodėl klasė abstract? — Room generuoja klasę NoteDatabase_Impl, kuri paveldi šią abstract klasę ir implementuoja noteDao(). Tu niekada nematysi _Impl — Room ją sukuria už kulisų.