Ответ
Room — это ORM-библиотека для работы с SQLite в Android. Основные компоненты:
- Entity — класс, представляющий таблицу в БД. Аннотируется
@Entity.
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String
)
- Dao (Data Access Object) — интерфейс с методами для доступа к данным. Аннотируется
@Dao.
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAll(): List<User>
}
- Database — абстрактный класс, расширяющий
RoomDatabase. Связывает Entity и Dao.
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
- TypeConverters — для конвертации сложных типов (например,
DateвLong).
Room также поддерживает миграции, LiveData, RxJava и Coroutines.