Sobes.tech
Junior — Middle

Kuidas määrata komponendi tüüp, mis kasutab andmete salvestamiseks Roomi?

sobes.tech AI

Vastus AI-lt

Komponent, mis kasutab Roomi andmete salvestamiseks, on tavaliselt osa andmekihist (Data Layer) rakenduse arhitektuuris. Enamasti on see:

  • Repository (Andmehoidla) — klass, mis kapseldab andmetele juurdepääsu loogika ja suhtleb Room DAO-ga.
  • ViewModel — võib kasutada repository-d andmete saamiseks ja nende UI-le edastamiseks.

Komponendi tüübi määramiseks tuleb kontrollida, kas see sisaldab:

  • Room annotatsioone (näiteks, @Entity, @Dao) — need on andmemudeli klassid ja juurdepääsu liidesed.
  • Loogikat andmebaasiga töötamiseks DAO kaudu — see on repository.

Näide definitsioonist:

// DAO — andmetele juurdepääsu liides
@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): LiveData<List<User>>
}

// Repository — klass, mis kasutab DAO-d
class UserRepository(private val userDao: UserDao) {
    val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}

// ViewModel — pakub andmeid UI-le
class UserViewModel(private val repository: UserRepository) : ViewModel() {
    val users: LiveData<List<User>> = repository.allUsers
}

Seega, Room-iga töötav komponent on tavaliselt DAO ja repository, ning ViewModel on nende andmete tarbija.