Ответ
В Android есть несколько способов работы с БД:
- SQLite - встроенная БД. Работа через:
SQLiteOpenHelper для создания/обновления БД
SQLiteDatabase для запросов (rawQuery, execSQL)
- Room - ORM над SQLite:
@Entity data class User(...)
@Dao interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase()
- Realm - альтернативная NoSQL БД
- ContentProviders - для обмена данными между приложениями
- Firebase Realtime Database - облачное решение от Google
Room - рекомендованный способ, т.к.:
- Компиляция SQL на этапе сборки
- Упрощает работу с LiveData/Flow
- Минимизирует boilerplate-код
- Поддержка миграций