Sobes.tech
Junior — Middle

Kas saaksid loetleda Room teeg põhiosad ja komponendid andmebaasidega töötamiseks?

sobes.tech AI

Vastus AI-lt

Peamised Room teeki osad andmebaasidega töötamiseks Androidis:

  • Entity — klassid, mis kirjeldavad andmebaasi tabeleid. Iga klassi väli vastab veerule.
  • DAO (Data Access Object) — liidesed meetoditega andmete ligipääsuks (lisamine, uuendamine, kustutamine, päringud). Room genereerib nende meetodite teostuse.
  • Database — abstraktne klass, mis pärineb RoomDatabase-st ja ühendab kõik DAO-d. Selle kaudu luuakse ja pääseb andmebaasile ligi.

Näide:

@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
}