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
}