Sobes.tech
Junior — Middle

Czy możesz wymienić główne części i składniki biblioteki Room do pracy z bazami danych?

sobes.tech AI

Odpowiedź od AI

Główne części biblioteki Room do pracy z bazami danych w Android:

  • Entity — klasy opisujące tabele bazy danych. Każde pole klasy odpowiada kolumnie.
  • DAO (Data Access Object) — interfejsy z metodami dostępu do danych (wstawianie, aktualizacja, usuwanie, zapytania). Room generuje implementację tych metod.
  • Database — abstrakcyjna klasa dziedzicząca po RoomDatabase i łącząca wszystkie DAO. Przez nią tworzy się i uzyskuje dostęp do bazy.

Przykład:

@Entity
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

@Dao
interface UserDao {
    @Query("SELECT * FROM User")
    fun getAll(): List<User>

    @Insert
    fun insert(user: User)
}

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}