Sobes.tech
Back to questions
Junior — Middle
76

Имеете ли вы практический опыт использования библиотеки Room для работы с локальной базой данных в Android?

Companies where asked
SM Lab
NetUP

Answer from AI

sobes.tech AI

Да, библиотека Room — это удобный ORM для работы с локальной базой данных SQLite в Android. Она упрощает создание, чтение, обновление и удаление данных, обеспечивая при этом типобезопасность и интеграцию с LiveData и Coroutines.

Пример использования Room:

@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val age: Int
)

@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): List<User>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertUser(user: User)
}

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

// Инициализация базы данных
val db = Room.databaseBuilder(
    context.applicationContext,
    AppDatabase::class.java, "app-database"
).build()

// Использование
val users = db.userDao().getAllUsers()

Room автоматически генерирует код для доступа к базе, что снижает количество шаблонного кода и ошибок.