Sobes.tech
Junior — Middle

Jak uzyskać dostęp do bazy danych za pomocą Room na Androidzie?

sobes.tech AI

Odpowiedź od AI

Aby uzyskać dostęp do bazy danych za pomocą Room na Androidzie, należy wykonać kilka kroków:

  1. Zdefiniuj encje (Entity) — klasy opisujące tabele bazy danych.
  2. Utwórz DAO (Data Access Object) — interfejs z metodami dostępu do danych (wstawianie, aktualizacja, zapytania).
  3. Utwórz bazę danych (Database) — abstrakcyjna klasa dziedzicząca po RoomDatabase, łącząca encje i DAO.

Przykład:

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

@Dao
interface UserDao {
    @Query("SELECT * FROM User WHERE id = :userId")
    fun getUserById(userId: Int): User

    @Insert
    fun insertUser(user: User)
}

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

// Użycie
val db = Room.databaseBuilder(
    context,
    AppDatabase::class.java, "database-name"
).build()

val userDao = db.userDao()
val user = userDao.getUserById(1)

W ten sposób, za pomocą DAO, można wykonywać zapytania do bazy danych, a Room automatycznie generuje potrzebny kod.