Sobes.tech
Junior — Middle
103

¿Tiene experiencia práctica en el uso de la biblioteca Room para trabajar con bases de datos locales en Android?

Empresas donde se preguntó
SM Lab
NetUP

Respuesta de la IA

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 автоматически генерирует код для доступа к базе, что снижает количество шаблонного кода и ошибок.