0Pricing
Android Academy · Leçon

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 :

  • @Entity définit une table sous forme de classe de données avec une @PrimaryKey.
  • @Dao déclare les méthodes de requête, d’insertion, de mise à jour et de suppression.
  • Le SQL de @Query est vérifié lors de la compilation.
  • Les méthodes du DAO devraient être suspend pour 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.

Toutes les leçons de ce cours

  1. Entités et DAO
  2. La classe de base de données Room
  3. Requêtes et relations
  4. Observer les données avec Flow
← Retour à Android Academy