Entités et DAO
Définissez des tables et des objets d'accès aux données.
Entités et DAO est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.
Qu’est-ce que Room ?
Room est une bibliothèque de persistance qui fournit une couche d’abstraction au-dessus de SQLite. Elle vous permet de manipuler les lignes d’une base de données sous forme d’objets Kotlin, avec des requêtes vérifiées lors de la compilation.
Les trois éléments fondamentaux de Room
- Entity — une table représentée par une classe de données.
- DAO — objet d’accès aux données, qui définit les requêtes.
- Database — relie les entités et les DAO (leçon suivante).
Définir une entité
Annotez une classe de données avec @Entity. Chaque propriété devient une colonne.
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val email: String
)Clés primaires
Chaque entité a besoin d’une @PrimaryKey. Pour permettre à Room de générer automatiquement les identifiants, utilisez autoGenerate.
@Entity
data class Note(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
val text: String
)Personnaliser les colonnes
Utilisez @ColumnInfo pour renommer une colonne ou définir son affinité de type.
import androidx.room.ColumnInfo
@Entity
data class User(
@PrimaryKey val id: Int,
@ColumnInfo(name = "full_name")
val name: String
)Qu’est-ce qu’un DAO ?
Un DAO est une interface annotée avec @Dao. Il déclare les méthodes que votre application utilise pour lire et écrire les données. Room génère l’implémentation pour vous.
Insérer, mettre à jour, supprimer
Room fournit des annotations pratiques pour les opérations de base.
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Update
suspend fun update(user: User)
@Delete
suspend fun delete(user: User)
}Stratégies de conflit
Lors de l’insertion d’une ligne qui existe déjà, choisissez une stratégie avec onConflict.
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)Requêtes personnalisées avec @Query
L’annotation @Query vous permet d’écrire du SQL. Room le vérifie lors de la compilation par rapport à votre schéma.
@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?Pourquoi utiliser des fonctions suspend ?
Les entrées-sorties de la base de données ne doivent pas s’exécuter sur le fil principal. Marquer les méthodes du DAO avec suspend permet à Room de les exécuter hors du fil principal lorsqu’elles sont appelées depuis une coroutine, ce qui évite les saccades de l’interface utilisateur.
Sécurité à la compilation
Un avantage majeur de Room : si vous saisissez incorrectement le nom d’une colonne dans une @Query, la compilation échoue. Vous détectez ainsi les erreurs tôt, plutôt qu’au moment de l’exécution.
Vérification rapide
Vérifiez votre compréhension des entités et des DAO.
Récapitulatif
Vous avez appris que :
@Entitydéfinit une table sous forme de classe de données avec une@PrimaryKey.@Daodéclare les méthodes de requête, d’insertion, de mise à jour et de suppression.- Le SQL de
@Queryest vérifié lors de la compilation. - Les méthodes du DAO devraient être
suspendpour effectuer les entrées-sorties hors du fil principal.
Questions Fréquemment Posées
La leçon « Entités et DAO » est-elle gratuite ?
Oui — le texte complet de « Entités et DAO » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Entités et DAO » ?
Définissez des tables et des objets d'accès aux données. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Android Academy ?
Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Entités et DAO » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?
Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.