Ответ
Да, есть. Room — это ORM-библиотека для работы с SQLite в Android. Она упрощает работу с БД, предоставляя абстракции над SQL-запросами через аннотации.
Основные компоненты:
@Entity— класс таблицы.@Dao(Data Access Object) — интерфейс для CRUD-операций.@Database— абстрактный класс, наследующийRoomDatabase.
Пример:
@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
}
Нюансы:
- Миграции через
Migration. - Асинхронные запросы с
LiveData/Flow. - Тестирование через
inMemoryDatabaseBuilder.