Ответ
Для создания БД с помощью Room нужно:
- Добавить зависимости в
build.gradle:
implementation "androidx.room:room-runtime:2.5.0"
kapt "androidx.room:room-compiler:2.5.0"
- Создать Entity (таблицу):
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
- Создать DAO (интерфейс для запросов):
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Insert
fun insert(user: User)
}
- Создать Database класс:
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
- Инициализировать БД в Application классе:
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
Важно: все операции с БД нужно выполнять не в UI-потоке. Room поддерживает Coroutines и RxJava для асинхронной работы.