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

Sukurk NoteDao sąsają

Tame pačiame data pakete sukurk NoteDao.kt. DAO (Data Access Object) — tai sąsaja, kurią Room implementuos.

Ką tai daro:

  • @Dao virš sąsajos — Room generuos klasę, kuri implementuoja šiuos metodus.
  • fun getAll(): Flow<List<Note>> — grąžina Flow, ne paprastą List. Tai svarbu: kai pasikeičia lentelė, Flow automatiškai išleidžia naują sąrašą. UI atsinaujins savaime.
  • suspend fun insert(...) — Room verčia rašyti operacijas (insert, update, delete) kaip korutinas, nes jos neturi blokuoti UI gijos.
  • @Insert(onConflict = OnConflictStrategy.REPLACE) — jei bandai įterpti pastabos su tuo pačiu ID, perrašyk seną.

Pastaba. @Query užklausos tikrinamos kompiliavimo metu. Jei parašysi SELECT * FROM noets (su klaida), kompiliatorius pasakys iškart, ne tik paleidus programą.