Как создать БД с помощью Room

«Как создать БД с помощью Room» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для создания БД с помощью Room нужно:

  1. Добавить зависимости в build.gradle:
implementation "androidx.room:room-runtime:2.5.0"
kapt "androidx.room:room-compiler:2.5.0"
  1. Создать Entity (таблицу):
@Entity
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val age: Int
)
  1. Создать DAO (интерфейс для запросов):
@Dao
interface UserDao {
    @Query("SELECT * FROM user")
    fun getAll(): List<User>

    @Insert
    fun insert(user: User)
}
  1. Создать Database класс:
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}
  1. Инициализировать БД в Application классе:
val db = Room.databaseBuilder(
    applicationContext,
    AppDatabase::class.java, "database-name"
).build()

Важно: все операции с БД нужно выполнять не в UI-потоке. Room поддерживает Coroutines и RxJava для асинхронной работы.