Sobes.tech
Junior — Middle

Avez-vous une expérience pratique de l'utilisation de la bibliothèque Room pour travailler avec une base de données locale sur Android?

sobes.tech IA

Réponse de l'IA

Oui, la bibliothèque Room est un ORM pratique pour travailler avec une base de données SQLite locale dans Android. Elle simplifie la création, la lecture, la mise à jour et la suppression de données, tout en assurant la sécurité de type et l'intégration avec LiveData et Coroutines.

Exemple d'utilisation de 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
}

// Initialisation de la base de données
val db = Room.databaseBuilder(
    context.applicationContext,
    AppDatabase::class.java, "app-database"
).build()

// Utilisation
val users = db.userDao().getAllUsers()

Room génère automatiquement le code pour accéder à la base de données, ce qui réduit la quantité de code répétitif et d'erreurs.